Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Winlogon, Welcome Screen (https://www.delphipraxis.net/112848-winlogon-welcome-screen.html)

Dezipaitor 13. Mai 2008 23:36

Re: Winlogon, Welcome Screen
 
Ich dachte du willst auf winsta0\winlogon Desktop dein Fenster zeigen?

stOrM 13. Mai 2008 23:44

Re: Winlogon, Welcome Screen
 
Oh mein Gott bin ich bescheuert! Logisch hast vollkommen recht!
Ist der Code denn für Dich ok soweit?

Also ich habs jetzt alles so umgeschrieben, so wie du vorgeschlagen hattest, das Fenster meiner Exe ist jetzt komplett transparent, daruaf zeichne ich ein PNG danach zwinge ich das Fenster in den Vordergrund so das dieses über den Winlogon klebt...

Scheint optimal zu laufen, keine Abstürze mehr nich mal mehr nen Bluescreen (bin ich froh, dass es vmware gibt!) :P ich denk mal mein LiveSystem hätte die Anzahl der Abstürze wohl kaum überlebt (hehe naja dafür gibts ja noch Acronis) :tongue:

WTrotzdem wäre ich Dir sehr dankbar, wenn du nochmals über den Code fliegst und mir eventuell sagen kannst wie und wann es Probleme geben kann eventuell hast Du ja einen Rat parat wie ich diverse Probleme umgehen kann anhand des Codes...

Was fürn Drama um ne 'WNP' zu bauen... das lustige ist ja das es eiegentlich umsonst war dank Vista :wall:

Viele Grüsse
Marc

Dezipaitor 14. Mai 2008 10:55

Re: Winlogon, Welcome Screen
 
Anhand desCodes wirst du nur wenig Fehler finden (wenn überhaupt). Teste das Programm ausgiebig auch auf fremden Rechnern. Dann wirst du die Fehler eher finden.

stOrM 14. Mai 2008 12:35

Re: Winlogon, Welcome Screen
 
Ok bin grad dabei, ich hab aber noch folgende 2 Probleme, sind mir grad aufgefallen...

1. storm.exe wird 3x aufgerufen vermutlich durch die Handler in der DLL (Logon, Logoff usw)
Ich schätze mal ich müsste da, irgendwo prüfen ob der Prozess storm.exe existiert wenn ja ggf. beenden und dann erst StartApp.... aufrufen?!

2. Etwas seltsames, mein Fenster wird angezeigt, nur wenn ich nun aufs Passwordfeld im Winlogon klicke verschwindet mein Fenster (kann aber nicht ein Probleme mit ForeGround usw. sein, da in der Exe implementiert)

2a. Wenn Logoff stattfindet wird mein Fenster kurz angezeigt und dann verschwindet, es ist also nicht die ganze Zeit über im Winlogon sichtbar (passiert bei Logoff, Logon in beiden Fällen...

Für Punkt 2 / 2a weiss ich keine Rat...?!

Viele Grüße
Marc

SirThornberry 14. Mai 2008 12:46

Re: Winlogon, Welcome Screen
 
vielleicht liegt es einfach daran das sich das Fenster mit dem Passwort feld bei aktivieren in den Fordergrund bringt und somit deins überdeckt. Ansonsten macht es mir Angst was du da machst. Mir scheint es als ob du keine Ahnung von dem ganzen Hast und nur rum probierst anstelle fundiertes Wissen anzuwenden.

stOrM 14. Mai 2008 12:53

Re: Winlogon, Welcome Screen
 
1. Wie schon erwähnt prüft wird meine exe im code grundsätzlich in den Vordergrund gesetzt, kann also schlecht überdeckt werden...

2. Was deine Angst angeht, beunruhigt mich das weniger, wenn ich alles könnte brauchte ich kein Forum mehr besuchen oder?

Viele Grüße
Marc

Dezipaitor 14. Mai 2008 13:14

Re: Winlogon, Welcome Screen
 
Zitat:

Zitat von stOrM
Ok bin grad dabei, ich hab aber noch folgende 2 Probleme, sind mir grad aufgefallen...

1. storm.exe wird 3x aufgerufen vermutlich durch die Handler in der DLL (Logon, Logoff usw)
Ich schätze mal ich müsste da, irgendwo prüfen ob der Prozess storm.exe existiert wenn ja ggf. beenden und dann erst StartApp.... aufrufen?!

2. Etwas seltsames, mein Fenster wird angezeigt, nur wenn ich nun aufs Passwordfeld im Winlogon klicke verschwindet mein Fenster (kann aber nicht ein Probleme mit ForeGround usw. sein, da in der Exe implementiert)

2a. Wenn Logoff stattfindet wird mein Fenster kurz angezeigt und dann verschwindet, es ist also nicht die ganze Zeit über im Winlogon sichtbar (passiert bei Logoff, Logon in beiden Fällen...

Für Punkt 2 / 2a weiss ich keine Rat...?!

Viele Grüße
Marc

1. Deine Anwendung sollte für mehrere Winlogon Instanzen aufgerufen werden. Da du eine Instanz pro Session (0...x) verwenden solltest, kannst du nicht schauen, ob eine Storm.exe existiert. Vielmehr musst du z.b. ein Atom verwenden, und schauen ob dieses existiert. Atomtabellen sind, soweit ich weiß, pro Session einzigartig. Also pro Session nur eine Instanz, aber es können mehrere Winlogon geben (pro Session genau eins) und daher auch mehrere storm.exe.
Suche bitte nach Process Explorer von Sysinternals. Damit siehst du den Prozess Aufbau.

2. Es kann gut sein, dass Winlogon ein Hintergrund-Desktopfenster einrichtet, welches dein Fenster überdeckt.
Im Winlogondesktop ist nichts normal.
2a. Vista? XP? Wenn ein Benutzer sich ausloggt, werden alle Programme einer Session geschlossen. Und wenn dein Programm in dieser Session drin ist, dann dieses natürlich auch. Dann ist deine CreateProcess Strategie verpufft und du solltest direkt in Winlogon ein Fenster erzeugen.

stOrM 14. Mai 2008 13:26

Re: Winlogon, Welcome Screen
 
Wo hast du nur dein ganzes Wissen her mir qualmt jetzt schon wieder die birne nur vom lesen und das liegt nicht am wetter...

Trotzdem muss ich dir mal echt danken, für deine grossartige geduld mit mir :-)

Ich glaub ich muss erstmal versuchen zu verstehen, was du da geschrieben hast...

Ich meld mich wieder...!

Ps. hast du vielleicht ne VirtualMachine?
Dann könnte ich dir gerne mal bei interesse alles zusammpacken und du könntest es dir mal live ansehen, ich find immer bilder sagen mehr als 1000 worte...

Viele Grüße
Marc

Dezipaitor 14. Mai 2008 14:40

Re: Winlogon, Welcome Screen
 
Für was machst du eigentlich die ganze Sache?

stOrM 14. Mai 2008 15:03

Re: Winlogon, Welcome Screen
 
Oh wenn ichdir das verrate :-( dann hast du bestimmt keine Lust mehr weiterzuhelfen...
Nein mal ganz im ernst, ich hab leider nicht das Vergnügen als Programmierer zu arbeiten, das Leben hatte wohl was anderes für mich vorgesehen... (Vermutlich auch besser so, ich denke nicht das meine Zynapsen zeitweise richtig verschaltet sind dafür...)

Jedenfalls macht es mir einfach tierisch Spass mit Delphi zu knobeln, einfach an Problemen zu hängen, solange bis das erledigt ist...

Ich kam darauf wie gesagt weil ich das bei KAV / KIS zum ersten mal überhaupt gesehen habe und extrem neugierig darauf war, wie das überhaupt gemacht wird...

Jetzt kommt hinzu das mein Freund einen PC Laden hat, wäre vielleicht eine hübsche art ein OEM Logo zu verwenden, weilin den Systemeigenschaften kann das ja jeder :-)

Vorrausgesetzt natürlich, das irgendwann mal alles rund läuft, ich will ihm ja nicht sein Kunden vergraulen :-)
Das ist aber nur erstmal als Gag gedacht, bei den Kunden kann man es auch machen wäre also kein Thema, aber mich interessiert das Gebiet auf dem ich gerade wackelig hin und her schaukel sehr, deshalb würde ich gerne extrem mehr Wissen darüber anäufen und rumexperimentieren...

Was ich nicht kapiert habe und wo ich immer noch drüber nachdenke ist:

Deine Anwendung sollte für mehrere Winlogon Instanzen aufgerufen werden. Da du eine Instanz pro Session (0...x)

du solltest direkt in Winlogon ein Fenster erzeugen.

Das war auch der Grund meines Vorschlages das du das mal Live siehst, inner VM?


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:31 Uhr.
Seite 2 von 2     12   

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