Seite 1 von 2

Rausfinden ob Anwendung durch System gestartet wird

Verfasst: 31.07.2009 13:45
von X360 Andy
Gibt es eine möglichkeit rauszufinden ob die Anwendung durch einen User
gestartet worden ist oder durch das System ?

Mein Beispiel

Ich hab einen Startmenü eintrag, dieser startet das mein Programm, nun
soll das Programm aber mit dem Window Flag #PB_Window_Invisible
gestartet werden wenn es durch den Autostart ausgeführt wird, für den
normalen User soll das aber nicht benutzt werden.

Gibts es dafür eine Saubere Möglichkeit ?

Ich könnte eine Hide exe machen, die durch das Startmenü dann
aufgerufen wird und dann die die Anwendung mittels Runprogram() und
#PB_Program_Hide startet allerdings möchte ich keine zustäztliche exe.

Mfg

Re: Rausfinden ob Anwendung durch System gestartet wird

Verfasst: 31.07.2009 13:59
von Kiffi
Der Autostart erfolgt durch eine entsprechende Verknüpfung im
Autostartordner? Dann kannst Du der Verknüpfung einen Parameter
(meinetwegen 'silent') hinzufügen. Im Programm selber testest Du das dann
ganz einfach mit ProgramParameter().

Der Anwender startet ja sowieso mit Klick auf die Exe. Dann wird dieser
Parameter nicht mitgegeben.

Grüße ... Kiffi

Verfasst: 31.07.2009 14:08
von X360 Andy
Nein über die Registry ( // Hab mir eine MENGE dazu durchgelesen, damit ich keinen Fehler mache und nicht das System zerstöre, und mehr als HInzufügen tue ich nicht)

Verfasst: 31.07.2009 14:17
von Kiffi
X360 Andy hat geschrieben:Nein über die Registry ( // Hab mir eine MENGE dazu durchgelesen, damit ich keinen Fehler mache und nicht das System zerstöre, und mehr als HInzufügen tue ich nicht)
in Registry funktioniert das Starten mit Parametern auch.

Bild

(... Und wenn Du so viel Respekt vor der Registry hast, dann verstehe ich
nicht, warum Du nicht von vornherein den einfacheren Weg über den
Autostart genommen hast.)

Grüße ... Kiffi

Verfasst: 31.07.2009 15:12
von X360 Andy
Weil das mit dem Autostart Ordner doch nur noch bei XP funktioniert, oder etwa nicht ?

Verfasst: 31.07.2009 15:19
von Kiffi
X360 Andy hat geschrieben:Weil das mit dem Autostart Ordner doch nur noch bei XP funktioniert, oder etwa nicht ?
sollte von W95 bis W7 überall funktionieren. Ich habe zumindest bisher nichts
Gegenteiliges gehört oder gelesen.

Grüße ... Kiffi

Verfasst: 01.08.2009 00:09
von X360 Andy
Hm soweit ging das ganze ja mit dem Parameter....
Nur wurde irgendwie jeglicher Pfad in meiner Anwendung missachtet bzw
umgstellt, ich hätte ca. 30 Pfade anpassen müssen, so habe ich nun doch
eine 2te exe gemacht die durch die Reg. ausgeführt wird.

Diese erstellt eine Text Datei und führt dann die Haupt Anwendung aus,
die Haupt Anwendung überprüft dann die Anwesendheit der Datei und führt
die Hide Optionen durch und löscht die Datei wieder.

Eine Sub Optionale Lösung aber nunja....

Trotzdem danke!

Das mit dem Autostart Ordner funktioniert bei mir leider nicht, entweder ich
setze den falschen Link in die Verknüpfung oder ... ?

(Ich würde das auch nicht umstellen da ich meine ganzen Code schon
schön geschrieben und angepasst habe)

Verfasst: 01.08.2009 00:16
von ts-soft
Du solltest schon den Parameter "Ausführen in:" in der Verknüpfung setzen,
oder besser die Anwendung umstellen, das sie selber feststellt wo sie sich
befindet. Erklärungen hierzu findeste zu hunderten, da möchte ich mich also
nicht wiederholen. Wer immer noch Pfadprobleme hat, liest hier zu wenig
oder nicht genau genug :wink:

PS: Eintrag im Autostartordner ist wesentlich Userfreundlicher! Ohne Installer
und Deinstaller sollteste auch keine solchen Registryeinträge machen!

Verfasst: 01.08.2009 00:19
von Kiffi
@X360 Andy: Ohne Dir jetzt auf den Schlips treten zu wollen, aber wenn Du
30 Pfade anpassen musst, sobald Du Deiner Exe einen Parameter übergibst,
dann läuft Dein Code alles andere als rund.

Naja, ich will das auch nicht weiter vertiefen, weil Du ja anscheinend eine für
Dich akzeptable Lösung gefunden hast.

Grüße ... Kiffi

Verfasst: 01.08.2009 03:07
von X360 Andy
Naja ich weiß eben auch nicht wieso , wieso er auf einmal ins Nivana Pfade
setzt wenn ich das Programm einfach mal mit einem Parameter starte dabei
spielt es keine Rolle ob ich das Programm starte oder die Registry.....

Ich habe eigentlich sehr darauf geachtet Sauber zu Progammieren.
Muss irgendwie an der relativen Pfad setzung liegen.
Nunja es funktioniert.... :roll: