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 Mausklick simulieren, wenn Windows abgemeldet ist ? (https://www.delphipraxis.net/44722-mausklick-simulieren-wenn-windows-abgemeldet-ist.html)

stoxx 23. Apr 2005 13:52


Mausklick simulieren, wenn Windows abgemeldet ist ?
 
ich möchte einen Mausklick simulieren, wenn Windows den Anmeldebildschirm zeigt.
Das Programm läuft im Hintergrund. Leider habe ich ja aber keinen Zugriff auf den Desktop in dieser Zeit.
Ist sowas möglich ?

toms 28. Apr 2005 04:51

Re: Mausklick simulieren, wenn Windows abgemeldet ist ?
 
Hallo!

Was genau möchtest du machen?
Vielleicht gibt's ja eine andere Möglichkeit, als einen Klick zu simulieren.

stoxx 2. Mai 2005 12:03

Re: Mausklick simulieren, wenn Windows abgemeldet ist ?
 
Hi Tom,

es ist ein Login in eine fremde Software, und bei diesem Login muss am Anmeldebildschirm der "OK Button" betätigt werden, es gibt da leider keine andere Möglichkeit.....

NicoDE 2. Mai 2005 12:08

Re: Mausklick simulieren, wenn Windows abgemeldet ist ?
 
Zitat:

Zitat von stoxx
es ist ein Login in eine fremde Software, und bei diesem Login muss am Anmeldebildschirm der "OK Button" betätigt werden, es gibt da leider keine andere Möglichkeit.....

Öffne den Desktop mit den notwendigen Rechten und erzeuge einen neuen Thread (keine Abhängkeiten durch offene Handles) und setze den Zieldesktop mit SetThreadDesktop...

stoxx 28. Jun 2005 15:09

Re: Mausklick simulieren, wenn Windows abgemeldet ist ?
 
Du Nico .. ich komme leider mit den Hinweisen so rein gar nicht weiter .... hmmm
Schritt für Schritt Anleitungen sind für solche Fälle immer am besten geeignet für mich :-)
Falls Du Dich nochmal erbarmen könntest ?

Dankeschön !

NicoDE 30. Jun 2005 15:36

Re: Mausklick simulieren, wenn Windows abgemeldet ist ?
 
Liste der Anhänge anzeigen (Anzahl: 1)
Nach langer Zeit doch noch ein Hinweis...

Das Problem ist nicht das Erzeugen eines Threads und dessen Wechsel auf einen Desktop, sondern vielmehr, dass man aus dem Desktop des interaktiven Benutzers normalerweise nicht das Recht hat, die anderen Desktops zu öffnen (ich würde davon abraten die Sicherheitsbeschreibungen pauschal zu ändern; zumal das eine Menge Arbeit ist).

Anbei ein kleines Demo-Projekt (schnell runtergeschrieben, Fehler inklusive).

ps: um die Sicherheitsbeschreibungen zu betrachten und zum Testen zu editieren, kann man den WinSta/Desktop DACL-Editor von Keith Brwon verwenden: http://www.pluralsight.com/tools.aspx

stoxx 30. Jun 2005 17:19

Re: Mausklick simulieren, wenn Windows abgemeldet ist ?
 
Hi Nico !

wir hatten ja vor langer Zeit mal kurz im Chat über das Problem gesprochen, aber ich habe das Gefühl, dass ich mich wohl etwas umständlich ausgedrückt habe, bin mir nicht sicher, ob wir aneinander vorbei reden.

Ich möchte folgendes Szenario.
Der Nutzer startet den Rechner, und startet ein Programm ( kein Dienst, eine ganz normale EXE )
Dieses Programm startet zeitgesteuert ein zweites Programm.
Meldet sich dort an und betätigt dazu einen "OK Button" ..
Das funktioniet soweit ganz gut..
Nur eben nicht, wenn der Computer abgemeldet / gesperrt ist.

Vereinfacht möchte ich folgendes Szenario:

Ein Programm soll gestartet werden, über einen Timer soll eine Minute später ein Mausklick simuliert werden:

normalerweise mach ich das so:

Delphi-Quellcode:
 SetCursorPos(CurPos.X,CurPos.Y);
                  Mouse_Event(MOUSEEVENTF_LEFTDOWN, CurPos.X, CurPos.Y, 0, 0);
                  Mouse_Event(MOUSEEVENTF_LEFTUP,  CurPos.X, CurPos.Y, 0, 0);
nachdem das Programm gestartet ist, drückt aber der User die Windows+L taste zum abmelden des Rechners, so dass eine Passworteingabe nötig ist, um sich wieder anzumelden. Und genau in diesem Zustand soll das Programm ( welches ja noch läuft) einen Mausklick simulieren, ... den Mausklick auf den OK Button, der ja nicht zu sehen ist.

hmmmmm ....

NicoDE 30. Jun 2005 20:01

Re: Mausklick simulieren, wenn Windows abgemeldet ist ?
 
Zitat:

Zitat von stoxx
nachdem das Programm gestartet ist, drückt aber der User die Windows+L taste zum abmelden des Rechners, so dass eine Passworteingabe nötig ist, um sich wieder anzumelden. Und genau in diesem Zustand soll das Programm ( welches ja noch läuft) einen Mausklick simulieren, ... den Mausklick auf den OK Button, der ja nicht zu sehen ist.

Verstehe :)

Vielleicht hilft das: http://assarbad.net/stuff/!import/nico.old/pressbtn.zip
(schickt eine WM_COMMAND (BN_CLICKED) an den Parent...)

stoxx 1. Jul 2005 11:40

Re: Mausklick simulieren, wenn Windows abgemeldet ist ?
 
Zitat:

Vielleicht hilft das: http://assarbad.net/stuff/!import/nico.old/pressbtn.zip
(schickt eine WM_COMMAND (BN_CLICKED) an den Parent...)
Hi Nico, so geht es leider auch nicht, da es sich um eine Java Application handelt.
Der zu drückende Button hat also kein eigenes Handle ......

Das Tool Pressbutton liefert auch eine Fehlermeldung, ungüliges Fensterhandle ...

NicoDE 1. Jul 2005 11:48

Re: Mausklick simulieren, wenn Windows abgemeldet ist ?
 
Zitat:

Zitat von stoxx
so geht es leider auch nicht, da es sich um eine Java Application handelt.

Schwer zu sagen worauf die Anwendung reagiert. Du könnstest es mit SendInput oder WM_LBUTTONDOWN/WM_LBUTTONUP probieren...
(vielleicht ist der Anwender auch Linkshänder - WM_RBUTTONDOWN/WM_RBUTTONUP *g*)


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:56 Uhr.

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