![]() |
WINCE Externes Programm starten
aloha...
ich hab vor eineiger zeit ein simple scanner gui für einen wince gerät entwickelt... bei dem gerät war es so das der scanner automatisch aktiv war... jetzt soll die software auf einem anderen gerät laufen bei dem der scanner erst aktiviert werden muss... hierzu muss lt. hardware doku einfach eine scannerwedge.exe gestartet werden... soweit so gut... ich hab das ganze jetzt mal mit dem folgenden befehl versucht:
Code:
hat den blöden nebeneffekt das er das programm startet, aber nicht in das aufrufende programm zurrückkehrt sondern wartet bis ich das aufgerufene programm beende :-/
Sysutils.ExecuteProcess('/Application/ScanWedge.exe', ['','']);
hat jemand eine idee wie man unter wince ein programm im hintergrund mit starten kann, d.h. programm 1 startet und ruft programm 2 auf und man kann mit beiden parallel arbeiten... |
AW: WINCE Externes Programm starten
so für die wo's interessiert...
ich hab das problem über einen kleinen umweg gelöst, und zwar hab ich mir eine 2. anwendung erstellt die das programm startet welches den scanner aktiviert, sowie mein hauptprogramm, nachdem die beiden programme gestartet wurden beendet sich meine 2. anwendung selbsständig... anbei der code:
Code:
//******************************************************************************
// Apps Startern: * // 1. Scanner starten * // 2. Hauptprogramm starten * //****************************************************************************** procedure Tstarterapp_form.TimerTimer(Sender: TObject); var kSI : TStartUpInfo; kPI : TProcessInformation; begin Timer.Enabled := False; CreateProcess(PWideChar('/Application/scanner.exe'), Nil, Nil, Nil, False, CREATE_NEW_CONSOLE, Nil, Nil, kSI, kPI); CreateProcess(PWideChar('/Application/programm1.exe'), Nil, Nil, Nil, False, CREATE_NEW_CONSOLE, Nil, Nil, kSI, kPI); Close; end; |
AW: WINCE Externes Programm starten
Zitat:
![]()
Delphi-Quellcode:
den ExitCode des Programms zurückgibt, muss sich dieses ja erst beendet haben).
ExecuteProcess
Zitat:
Delphi-Quellcode:
. Siehe hierzu die
TProcess
![]() ![]() Ganz wichtig: nicht auf die Idee kommen unter Windows CE / Windows Mobile StdIn/StdOut/StdErr Pipes zu verwenden. Das wird so weit ich weiß nicht unterstützt. Zu deiner selbst gefundenen Lösung: warum machst du in deinem Hauptprogramm nicht einfach direkt beim Start ein
Delphi-Quellcode:
Hier wird nämlich nur gewartet, wenn du
CreateProcess(PWideChar('/Application/ScanWedge.exe'), Nil, Nil, Nil, False, CREATE_NEW_CONSOLE, Nil, Nil, kSI, kPI);
// Wichtig: die in kPi übergebenen Handles schließen, damit du nicht unnötig Ressourcen verbrätst CloseHandle(kPi.hThread); CloseHandle(kPi.hProcess);
Delphi-Quellcode:
aufrufst (was
WaitForSingleObject(kPi.hThread, SomeTime);
Delphi-Quellcode:
intern macht).
ExecuteProcess
Gruß, Sven |
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:39 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz