Delphi-PRAXiS
Seite 3 von 4     123 4      

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 19. Sep 2008 16:06

Re: Maus, Abschalten, ignorieren ..
 
Zitat:

Zitat von Corpsman
@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.

Corpsman, ich hab schon mal kurz erwähnt, aber der Sinn deines Programms ist alles andere als nachzuvollziehbar. Du willst ein Programm das, wenn du weg bist, keinem Zugang bietet. Das ist noch logisch. Daß du die Maus abschalten willst ist ja auch noch nicht verwunderlich, aber du willst auch die Tastatur abschalten. Damit hätten wir einen Computer der weder auf die Maus, noch die Tastatur reagiert und bei dem der Monitor aus ist. Also bei so einem Computer drücke ich ohne zu überlegen die Reset Taste, weil er für mich abgestürzt aussieht. Also überdenke mal dein Konzept.

Ü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.

Corpsman 19. Sep 2008 16:30

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 ?

toms 19. Sep 2008 17:01

Re: Maus, Abschalten, ignorieren ..
 
Zitat:

Zitat von Corpsman
@ Ich will nur verhindern das die Maus den Monitor wieder einschaltet, ist das denn so schwer zu verstehn ?

[ot] Kann es mir nicht verkneifen: Gibt's keine Maus mit einem On- / Off-Knopf ? [/ot]

Popov 20. Sep 2008 06:54

Re: Maus, Abschalten, ignorieren ..
 
Zitat:

Zitat von Corpsman
@Popov

Wie formuliert man das ohne ausfallend zu werden ...

Du brauchst auch nicht ausfallend zu werden.

Zitat:

Les die Beiträge richtig.
Hab ich. Da steht:

Delphi-Quellcode:
Das er angeht wenn ich die Tasten auf der Tastatur drücke, ist zwar auch nicht toll, aber akzeptabel.
Wie soll man dieses "nicht toll" verstehen? Du sorgst selbst für das Chaos.

Zitat:

jfheins hat in beitrag 10 bereits klar gestellt , was du anscheinend auch überlesen hast. Mein Programm reagiert sehr wohl auf die Tastatur.
Zitat:

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 ?
Paß mal auf, ich gehöre nicht zu den Leuten die den Sinn eines Programms hinterfragen. Jedem Programmierer sein Programm. Ich möchte nicht, daß man mir in meine Programme reinredet und rede deshalb auch anderen nicht in ihre Programme rein. Allerdings möchte man gelegentlich das Programm des anderen auch verstehen um besser zu helfen, und das tue ich bei dir eigentlich nicht so richtig. Wenn ich meine eigene Zugriffssperre programmieren will, dann gibt es einfachere Möglichkeiten, und Monitor ausschalten hört sich irgendwie ... sagen wir mal unprofessionell an. Es gibt bessere Möglichkeiten den Zugang zu sperren. Aber wie gesagt, jedem sein Programm.

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: http://www.delphi-treff.de/tutorials...astatur-hooks/

Corpsman 20. Sep 2008 08:37

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.

turboPASCAL 20. Sep 2008 09:54

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: ) ?

Corpsman 20. Sep 2008 11:28

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 ...

Corpsman 20. Sep 2008 12:13

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 ?

Macci 23. Sep 2008 19:18

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.

Corpsman 24. Sep 2008 11:59

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;


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:12 Uhr.
Seite 3 von 4     123 4      

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