![]() |
AW: Exe aufrufen und Rückgabewert auswerten
Könntest du mir davon ein Beispiel schicken? Davon verstehe ich gerade überhaupt nichts.
Was wm-copydata angeht, könnte das eventuell so bei mir funktionieren: - ExeA ruft ExeB auf - ExeA wartet auf Beendigung von ExeB - während ExeB noch läuft, schicke ich per wm-copydata was an ExeA. Dort wird eine Variable mit irgendwas gefüllt. - sobald ExeB beendet ist, gehts in ExeA weiter und dort könnte ich die variable auswerten. Könnte klappen :roll: |
AW: Exe aufrufen und Rückgabewert auswerten
Im Moment nicht, da ich am Tablet schreibe. Aber RegisterWindowMessage nimmt als Parameter einen PChar auf einen möglichst eindeutigen String entgegen und gibt eine systemweit eindeutige Message-ID zurück. Das eignet sich meiner Meinung nach prima für Dein Anliegen.
|
AW: Exe aufrufen und Rückgabewert auswerten
Zitat:
Lege dir einfach eine Message an die du in beiden Anwendungen definierst. |
AW: Exe aufrufen und Rückgabewert auswerten
Habe das jetzt so gelöst, da ich eh schon einen Handler für WmCopyData im Programm habe.
ExeB
Delphi-Quellcode:
ExeA
var
hExistingInstance: THandle; pName: PChar; aCopyData: TCopyDataStruct; procedure SendRecord(const aRecordToSend: TCopyDataStruct); begin aCopyData.dwData := ... irgendein int wert, max cardinal; SendMessage(hExistingInstance, WM_COPYDATA, 0, LPARAM(@aCopyData)); end; procedure SendReturnCode(const ReturnString: string); begin pName := PChar(ReturnString); aCopyData.cbData := (StrLen(pName) + 1) * SizeOf(PWideChar); aCopyData.lpData := pName; SendRecord(aCopyData); end; hExistingInstance := FindWindow(PChar('TFormBlubb'), nil); if (hExistingInstance = 0) then SendReturnCode('NixOK') else SendReturnCode('AllesOK');
Delphi-Quellcode:
private
{Private-Deklarationen} procedure WMCopyData(var msg: TWMCopyData); message WM_COPYDATA; procedure TFormBlubb.WMCopyData(var msg: TWMCopyData); begin if msg.CopyDataStruct.dwData = TProgramMeta.iUniqueMutexID then Blubb(msg, TParameterType.ptNull) else inherited; end; procedure Blubb(const ParameterList: string; const aParameterType: TParameterType); begin showmessage(ParameterList); end; |
AW: Exe aufrufen und Rückgabewert auswerten
Wenn man
![]() ![]() ![]() Grüße Dalai |
AW: Exe aufrufen und Rückgabewert auswerten
Stichwort: IPC
da gibt es tausende Möglicheiten. Mailslots SharedMemory (MMF, GlobalAlloc, .........) Pipes (Named oder Unnamed) / Streams Sockets (TPC/UDP) TempFiles ... |
AW: Exe aufrufen und Rückgabewert auswerten
Zitat:
![]()
Delphi-Quellcode:
Exitcode := 42;
|
AW: Exe aufrufen und Rückgabewert auswerten
Hallo,
ProgrammB setzt den Exitcode ( ![]() Wie man das jetzt auswertet, finde ich nicht wirklich im Netz, vielleicht ja so ![]() |
AW: Exe aufrufen und Rückgabewert auswerten
Das müsste eigentlich mit CreatPipe(...) und CreapeProcess(...) gehen, oder mit der Komponente "DosCommand" (in GetIt).
|
AW: Exe aufrufen und Rückgabewert auswerten
Doofe Frage: Warum muss es ein extra Programm sein, wenn es keine Formulare anzeigt?
Wäre da nicht ein Thread sinniger? |
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:22 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