Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Programm ausführen bevor der Desktop geladen wird? (https://www.delphipraxis.net/34204-programm-ausfuehren-bevor-der-desktop-geladen-wird.html)

mlspider 19. Nov 2004 09:14


Programm ausführen bevor der Desktop geladen wird?
 
Hallo,

Ich habe mir ein Passwortschutz gebastelt. Nun würde ich gerne das Programm ausführen lassen, bevor der Desktop geladen wird. In welchem Registrierungsschlüssel muß ich meine Anwendung eintragen, um mein Vorhaben zu verwirklichen???

Danke!!!

schuetze09 19. Nov 2004 09:47

Re: Programm ausführen bevor der Desktop geladen wird?
 
Hallo,

probiers doch mal hier:
Code:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce
ich glaube die dort drin enthaltenen Schlüssel werden vor dem Desktop ausgeführt, Problem ist, dass sie nur einmal ausgeführt werden, eben RunOnce. Müsstest also noch unter Run einen Eintrag machen, der widerum deinen Eintrag in RunOnce macht...

100%-ig sicher bin ich mir jedoch nicht...

mfg
schuetze09

mlspider 19. Nov 2004 10:16

Re: Programm ausführen bevor der Desktop geladen wird?
 
Soweit ich weiß, werden hier registriete Programme nur einmal automatisch gestartet. Und leider erst, nachdem der Desktop schon automatisch geladen wurde.

Vieleicht mal anders gefragt. Wie kann ich den Bootvorgang stoppen, bevor der Desktop geladen wird, mein Programm usführen lassen und bei richtiger Eingabe des Passwortes den Bootvorgang fortsetzen lassen?

Jelly 19. Nov 2004 10:22

Re: Programm ausführen bevor der Desktop geladen wird?
 
Zitat:

Zitat von mlspider
Nun würde ich gerne das Programm ausführen lassen, bevor der Desktop geladen wird.

Kein Desktop -> Keine Fenster -> Ich würd einen Dienst dafür nehmen.

Gruß,

mlspider 19. Nov 2004 10:25

Re: Programm ausführen bevor der Desktop geladen wird?
 
Der Dienst müßte aber so gestartet werden, daß die TNA, Taskleiste und Explorer noch nicht erreichbar ist. Wie würdet ihr so etwas machen. Ich habe wirklich keinen Plan mehr und habe sämtliche Schlüssel ausprobiert und mir sogar schon Windows entschärft!

Luckie 19. Nov 2004 13:31

Re: Programm ausführen bevor der Desktop geladen wird?
 
Was willst du denn machen? Wenn du sagst, dass du Dineste zur Verfügung hast, dann hast du ein NT basierendes System und das kennt eine Login schon. Warum also ein eigenes?

mlspider 19. Nov 2004 13:40

Re: Programm ausführen bevor der Desktop geladen wird?
 
Im Prinzip schon. Allerdings soll das ein Passwortcheck für den Computers meines Kumpels werden. Und der arbeitet noch mit Win-ME!

Nur weiß ich nicht genau, in welchen Schlüssel ich das Programm aufrufen muß, bevor ich vollen Zugriff auf dem Desktop habe.

Jelly 19. Nov 2004 13:42

Re: Programm ausführen bevor der Desktop geladen wird?
 
Zitat:

Zitat von mlspider
Und der arbeitet noch mit Win-ME!

Dann kannst du die Idee mit dem Dienst eh vergessen, da ME auf Windows98 basiert, und keine Systemdienste kennt.

Hast du schon mal gegoogelt nach solchen Tools. Ich meine mich dran zu erinnern, daß ich mal vor Jahren im Windows95 Zeitalter auch sowas gesucht habe und auch irgendwas gefunden habe. Hab jetzt nur keine Ahnung mehr wie das Tool hieß.

Gruß,

mlspider 19. Nov 2004 13:46

Re: Programm ausführen bevor der Desktop geladen wird?
 
Auch das habe ich bereits hinter mir. Weiß trotdem nicht mehr weiter.

jfheins 19. Nov 2004 14:47

Re: Programm ausführen bevor der Desktop geladen wird?
 
Du könntest evtl. auch das Prog in den Autorun packen, und beim Starten die Explorer.exe killen ...
bei richtigem Passwort halt wieder starten ...
Ist aber nicht sooo die saubere Lösung ...

mlspider 19. Nov 2004 14:51

Re: Programm ausführen bevor der Desktop geladen wird?
 
An die Shell Explorer.exe hatte ich auch schon gedacht und auch schon probiert. Damit hatte ich Windows entschärft.

Aber die Idee ist nicht schlecht!!! Nur wie sollich das bewerkstelligen??? Registery???

SubData 19. Nov 2004 14:53

Re: Programm ausführen bevor der Desktop geladen wird?
 
Verwende einfach n Bios Passwort oder n fertiges Programm ich glaub das is am Sinnvollsten -g-

mlspider 19. Nov 2004 14:56

Re: Programm ausführen bevor der Desktop geladen wird?
 
Nee, ich wollte ja mein PW-Schutz verwenden. Und nun noch eine weitere Frage. Wie kann mann denn die Explorer.Exe "killen" und nach Beendigung des Programmes wieder herstellen?????

jfheins 19. Nov 2004 15:20

Re: Programm ausführen bevor der Desktop geladen wird?
 
Zitat:

Zitat von mlspider
Wie kann mann denn die Explorer.Exe "killen" und nach Beendigung des Programmes wieder herstellen?????

zu 1) http://www.swissdelphicenter.ch/de/showcode.php?id=266
zu 2) [dp]"ShellExecute"[/dp]

mlspider 19. Nov 2004 15:24

Re: Programm ausführen bevor der Desktop geladen wird?
 
Und wie stell ich die wieder her? Ich weiß, daß sind dämliche Fragen. Aber nach 9 Stunden in der Registerdatenbank wühlen, klappt es bei mir nicht mehr so richtig!!! Sorry!

Hat sich erledigt: Hast ja recht "ShellExecute"

jfheins 19. Nov 2004 15:34

Re: Programm ausführen bevor der Desktop geladen wird?
 
Also ich verstehe dein Problem jetzt gerade nicht mehr ganz.
mein Ansatz war:
:arrow: Eigenes Prog in registry-Autostart
:arrow: Beim Programmstart "explorer.exe" killen (s.o.)
:arrow: Passwort abfragen
:arrow: Bei richtigem Passwort "explorer.exe" ausführen (s.o.)

mlspider 19. Nov 2004 15:37

Re: Programm ausführen bevor der Desktop geladen wird?
 
Genau so!!!!

Mystic 19. Nov 2004 17:49

Re: Programm ausführen bevor der Desktop geladen wird?
 
Mir wäre lieber:

:arrow: Eigenes Programm als Shell eintragen
:arrow: Programm sperrt Bildschirm und STRG-ALT-ENTF
:arrow: Eingabe des richtigen Passworts
:arrow: Starten von Explorer.exe, Freigeben vom Bildschirm und STRG-ALT-ENTF
:arrow: Beenden des Programms

Dann entfällt das hässliche Killen des Explorers. Habs nicht getestet, glaube aber, das es funktioniert.

Eigenes Programm als Shell eintragen:
Bei 95, 98, ME:
Ini-Datei: %windir%\system.ini
Sektion: boot
Wert: shell
Standard: explorer.exe

Bei NT, 2K, XP, 2003:
Registry-Schlüssel: HKCU\Software\Microsoft\Windows NT\Winlogon
Wert: shell
Standard: explorer.exe, svchost.exe


Sperren von STRG-ALT-ENTF:
Bei 95, 98, ME:
SystemParametersInfo(SPI_SCREENSAVERRUNNING,1,PNon ClientMetrics(10),1);

Bei NT, 2K, XP, 2003:
Registry-Schlüssel: HKCU\Software\Microsoft\Windows\CurrentVersion\Pol icies\Security
Wert: DisableTaskMgr (auf 1 setzen)
Wert: DisableLockWorkstation (auf 1 setzen)
Wert: DisableChangePassword (auf 1 setzen)

Registry-Schlüssel HKCU\Software\Microsoft\Windows\CurrentVersion\Pol icies\Explorer
Wert: NoClose (auf 1 setzen)
Wert: NoLogoff (auf 1 setzen)


Freigeben von STRG-ALT-ENTF:
Bei 95, 98, ME:
SystemParametersInfo(SPI_SCREENSAVERRUNNING,0,PNon ClientMetrics(10),1);

Bei NT, 2K, XP, 2003:
Registry-Schlüssel: HKCU\Software\Microsoft\Windows\CurrentVersion\Pol icies\Security
Wert: DisableTaskMgr (auf 0 setzen)
Wert: DisableLockWorkstation (auf 0 setzen)
Wert: DisableChangePassword (auf 0 setzen)

Registry-Schlüssel: HKCU\Software\Microsoft\Windows\CurrentVersion\Pol icies\Explorer
Wert: NoClose (auf 0 setzen)
Wert: NoLogoff (auf 0 setzen)


Edit: Schreibfehler

mlspider 19. Nov 2004 18:28

Re: Programm ausführen bevor der Desktop geladen wird?
 
Hey Cool!!! Es funktioniert!!!!

Ich habe bis eben: HKCU\Software\Microsoft\Windows\CurrentVersion\Pol icies\Explorer\
NoWinKeys auf 1 gesetzt. Hatte eine ähnliche Wirkung!!! Mein Programm hatte ich dabei in RunOnce eingetragen und mit Beenden des Programms in RunOnce erneut registrieren lassen.

Natürlich alles unter XP!!! Jetzt kann ich es aber für ME ableiten. (Hoffe ich!!!)

Danke!!!!

Karlson 21. Nov 2004 20:28

Re: Programm ausführen bevor der Desktop geladen wird?
 
Ich werf hier mal was in den Raum, auch wenns sich schon erledigt hat ;)

http://www.delphi-forum.de/topic_eig...ten_31484.html

ps.: Damit der Explorer in seiner gewohnten Art und weise startet muss er als Shell registriert sein!

mh166 22. Nov 2004 06:59

Re: Programm ausführen bevor der Desktop geladen wird?
 
Zitat:

Zitat von Karlson
ps.: Damit der Explorer in seiner gewohnten Art und weise startet muss er als Shell registriert sein!

Öhm, nö... Ich glaube ich hab irgendwo mal gelesen, dass der Explorer die Shell nachlädt sobald du ihn das erste mal nach deiner Shell startest (sofern du das nich irgendwo in der Registry abschaltest). Wenn ich nur wüsste, wo ich das gelesen habe... :gruebel:

Und nochwas:
Zitat:

Zitat von Karlons Tipp
Folgenden Code benutzten wir um den Shell dann wieder auf den Explorer zu setzten, woraufhin der PC wieder normal benutzt werden kann, die folgende Prozedur muss in eurem Programm vorkommen, sonst gibt es keine Möglichkeit mehr den Shell wieder auf den Explorer zu setzten

Schon wieder nö. :wink: Denn du hast immer die Möglichkeit STRG+ALT+ENTF zu drücken (naja gut, es sei denn, du schlatest den Taskmanager ab [s.o]). Da kommt der Taskmanager und dort kannst du dann nen neuen Prozess starten -> Regedit.exe Und dann kannstes auch manuell umstellen

mfg, mh166

Karlson 22. Nov 2004 15:04

Re: Programm ausführen bevor der Desktop geladen wird?
 
Zitat:

Öhm, nö... Ich glaube ich hab irgendwo mal gelesen, dass der Explorer die Shell nachlädt sobald du ihn das erste mal nach deiner Shell startest (sofern du das nich irgendwo in der Registry abschaltest). Wenn ich nur wüsste, wo ich das gelesen habe...
Öhm, ebenfalls nö...du glaubst es, ich weiss es. Wenn der explorer nicht als Shell registriert ist, öffnet sich lediglich ein Explorer-Dir Fenster, wenn man ihn startet. Desktopicons, Taskbar usw. bleiben verborgen. :roll:

Zitat:

Schon wieder nö. Denn du hast immer die Möglichkeit STRG+ALT+ENTF zu drücken (naja gut, es sei denn, du schlatest den Taskmanager ab [s.o]). Da kommt der Taskmanager und dort kannst du dann nen neuen Prozess starten -> Regedit.exe Und dann kannstes auch manuell umstellen
Sicher. Du kannst dir vielleicht vorstellen dass ich mich auch ein ganz klein Wenig mit der Prozedur auskenne, schließlich habe ich sie geschrieben :roll:
Ich habe das allerdings auf mein Beispiel bezogen, indem ich ein Loginprogramm realisiert habe, dabei wird der Taskmgr leider deaktiviert :shock: Und dann? Selbst im abgesicherten Modus wird der Shell als erstes gestartet, kommt man im abgesicherten Modus an den Taskmgr? (ich weiss es nicht)

ps.: Sorry, aber ich hasse nichts mehr als Antworten die nicht nur über alle maßen arrogant sind sondern auch noch unwahr.q

mh166 22. Nov 2004 15:33

Re: Programm ausführen bevor der Desktop geladen wird?
 
Zitat:

Zitat von Karlson
Öhm, ebenfalls nö...du glaubst es, ich weiss es.

Hm.... Ich bin mir ziemlich sicher, dass ich das irgendwo mal gelesen habe :gruebel: Naja, was solls...

Zitat:

Ich habe das allerdings auf mein Beispiel bezogen, indem ich ein Loginprogramm realisiert habe, dabei wird der Taskmgr leider deaktiviert
Achs so... Naja, aber ansonsten gehts halt über taskmgr...

Zitat:

ps.: Sorry, aber ich hasse nichts mehr als Antworten die nicht nur über alle maßen arrogant sind sondern auch noch unwahr.
1. Sollte das nich arrogant klingen/sein. Sorry, wenns so rüber kam. :oops: Und 2. Hab ich beim ersten nich behauptet, dass ich es weiß, sondern dass ich glaube. Und beim zweiten bin ich nich von der Situation mit dem LogIn ausgegangen, sondern von nem "normalen" Shell-Ersatz. Und da isses ja wohl nich falsch... :stupid:

mfg, mh166

Karlson 22. Nov 2004 17:00

Re: Programm ausführen bevor der Desktop geladen wird?
 
Zitat:

Zitat von mh166
Hm.... Ich bin mir ziemlich sicher, dass ich das irgendwo mal gelesen habe :gruebel: Naja, was solls...

Okay, aber es ist definitiv nicht so. Das als Shell registrierte Programm, ist das erste "externe" Programm das gestartet wird. Ausnahmen sind der normale Windows Login. Win32 hat keine ahnung was Shell ist, es handelt nur mit dem als in der Registry angegebenen Parameter. Es wäre unsinnig wenn der Explorer das als Shell registrierte Programm nochmal nachladen würde...was meinst du überhaupt nachladen?
Wichtig ist noch, dass der Explorer mit dem Parameter -Shell (nur unter win2k sp1!!) gestartet wird, wenn die explorer.exe das als Shell registrierte Programm ist. Wenn dieser Parameter mitgegeben wird, öffnet der Explorer all seine sichtbaren wie unsichtbaren Shellinstanzen (taskbar, Desk-Icons, TNA usw.)

Zitat:

Ich habe das allerdings auf mein Beispiel bezogen, indem ich ein Loginprogramm realisiert habe, dabei wird der Taskmgr leider deaktiviert
Stimmt. Aber ich meinte nicht dass du das noch erwähnen musst, und mir als "Unwissenheit" ankreiden musst :gruebel:

Zitat:

1. Sollte das nich arrogant klingen/sein. Sorry, wenns so rüber kam. :oops: Und 2. Hab ich beim ersten nich behauptet, dass ich es weiß, sondern dass ich glaube. Und beim zweiten bin ich nich von der Situation mit dem LogIn ausgegangen, sondern von nem "normalen" Shell-Ersatz. Und da isses ja wohl nich falsch... :stupid:
Es kam einfach nur so rüber als wüsstest du es, und durch dieses "nö..."
Beim zweiten ist es genau dasgleiche. Hättest du z.B. geschrieben "Nicht ganz, wenn der Taskmgr aktiviert ist kann man das auch so und so machen..." wäre das für mich kein Problem. Aber dieses "nö...das stimmt nicht (und du bist blöd)" kam für mich halt ziemlich angreifend rüber.
Im Endeffekt muss ich noch sagen, dass ich selbst auch übers Ziel hinausgeschossen bin. Tut mir leid, ich hätte das alles auch freundlicher sagen können.
Friede?

mh166 22. Nov 2004 19:07

Re: Programm ausführen bevor der Desktop geladen wird?
 
Zitat:

Zitat von Karlson
was meinst du überhaupt nachladen?

Naja, dass er eben Desktop, Taskbar, etc... letztendlich doch noch lädt, auch wenn er nicht als Shell eingetragen is. Naja, egal...

Zitat:

Friede?
Klar doch! :angel: */me reicht mal die Friedenspfeife rum* :drunken:

mfg, mh166

Karlson 22. Nov 2004 19:26

Re: Programm ausführen bevor der Desktop geladen wird?
 
Zitat:

Zitat von mh166
Klar doch! :angel: */me reicht mal die Friedenspfeife rum* :drunken:

Ich rauch ja sowas eigentlich nicht, aber bei dir mach ich mal ne Ausnahme *gib her die scheisse*

mh166 22. Nov 2004 20:16

Re: Programm ausführen bevor der Desktop geladen wird?
 
Zitat:

Zitat von Karlson
Ich rauch ja sowas eigentlich nicht, aber bei dir mach ich mal ne Ausnahme *gib her die scheisse*

:lol: Ich doch auch nich. Aber schließlich wars ja fürn guten Zweck! :wink:

Naja, back to topic... (falls noch was kommen sollte)

mfg, mh166

w3seek 22. Nov 2004 21:17

Re: Programm ausführen bevor der Desktop geladen wird?
 
Falls du eine Anwendung noch bevor windows ueberhaupt in die GUI wechselt (also "bevor der desktop geladen wird") starten willst, musst du diese unter HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Contro l\Session Manager in BootExecute eintragen. Allerdings ist die Voraussetzung, dass es eine native Anwendung ist, welche du wiederum nicht mit Delphi schreiben kannst.


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:03 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz