Delphi-PRAXiS
Seite 2 von 3     12 3      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Erkennen wie Programm gestartet wurde (https://www.delphipraxis.net/109665-erkennen-wie-programm-gestartet-wurde.html)

sirius 5. Mär 2008 16:43

Re: Erkennen wie Programm gestartet wurde
 
Zitat:

Zitat von rollstuhlfahrer
Process32First geht net. oder hat einer hier Windows CE

rollstuhlfahrer

Schau noch mal genau hin!

rollstuhlfahrer 5. Mär 2008 16:44

Re: Erkennen wie Programm gestartet wurde
 
oups, in der schnelle das Suchergebnis nicht ganz überflogen

sorry

SirThornberry 5. Mär 2008 18:15

Re: Erkennen wie Programm gestartet wurde
 
Ich finde du solltest dein Konzept nochmal überdenken. Was passiert denn wenn ich das Programm über den TotalCommander oder einen anderen Dateimanager starte? bekomme ich dann die Batch-Version oder die Explorer-Version? Und was passiert wenn ich das Programm nicht über Start->Ausführen starte sondern durch ein anderes Programm? Und was passiert wenn ich es nicht per cmd/batch starte sondern mit einer alternativen cmd-shell?

RavenIV 6. Mär 2008 07:48

Re: Erkennen wie Programm gestartet wurde
 
Zitat:

Zitat von SirThornberry
Ich finde du solltest dein Konzept nochmal überdenken. Was passiert denn wenn ich das Programm über den TotalCommander oder einen anderen Dateimanager starte? bekomme ich dann die Batch-Version oder die Explorer-Version? Und was passiert wenn ich das Programm nicht über Start->Ausführen starte sondern durch ein anderes Programm? Und was passiert wenn ich es nicht per cmd/batch starte sondern mit einer alternativen cmd-shell?

Das sind berechtigte Gedanken.
Aber das Tool wird nur intern in unserer Firma eingesetzt.
Und hier ist ganz klar definiert, welche Software auf einem Rechner drauf sein darf / muss und welche nicht.
Total-Commander oder cmd-Clones sind nicht auf der whitelist drauf.

Die Applikation wird mit diesen Möglichkeiten gestartet:
- Doppelklick im Explorer (immer ohne Parameter)
- aus der cmd.exe (mit Parameter, sonst Fehlermeldung)
- aus dem Taskplaner (mit Parameter, sonst Fehler-Eintrag ins Logfile)

Wie kann ich nun auf elegante Art die Weise des Startens herausfinden?

mquadrat 6. Mär 2008 08:00

Re: Erkennen wie Programm gestartet wurde
 
Wie wär's wenn du die Exe überhaupt nicht direkt startest? Nimm doch für jeden der drei Fälle eine Batch-Datei, die dann die Exe mit unterschiedlichen Parametern startet.

RavenIV 6. Mär 2008 08:17

Re: Erkennen wie Programm gestartet wurde
 
Zitat:

Zitat von mquadrat
Wie wär's wenn du die Exe überhaupt nicht direkt startest? Nimm doch für jeden der drei Fälle eine Batch-Datei, die dann die Exe mit unterschiedlichen Parametern startet.

Und Du meinst, das peilen die Leute?
Dann kennst Du meine Kollegen (vor allem den Chef) nicht.
In einem Verzeichnis leigen verschiedene Dateien (*.exe, *.bat, usw.), was wird gestartet? Natürlich die exe, schon nur weil die ein buntes Icon hat.

Jelly 6. Mär 2008 09:52

Re: Erkennen wie Programm gestartet wurde
 
Du könntest auch eine Dateierweiterung im Explorer registrieren, in deinem Fall 3 unterschiedliche. Je nach Erweiterung wird dann dein Programm mit unterschiedlichen Parametern gestartet. Dein Programm selbst (also die EXE) legst du irgendwo unter Program Files ab. Verteilen tust du dann nur die "Dokumente" mit deiner Dateierweiterung. Du kannst schöne bunte Icons hinterlegen, alles was du willst.

sirius 6. Mär 2008 10:26

Re: Erkennen wie Programm gestartet wurde
 
Zitat:

Zitat von RavenIV
In einem Verzeichnis leigen verschiedene Dateien (*.exe, *.bat, usw.), was wird gestartet? Natürlich die exe, schon nur weil die ein buntes Icon hat.

Wenn du eh schon Batch-Dateien oder ähnliches verwendest, dann kannst du doch in der Batch-Datei einen anderen Parameter übergeben und ohne Parameter (Chef hat die Exe direkt gestartet) gibst du die Fehlermeldung: "Hallo du Saufkopf" aus!

RavenIV 6. Mär 2008 10:43

Re: Erkennen wie Programm gestartet wurde
 
Zitat:

Zitat von sirius
Zitat:

Zitat von RavenIV
In einem Verzeichnis leigen verschiedene Dateien (*.exe, *.bat, usw.), was wird gestartet? Natürlich die exe, schon nur weil die ein buntes Icon hat.

Wenn du eh schon Batch-Dateien oder ähnliches verwendest, dann kannst du doch in der Batch-Datei einen anderen Parameter übergeben und ohne Parameter (Chef hat die Exe direkt gestartet) gibst du die Fehlermeldung: "Hallo du Saufkopf" aus!

Problem nicht verstanden.
Man soll es auch per Doppelklick starten können.
Wenn per batch gestartet wird und keine Parameter angegeben werden, nur dann soll ein Fehler angezeigt werden.

bitsetter 6. Mär 2008 12:19

Re: Erkennen wie Programm gestartet wurde
 
Zitat:

Zitat von Apollonius
Oder du verwendest die ToolHelp-Funktionen, um die Prozess-Id des Eltern-Prozesses zu erhalten.

Zitat:

Zitat von RavenIV
Wenn per batch gestartet wird und keine Parameter angegeben werden, nur dann soll ein Fehler angezeigt werden.

Dann ist der Eltern-Prozesses die CMD.EXE bei einem Start aus dem Explorer mit Doppelklick die Explorer.EXE.
Mittels dem Tool Processexplorer kennst du zum Test die Eltern-Prozesse herausfinden.


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:56 Uhr.
Seite 2 von 3     12 3      

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