![]() |
Maus, Abschalten, ignorieren ..
Hossa leutz,
Ich hab mir für mein Laptop ein Tool gebastelt, das wenn ich ne Tastenkombination drücke den Monitor sperrt, und erst nach Eingabe eines Passwortes das System wieder frei gibt. Dank Decipators JWSCL ist das auch kein Problem. Nu hab ich mir Zusätzlich noch mit eingebaut das das Tool den Monitor Abschaltet, mittels
Delphi-Quellcode:
ist das Kein Problem.
SendMessage(Application.Handle, WM_SYSCOMMAND, SC_MONITORPOWER, MONITOR_OFF);
Was mich nu aber stört ist das der Monitor beim Bewegen der Maus wieder an geht. Das er angeht wenn ich die Tasten auf der Tastatur drücke, ist zwar auch nicht toll, aber akzeptabel. Nu ist die Frage, wie bastelt man in Delphi das der rechner überhaupt gar nicht mehr auf die Maus reagiert ? |
Re: Maus, Abschalten, ignorieren ..
Zitat:
![]() |
Re: Maus, Abschalten, ignorieren ..
ja das Lock workstation entspricht einem Windows + L
Da ich aber von Windows passwörtern nicht viel halte, hat meines keins. Mein Programm erzeugt mittels JWSCL einen 2. Virtuellen Desktop, auf diesem wird mein Formular Desktop füllend ausgegeben ( das Formular ist leer und color := clblack, cursor := -1 ). Tippt man dann das PW ( das aus einer Config file ausgelesen wird ) ein, so beendet das Programm den 2. Desktop und gibt das System wieder frei. Und zusätzlich wird eben der Monitor ausgeschaltet, Das Problem ist eben das er sich von allein wieder einschaltet... |
Re: Maus, Abschalten, ignorieren ..
Hast du schon probiert auf die entsprechende Message beim einschalten des Monitors zu reagieren und den Monitor wieder abzuschalten?
![]() Edit: Da fällt mir aber auf, das WM_SYSCOMMAND nur über das Ab- und nicht das Anschalten des Monitors benachrichtigt. |
Re: Maus, Abschalten, ignorieren ..
Zitat:
Zitat:
Zitat:
Generell kann man sagen, dass die meisten selbst gebastelten Lösungen mit Sicherheit unsicherer sind, als die von Microosft implementierten und mitgelieferten. |
Re: Maus, Abschalten, ignorieren ..
Ich wollte hier eigentlich keine Diskussion über unsicherheit, oder sinn meines Programmes vom Stapel brechen.
Leztendlich funktioniert die Win Lösung nur wenn ich eben ein Win Passwort festlege, und da ich das aus welchen Gründen auch immer nicht möchte fällt dieser Weg nun eben Weg. Um auf die Ursprüngliche Frage zurück zu kommen. Kann man nun von Softwareseitens das Einschalten des Monitors, durch bewegen der Maus verhindern, oder nicht ? |
Re: Maus, Abschalten, ignorieren ..
Das Gerät deaktivieren wäre eine Möglichkeit.
Wenn es um das Touchpad geht bieten eigentlich auch so ziemlich alle Laptops an dies per Tastenkombination zu deaktivieren. [OT] Insgesamt denke ich jedoch das du für dein Problem wenig Hilfe bekommst da die meisten (mich eingeschlossen) es für verschwendete Zeit halten sich damit zu beschäftigen wenn es doch viel einfacher ist die Boardmittel zu verwenden. In Sachen Sicherheit bei Angriffen von innen denke ich ist dein Tool wenig sinnvoll. Denn jeder andere Prozess ist im Normalfall in der Lage den Desktop zurück zu wechseln. Und solange du die Windowsboardmittel noch hast ist man doch eigentlich in der Lage den Nutzer abzumelden und mit dem "unsicheren" Windowspasswort wieder anzumelden. |
Re: Maus, Abschalten, ignorieren ..
Zitat:
|
Re: Maus, Abschalten, ignorieren ..
Zitat:
|
Re: Maus, Abschalten, ignorieren ..
Zitat:
|
Re: Maus, Abschalten, ignorieren ..
Zitat:
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. |
Re: Maus, Abschalten, ignorieren ..
@Popov: Meinst du
![]() |
Re: Maus, Abschalten, ignorieren ..
Zitat:
|
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.
![]() 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 =) |
Re: Maus, Abschalten, ignorieren ..
Zitat:
|
Re: Maus, Abschalten, ignorieren ..
BlockInput nützt da nichts. Wenn die Maus bewegt wird, erwacht der Bildschirm wieder aus seinem Schlaf.
|
Re: Maus, Abschalten, ignorieren ..
So was hab ich mir schon fast gedacht.
|
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.. |
Re: Maus, Abschalten, ignorieren ..
Zitat:
|
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); |
Re: Maus, Abschalten, ignorieren ..
Zitat:
Übrigens, man kann für jedes Konto unter Windows ein Passwort vergeben. Mit der Windowstaste + L bin ich sofort im Anmeldebildschirm und muß erst ein Passwort eingeben um wieder rein zu kommen. Das nur mal als Info für den Fall, daß du es nicht kennst. |
Re: Maus, Abschalten, ignorieren ..
@Popov
Wie formuliert man das ohne ausfallend zu werden ... Les die Beiträge richtig. jfheins hat in beitrag 10 bereits klar gestellt , was du anscheinend auch überlesen hast. Mein Programm reagiert sehr wohl auf die Tastatur. ES GEHT HIER NUR UM DIE MAUS !!!! [Edit] Und es geht hier absolut nicht um die möglichkeit ein Win PW ein zu richten. Ich will nur verhindern das die Maus den Monitor wieder einschaltet, ist das denn so schwer zu verstehn ? |
Re: Maus, Abschalten, ignorieren ..
Zitat:
|
Re: Maus, Abschalten, ignorieren ..
Zitat:
Zitat:
Delphi-Quellcode:
Wie soll man dieses "nicht toll" verstehen? Du sorgst selbst für das Chaos.
Das er angeht wenn ich die Tasten auf der Tastatur drücke, ist zwar auch nicht toll, aber akzeptabel.
Zitat:
Zitat:
Ich habe dir drei Hinweise gegeben und du hast auf keinen reagiert. Das mit ClipCursor ist zwar auch unprofessionell, aber es war nur eine Idee. Windows Nachricht und Mausbewegungen abfangen dagegen nicht. Damit kriegst du die Maus garantiert stillgelegt. Ist zwar etwas Arbeit, da man sich da doch etwas Wissen aneignen muß, aber da kriegst du garantiert die Mausbewegungen abgefangen. Und, reagierst du drauf? Letztendlich stellst du seit zwei Tagen die falschen Fragen. Übrigens, für den Fall, daß es dir doch gelingen sollte das Programm zu schreiben, du solltest in diesem Fall immer überprüfen ob der BS im Hintergrund läuft und ihn eventuell abschalten. Denn wenn er hinter deinem ausgeschaltetem Monitor läuft, könnte beim ersten Tastendruck der Anmeldebildschirm auftauchen. Und dann kannst du Passwörter eingeben wie viele du willst, die werden nicht zu deinem Programm durchkommen. Und noch ein unprofessioneller Tipp: du könntest auch auf die Maus reagieren und bei jeder Mausbewegung SendMessage(Application.Handle, WM_SYSCOMMAND, SC_MONITORPOWER, MONITOR_OFF); abschicken. Das wird mit der Zeit dein Monitor killen, aber dann wird er garantiert nicht mehr auf Mausbewegungen reagieren ;) Und noch mal, anscheinend gibt es nicht den einen Befehl der das für dich erledigt, also solltest du ihn selbst programmieren. Mouse- und Tastatur-Hooks ist das Zauberwort und hier etwas Literatur: ![]() |
Re: Maus, Abschalten, ignorieren ..
@Popov,
So der nächste Versuch, zur Erklärung meines Programmes : Ich nutze das Programm auf einem Laptop, an der Uni. Man ruft mich und ich mus schnell eine kleinigkeit machen. Also will ich den Screen Blockieren. Da ich kein Win PW gesetzt habe, da mein Bios PW vollkommen reicht. Bringt mir WIN + L nichts. Setzen will ich das Win PW auch nicht, da ich sonst immer 2 mal ein PW eingeben müste. Mein Programm blockiert also nu den Screen. Und weil ich es an einem Notebook betreibe will ich das der Monitor ausgeht, um Strom zu sparen. Nu steht das Notebook aber meist auf irgendwelchen Tischen wo stets noch 10 andere stehen, da wackelt es gewaltig und die Maus ruckelt dann => der Monitor geht an. Ein Timer macht ihn dann wieder aus, aber der Monitor geht dann eben ständig an und aus, und das kann nicht gut sein. Auf deine Hinweise habe ich bisher noch nicht reagiert weil, ClipCursor von den weiteren Postern gleich wieder abgetan wurde. Die anderen Ideen konnten bisher noch nicht verfolgt werden, da ich zur Zeit leider nur am WE Zeit habe, ich wollte mit diesem Thread bis zum We Ideen sammeln und diese dann nacheinander am We abarbeiten, bis eine funktioniert. Der Bildschirmschoner wird bereits abgefangen und das starten wird verhindert, ich hatte das nur nicht extra gepostet. Ich hoffe das dir nun meine Intentionen klarer werden. |
Re: Maus, Abschalten, ignorieren ..
Ich würde das Programm einfacher realisieren, ähnlicher Aufbau wie ein Screensaver und dabei
die Mausaktionen ignorieren. Wozu einen neuen Desktop erstellen (den guckt doch ja eh kener an. :mrgreen: ) ? |
Re: Maus, Abschalten, ignorieren ..
Der neue Desktop schütz mich vor STRG+ ALT + ENTF und diversen anderen möglichkeiten aus meinem Programm raus zu gehen ...
|
Re: Maus, Abschalten, ignorieren ..
Also, ich habe nun die verschiedensten Vorschläge ausprobiert.
ClipCursor setzt zwar den Cursor auf ein Rect fest, läst aber das "Ruckeln" zu und das schaltet den Monitor an. BlockInput kennt mein D5pro gar nicht, aber wenn Tom Recht hat bringt das ja eh nichts. Die DLL, Hook Varainte von Medium , Blokiert zwar 1a die Maus, nur leider, reicht auch das nicht aus, bewege ich die maus, dann geht der Monitor wieder an. Ich befürchte das es wohl keine Möglichkeit gibt das tatsächlich zu verhindern :(, oder habt ihr noch Ideen ? |
Re: Maus, Abschalten, ignorieren ..
Ich habe mal Strg+Alt+Del mit einem eigenen Treiber "ausgehebelt". Wenn du die Maus komplett deaktivieren möchtest, müsste es eigentlich reichen, den Maus-Treiber vorrübergehend mit deinem Programm außer Kraft zu setzen. Schau dir mal die Win-APIs OpenSCManager, OpenService, ControlService und CloseServiceHandle an.
|
Re: Maus, Abschalten, ignorieren ..
@macci,
Alos so die Lampe in diesen Dingen bin ich ja nicht, aber das hier compilierte wenigstens:
Delphi-Quellcode:
uses winsvc;
Procedure TForm1.Button1Click(Sender: TObject); Var h: integer; Begin h := OpenSCManager('', 'SERVICES_ACTIVE_DATABASE', GENERIC_EXECUTE); If h <> 0 Then Begin End Else Begin showmessage('nein'); End; End; Nur das bereits hier die showmessage(nein) kommt. Zudem ist ja die frage wie der Dienst heist denn ich so abschalten soll. in meiner Liste der dienste ( systemsteuerung -> verwaltung -> Dienste ) konnte ich zumindest keinen Speziellen "Maus" dienst finden ... [edit] also mit ein bischen rumprobieren gins, nur der name des dienstes fehlt immer noch ..
Delphi-Quellcode:
Procedure TForm1.Button1Click(Sender: TObject);
Var h: integer; Begin h := OpenSCManager(Nil, Nil, GENERIC_EXECUTE); If h <> 0 Then Begin OpenService(h, ??? , SERVICE_STOP); End Else Begin showmessage('nein'); End; End; |
Re: Maus, Abschalten, ignorieren ..
Er hat TREIBER gesagt, nicht Dienst!
|
Re: Maus, Abschalten, ignorieren ..
Wie eingangs schon geschrieben habe ich keine Ahnung von WinAPI.
Ich habe halt versucht dieses "OpenSCManager" ding zum laufen zubekommen, und das hat mit diensten zu tun. Maus treiber sind bei mir 2 installiert, der Maustreiber fürs Touchpad und er für die USB maus. die hab ich im Gerätemanager gefunden, die frage bleibt aber die selbe, welche namen mus ihc da nehmen. |
Re: Maus, Abschalten, ignorieren ..
Hallo,
es gibt keinen speziellen "Maus-Dienst", aber es gibt natürlich einen Treiber (weil es in Windows nicht vorgesehen ist, die Hardware direkt - ohne Treiber - anzusteuern). So kannst du übrigens den Control Manager öffnen:
Delphi-Quellcode:
Wenn du bei den entsprechenden anderen von mir geposteten WIN APIs die Delphi-Hilfe durchschaust, wirst du schnell herausfinden, wie sie funktionieren. Interessant dürften dabei vor allem die folgenden Control Codes (für die Fkt. ControlService) sein:
uses winsvc
[...] var hSCManager : SC_HANDLE; [...] hSCManager := OpenSCManager(nil, nil, SC_MANAGER_ALL_ACCESS); Zitat:
![]() |
Re: Maus, Abschalten, ignorieren ..
Könnte man nicht einfach einen schwarzen Bildschirm "malen" sodass es so aussieht als ob der Bildschirm aus ist. Dann sieht keiner den Inhalt!
|
Re: Maus, Abschalten, ignorieren ..
@ Larsi,
Das malen des schawrzen bildschirms ist kein problem. Es geht aber darum den Monitor zwecks STROMSPAREN ab zu schalten. |
Re: Maus, Abschalten, ignorieren ..
Zitat:
|
Re: Maus, Abschalten, ignorieren ..
Wieso ist die Attrape dann enttarnt? Wenn man die Maus bewegt soll der gemalte Bildschirm ja nichts an sich ändern. Mann kann ja auch das Passwort zum Entsperren eingeben wenn man einen schwarzen Bildschirm sieht!
|
Re: Maus, Abschalten, ignorieren ..
ich kann es nur immer wieder betonen, es geht hier nicht um vorgaukeleien, sondern um das Stromsparen, und das kann ich nur wenn der Monitor aus ist.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:49 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