Rausfinden ob Anwendung durch System gestartet wird

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
X360 Andy
Beiträge: 1206
Registriert: 11.05.2008 00:22
Wohnort: Bodensee
Kontaktdaten:

Rausfinden ob Anwendung durch System gestartet wird

Beitrag 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
Benutzeravatar
Kiffi
Beiträge: 10714
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Re: Rausfinden ob Anwendung durch System gestartet wird

Beitrag 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
a²+b²=mc²
Benutzeravatar
X360 Andy
Beiträge: 1206
Registriert: 11.05.2008 00:22
Wohnort: Bodensee
Kontaktdaten:

Beitrag 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)
Benutzeravatar
Kiffi
Beiträge: 10714
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Beitrag 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
a²+b²=mc²
Benutzeravatar
X360 Andy
Beiträge: 1206
Registriert: 11.05.2008 00:22
Wohnort: Bodensee
Kontaktdaten:

Beitrag von X360 Andy »

Weil das mit dem Autostart Ordner doch nur noch bei XP funktioniert, oder etwa nicht ?
Benutzeravatar
Kiffi
Beiträge: 10714
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Beitrag 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
a²+b²=mc²
Benutzeravatar
X360 Andy
Beiträge: 1206
Registriert: 11.05.2008 00:22
Wohnort: Bodensee
Kontaktdaten:

Beitrag 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)
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag 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!
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Benutzeravatar
Kiffi
Beiträge: 10714
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Beitrag 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
a²+b²=mc²
Benutzeravatar
X360 Andy
Beiträge: 1206
Registriert: 11.05.2008 00:22
Wohnort: Bodensee
Kontaktdaten:

Beitrag 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:
Antworten