AGB  ·  Datenschutz  ·  Impressum  







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

fremdes Programm aufrufen

Ein Thema von joacim · begonnen am 25. Jul 2021 · letzter Beitrag vom 29. Jul 2021
Antwort Antwort
Seite 1 von 3  1 23      
joacim

Registriert seit: 30. Apr 2003
Ort: Immenrode
61 Beiträge
 
Delphi 6 Professional
 
#1

fremdes Programm aufrufen

  Alt 25. Jul 2021, 09:47
Hallo,
mit der Quelle aus
https://www.delphipraxis.net/31067-s...cute-wait.html
kann man gut fremde Programme aus dem eigenen Programm heraus aufrufen.
Das habe ich schon erfolgreich gemacht Jetzt habe ich ein Fremdprogramm, bei dem das nicht klappt. Es gibt nur wenige Informationen zu diesem Fremdprogramm.

- mit einem Doppelklick kann es problemlos gestartet werden
- es ist wohl in Fortran geschrieben und eine 64 Bit Anwendung

Im Taskmanager kann ich nicht sehen, dass das Programm geöffnet wird, ev. geht es einfach zu schnell. Im Aufruf wir ja auf Beendigung des Fremdprogramms gewartet, da geht es sofort nach dem Start weiter. Wie schon gesagt, mit einem kleinen (eigenen) Testprogramm klappt alles. Ich habe den Eindruck, das es da „zwei Stufen“ gibt, und die erste Stufe sofort beendet wird. (Aufruf cmd.com ?)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: fremdes Programm aufrufen

  Alt 25. Jul 2021, 09:57
Starten (explorrer)
Starten und warten (du)
das ist ein Unterschied (das Starten geht ja dennoch)

Scripte usw., welche durch ein anderes Programm interpretiert werden,
da startest du nicht "diese" Datei, sondern ein anderes Programm, welche sie öffnet.
(BAT, PS1, JAVA, BAS, PAS, TXT, DOC, .......)
Hier kann man selbst direkt das andere Programm starten und ihm die Datei als Parameter geben,
anstatt es automatisch machen zu lassen.

Und es gibt Programme, die nutzen einen Loader.
z.B. BDSLauncher.exe vs. BDS.exe im Delphi, oder bei MS-Office usw.

Da wird der Launcher absichtlich wieder beendet, bevor das Ganze fertig ist.
und dein Warten wartet nur auf die erste gestartete EXE (den Launcher), aber von der Anderen weiß sie nichts.
-> man könnte über die ToolsAPI nach anderen Prozessen suchen, welche diesen Prozess als Parent haben und auch auf deren Ende warten.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
joacim

Registriert seit: 30. Apr 2003
Ort: Immenrode
61 Beiträge
 
Delphi 6 Professional
 
#3

AW: fremdes Programm aufrufen

  Alt 25. Jul 2021, 10:19
@himitsu
schönen Sonntag! und danke.
Sowas in der Art habe ich mir schon gedacht.
Ich glaube in D6 geht das mit ToolsAPI noch nicht.

Und bitte nicht über die alte Version meckern, ich pflege immer noch
ein damit erstelltes Programm, dass alle Windows Umstellungen seit
WIN95 klaglos überstanden h.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: fremdes Programm aufrufen

  Alt 25. Jul 2021, 10:26
Nicht die OpenToolsAPI (OTA) von Delphi, womit man in die Delphi-IDE rein kommt,
sondern die von Windows, um in Windows reinzukommen.

https://docs.microsoft.com/en-us/win...ss-enumeration

* MSDN-Library durchsuchenCreateToolHelp32Snapshot + MSDN-Library durchsuchenProcess32First/Process32Next
* MSDN-Library durchsuchenEnumProcesses hilft nicht viel, wenn man damit nicht an Parent oder Childs kommt


32 ist OK, denn es geht um die Win32-APIs und die sind in 32 und 64 Bit das Gleiche (bzw. auch in 64 Bit heißt sie Win32 ... ist wie die APIs von WinRT oder .NET).
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.

Geändert von himitsu (25. Jul 2021 um 10:30 Uhr)
  Mit Zitat antworten Zitat
zeras

Registriert seit: 11. Mär 2007
Ort: Saalkreis
1.633 Beiträge
 
Delphi 12 Athens
 
#5

AW: fremdes Programm aufrufen

  Alt 25. Jul 2021, 10:35
Wie sieht denn der Aufruf beim Doppelklick aus? Welche Datei soll gestartet werden?
Was passiert, wenn du das Programm mit der Konsole (cmd.com) startest? Kommen da vielleicht Meldungen?
Bei einem Icon gibt es auch noch die Zeile "Ausführen in". Ist da vielleicht etwas eingetragen?
Matthias
Es ist nie falsch das Richtige zu tun!
- Mark Twain
  Mit Zitat antworten Zitat
joacim

Registriert seit: 30. Apr 2003
Ort: Immenrode
61 Beiträge
 
Delphi 6 Professional
 
#6

AW: fremdes Programm aufrufen

  Alt 25. Jul 2021, 10:52
mit cmd.com starte das Programm ganz normal, es gibt keine weiteren
Ausgaben. In Eignschaften ist kein weiterer Eintrag
  Mit Zitat antworten Zitat
zeras

Registriert seit: 11. Mär 2007
Ort: Saalkreis
1.633 Beiträge
 
Delphi 12 Athens
 
#7

AW: fremdes Programm aufrufen

  Alt 25. Jul 2021, 11:07
mit cmd.com starte das Programm ganz normal, es gibt keine weiteren
Ausgaben.
Ist das eine Exe oder hat das Programm eine andere Dateiendung?
Matthias
Es ist nie falsch das Richtige zu tun!
- Mark Twain
  Mit Zitat antworten Zitat
joacim

Registriert seit: 30. Apr 2003
Ort: Immenrode
61 Beiträge
 
Delphi 6 Professional
 
#8

AW: fremdes Programm aufrufen

  Alt 25. Jul 2021, 11:44
Das Programm ist eine Exe
  Mit Zitat antworten Zitat
Benutzerbild von blawen
blawen

Registriert seit: 1. Dez 2003
Ort: Luterbach (CH)
677 Beiträge
 
Delphi 12 Athens
 
#9

AW: fremdes Programm aufrufen

  Alt 25. Jul 2021, 11:52
Starten (explorrer)
Starten und warten (du)
das ist ein Unterschied (das Starten geht ja dennoch)
Und wenn Du das Programm via dem ersten Weg (Shellexecute) startest?
Roland
  Mit Zitat antworten Zitat
Benutzerbild von Sinspin
Sinspin

Registriert seit: 15. Sep 2008
Ort: Dubai
674 Beiträge
 
Delphi 10.3 Rio
 
#10

AW: fremdes Programm aufrufen

  Alt 25. Jul 2021, 13:31
Ich denke das liegt am Verzeichnis in dem ausgeführt wird.

Schreib mal zum Test ein Programm das dir beim Start den Wert aus ParamStr(0) ausgibt und den Wert von GetCurrentDir .
Dann teste mit Explorer, CMD und deinem Programm.
Stefan
Nur die Besten sterben jung
A constant is a constant until it change.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23      

 

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 10:50 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