AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

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
60 Beiträge
 
Delphi 6 Professional
 
#1

fremdes Programm aufrufen

  Alt 25. Jul 2021, 08: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
Online

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

AW: fremdes Programm aufrufen

  Alt 25. Jul 2021, 08: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.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
joacim

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

AW: fremdes Programm aufrufen

  Alt 25. Jul 2021, 09: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
Online

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

AW: fremdes Programm aufrufen

  Alt 25. Jul 2021, 09: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).
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests

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

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

AW: fremdes Programm aufrufen

  Alt 25. Jul 2021, 09: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
60 Beiträge
 
Delphi 6 Professional
 
#6

AW: fremdes Programm aufrufen

  Alt 25. Jul 2021, 09: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.618 Beiträge
 
Delphi 12 Athens
 
#7

AW: fremdes Programm aufrufen

  Alt 25. Jul 2021, 10: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
60 Beiträge
 
Delphi 6 Professional
 
#8

AW: fremdes Programm aufrufen

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

Registriert seit: 30. Nov 2003
Ort: Luterbach (CH)
654 Beiträge
 
Delphi 12 Athens
 
#9

AW: fremdes Programm aufrufen

  Alt 25. Jul 2021, 10: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
613 Beiträge
 
Delphi 10.3 Rio
 
#10

AW: fremdes Programm aufrufen

  Alt 25. Jul 2021, 12: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
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 14:44 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