AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Exe aufrufen und Rückgabewert auswerten

Ein Thema von DieDolly · begonnen am 21. Apr 2022 · letzter Beitrag vom 25. Apr 2022
Antwort Antwort
Seite 2 von 2     12   
DieDolly

Registriert seit: 22. Jun 2018
2.175 Beiträge
 
#11

AW: Exe aufrufen und Rückgabewert auswerten

  Alt 21. Apr 2022, 21:09
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

Geändert von DieDolly (21. Apr 2022 um 21:16 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.624 Beiträge
 
Delphi 12 Athens
 
#12

AW: Exe aufrufen und Rückgabewert auswerten

  Alt 21. Apr 2022, 21:15
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.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
venice2
(Gast)

n/a Beiträge
 
#13

AW: Exe aufrufen und Rückgabewert auswerten

  Alt 21. Apr 2022, 21:31
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.
eine Message muss man nicht extra registrieren wenn man über beide Quellen verfügt.
Lege dir einfach eine Message an die du in beiden Anwendungen definierst.

Geändert von venice2 (21. Apr 2022 um 21:54 Uhr)
  Mit Zitat antworten Zitat
DieDolly

Registriert seit: 22. Jun 2018
2.175 Beiträge
 
#14

AW: Exe aufrufen und Rückgabewert auswerten

  Alt 21. Apr 2022, 21:33
Habe das jetzt so gelöst, da ich eh schon einen Handler für WmCopyData im Programm habe.

ExeB
Delphi-Quellcode:
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');
ExeA
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;
  Mit Zitat antworten Zitat
Benutzerbild von Dalai
Dalai

Registriert seit: 9. Apr 2006
1.682 Beiträge
 
Delphi 5 Professional
 
#15

AW: Exe aufrufen und Rückgabewert auswerten

  Alt 21. Apr 2022, 21:34
Wenn man MSDN-Library durchsuchenShellExecuteEx mit dem Flag SEE_MASK_NOCLOSEPROCESS füttert oder MSDN-Library durchsuchenCreateProcess benutzt, kann man auf das Ende der Ausführung warten und dann letztlich mit MSDN-Library durchsuchenGetExitCodeProcess den Rückgabewert holen; ist dieselbe Funktion, mit der man prüft, ob der Prozess noch läuft.

Grüße
Dalai
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.063 Beiträge
 
Delphi 12 Athens
 
#16

AW: Exe aufrufen und Rückgabewert auswerten

  Alt 21. Apr 2022, 23:56
Stichwort: IPC

da gibt es tausende Möglicheiten.



Mailslots
SharedMemory (MMF, GlobalAlloc, .........)
Pipes (Named oder Unnamed) / Streams
Sockets (TPC/UDP)
TempFiles
...
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.

Geändert von himitsu (22. Apr 2022 um 00:01 Uhr)
  Mit Zitat antworten Zitat
peterbelow

Registriert seit: 12. Jan 2019
Ort: Hessen
701 Beiträge
 
Delphi 12 Athens
 
#17

AW: Exe aufrufen und Rückgabewert auswerten

  Alt 22. Apr 2022, 11:14
Im Prinzip schon. Aber ich dachte das kann man direkt über ShellExecuteExW() regeln könnte.
Exe-A ruft ShellExecuteExW auf und wartet ja auf einen Boolean-Rückgabewert. Ich dachte da kann man aus Exe-B irgendwas raus senden.
Sieh Dir mal die API-Funktion GetExitCodeProcess an. In deinem Delphi-Programm setzt Du den Exitcode vor dem "end." des DPR-Files mittels
Exitcode := 42;
Peter Below
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.275 Beiträge
 
Delphi 10.4 Sydney
 
#18

AW: Exe aufrufen und Rückgabewert auswerten

  Alt 22. Apr 2022, 11:21
Hallo,
ProgrammB setzt den Exitcode (https://docwiki.embarcadero.com/Libr...%20Wert%20Null.).

Wie man das jetzt auswertet, finde ich nicht wirklich im Netz, vielleicht ja so
http://www.delphigroups.info/2/03/482203.html
Heiko
  Mit Zitat antworten Zitat
Benutzerbild von softtouch
softtouch

Registriert seit: 13. Feb 2015
Ort: Kerpen
235 Beiträge
 
Delphi 12 Athens
 
#19

AW: Exe aufrufen und Rückgabewert auswerten

  Alt 25. Apr 2022, 21:44
Das müsste eigentlich mit CreatPipe(...) und CreapeProcess(...) gehen, oder mit der Komponente "DosCommand" (in GetIt).
  Mit Zitat antworten Zitat
TomyN

Registriert seit: 8. Nov 2006
Ort: Bayreuth
244 Beiträge
 
Delphi 10.3 Rio
 
#20

AW: Exe aufrufen und Rückgabewert auswerten

  Alt 25. Apr 2022, 22:16
Doofe Frage: Warum muss es ein extra Programm sein, wenn es keine Formulare anzeigt?
Wäre da nicht ein Thread sinniger?
Thomas Neumann
Meine Projekte
www.satlive.audio
www.levelcheck.de
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:07 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz