Delphi-PRAXiS
Seite 2 von 4     12 34      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Maus, Abschalten, ignorieren .. (https://www.delphipraxis.net/120829-maus-abschalten-ignorieren.html)

Popov 18. Sep 2008 08:51

Re: Maus, Abschalten, ignorieren ..
 
Zitat:

Zitat von Corpsman
Kann man nun von Softwareseitens das Einschalten des Monitors, durch bewegen der Maus verhindern, oder nicht ?

Ob das geht, weiß ich nicht. Ich weiß zwar nicht genau was die Message bewirkt, es könnte aber sein, daß es lediglich der Energiesparmodus ist. Somit sendet das System wahrscheinlich eine Message an den Monitor wenn die Maus bewegt wird. Ist ja auch logisch. Welchen Sinn sollte ein Befehl haben der den Monitor dauerhaft abschaltet? Das wäre doch etwas unsinnig. Oder?

Was du eventuell machen könntest ist die Systemmessage abzufangen. Der Monitor kriegt keine Nachricht, also bleib er aus. Die zweite Möglichkeit wäre die Mausbewegungen abzufangen. Allerdings sollte das global nicht so einfach sein. Eventuell könnte man das Mausfenster in der sich der Zeiger bewegen kann auf 0 und 0 setzten. Das geht und ist relativ einfach, auch wenn ich gerade keinen Code zur Hand haben, aber ob es was bringt weiß ich auch nicht. Aber es wäre der geringste Aufwand.

Luckie 18. Sep 2008 08:52

Re: Maus, Abschalten, ignorieren ..
 
@Popov: Meinst du MSDN-Library durchsuchenClipCursor?

Popov 18. Sep 2008 14:18

Re: Maus, Abschalten, ignorieren ..
 
Zitat:

Zitat von Luckie
@Popov: Meinst du MSDN-Library durchsuchenClipCursor?

Ja, das meine ich. Allerdings weiß ich nicht ob das was bringt. Glaube ich eher nicht, aber der der Aufwand es zu Testen ist sehr gering, also sollte er es machen. Der Mensch kann ja auch Glück im Leben haben.

Medium 18. Sep 2008 17:19

Re: Maus, Abschalten, ignorieren ..
 
Man kann, in dem man einen LowLevel-Hook installiert, und dessen Weiterleitung blockiert, sämtliche Eingaben verhindern. Ich weiss nur nicht, ob die Logik für das umschalten des Bildschirms vor oder nach der Hookchain sitzt. BlockInput() gibt es noch, allerdings ist es ziemlich rabiat. Man muss es nämlich softwareseitig wieder entfernen ohne dafür auf Inputs reagieren zu können, oder neustarten...

Bei der Variante mit den Hooks kann man immerhin noch selber bestimmen, ob einzelne Events nicht doch durch kommen sollen. Diesbezüglich hab ich auch ein kleines (in keiner Weise bösartiges) Beispiel in der Pipeline dass ich hier noch posten wollte, wo aber noch einzwei Zeilen Doku rein müssen vorher =)

Hador 18. Sep 2008 17:41

Re: Maus, Abschalten, ignorieren ..
 
Zitat:

Zitat von Medium
BlockInput() gibt es noch, allerdings ist es ziemlich rabiat. Man muss es nämlich softwareseitig wieder entfernen ohne dafür auf Inputs reagieren zu können, oder neustarten.

Bei BlockInput kommt Alt + Strg + Entf aber auch noch durch. Und danach sind dann auch alle Eingaben wieder möglich.

toms 18. Sep 2008 17:52

Re: Maus, Abschalten, ignorieren ..
 
BlockInput nützt da nichts. Wenn die Maus bewegt wird, erwacht der Bildschirm wieder aus seinem Schlaf.

Medium 18. Sep 2008 17:57

Re: Maus, Abschalten, ignorieren ..
 
So was hab ich mir schon fast gedacht.

Corpsman 19. Sep 2008 11:43

Re: Maus, Abschalten, ignorieren ..
 
@Medium

Also mein Programm, soll darf die Abläufe ( programme ) die Aktuell laufen nicht stören.
Ich will es ja nur als Kurzzeitigen Screenlocker einstezen, wenn ich kurz afk bin.

magst du mir evtl mal ( per pn oder so ) deine Unkommentierte Variante zukommen lassen ?

sämtliche anderen tastatureingaben auch STRG + ALT + ENTF , fange ich ja schon ganz anders ab.

Es reicht daher vollkommen, die Funktion Disable Maus..

Luckie 19. Sep 2008 12:00

Re: Maus, Abschalten, ignorieren ..
 
Zitat:

Zitat von Corpsman
sämtliche anderen tastatureingaben auch STRG + ALT + ENTF , fange ich ja schon ganz anders ab.

Und wie?

Corpsman 19. Sep 2008 12:30

Re: Maus, Abschalten, ignorieren ..
 
das steht zwar oben schon, aber weil du's bist
Delphi-Quellcode:
Program Project1;
..

Var
  Desktop: TJwSecurityDesktop;

Begin
  Application.free;
  Application := Nil;

  Desktop := TJwSecurityDesktop.createDesktop(Nil, false, '', [], true, Maximum_allowed, Nil);


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

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