Jump to content

Sky Slate Blueberry Blackcurrant Watermelon Strawberry Orange Banana Apple Emerald Chocolate
Photo

PowerControl - ac'tivAid - Maus deaktivieren



  • Please log in to reply
16 replies to this topic
bull_2013
  • Members
  • 26 posts
  • Last active: Mar 16 2018 05:02 PM
  • Joined: 12 Feb 2013
Guten Abend,
 
ich benutze schon seit Jahren ac'tivAid. Schalte meine Monitore über PowerControl aus.
Leider gehen die Monitore ab und zu von alleine wieder an. Ich vermute, dass eine Mausbewegung registriert wird.
 
Habe schon "BlockInput" ausprobiert, aber vermutlich nicht richtig.
An welcher stelle muss die Mausbewegung blockiert weder?
Spoiler


nnnik
  • Members
  • 1625 posts
  • Last active: Jan 24 2019 02:19 PM
  • Joined: 28 Jul 2012
Du hast sehr viele Labels etc. und dein Code ist sehr leserlich erstmal ein großes Danke sehr dafür.
Wahrscheinlich ,musst du ein BlockInput hiervor setzen:
   If (pc_GetKey <> Chr(27) OR ErrorLevel = "Timeout")
      PostMessage, 0x0112,  0xF170, 2,, ahk_class Progman 

Visit the new forum ahkscript.org.

http://ahkscript.org


bull_2013
  • Members
  • 26 posts
  • Last active: Mar 16 2018 05:02 PM
  • Joined: 12 Feb 2013

Ist leider nicht mein Script.

 

Funktioniert soweit ganz gut, wenn ich ein "blockinput, on" vor Zeile 272 setze.

Mit Esc lässt sich der Bildschirm auch wieder einschalten, aber wohin muss ich das "blockinput, off" setzen?



nnnik
  • Members
  • 1625 posts
  • Last active: Jan 24 2019 02:19 PM
  • Joined: 28 Jul 2012
Ich bin mir ziemlich sicher das das noch nicht der ganze Code ist.
Der Teil steht dort noch nicht drinne.

Visit the new forum ahkscript.org.

http://ahkscript.org


Seidenweber
  • Moderators
  • 638 posts
  • Last active: Sep 06 2015 01:51 PM
  • Joined: 10 May 2011

Ich bin mir ziemlich sicher das das noch nicht der ganze Code ist.
Der Teil steht dort noch nicht drinne.

Das Ding ist uralt, verbugt ohne Ende und hier zu bekommen: http://www.heise.de/...d/activaid.html

 

BlockInput sperrt nur den Benutzer aus, damit bestimmte Routinen ablaufen können, ohne dass der User dazischen herumtippt und klickt.

 

Dadurch wird aber nicht verhindert, dass der Monitor wieder aufgeweckt wird. Ich hab's aber auch nur so probiert - was ja "eigentlich" funktionieren sollte:

F12::
	BlockInput,% (T:=!T) ? "MouseMove" : "MouseMoveOff"      ; Maus blocken/entblocken
	PostMessage,0x0112,0xF170,% (T?2:-1),,ahk_class Progman  ; Screen aus/an
	ToolTip % (T?"Maus geblockt":Off)                        ; Debug-Anzeige
Return

Der Code tut auch das, wonach er aussieht. Nur, dass der Screen bei Bewegung der Maus wieder wach wird, obwohl der Maus-Pointer nicht bewegt werden kann.


All questions & answers are related to AHK 1.1.19.03 x64 Unicode

 


fredchf
  • Members
  • 111 posts
  • Last active: Oct 23 2019 07:56 PM
  • Joined: 02 Nov 2012

Das Ding ist uralt, verbugt ohne Ende und hier zu bekommen: http://www.heise.de/...d/activaid.html

 

Hallo Seidenweber!

Das kann ich nicht bestätigen! Bei mir läuft diese Scriptsammlung seit Erscheinen und (zumindest alle Erweiterungen die ich nutze) problemlos.(v1.0.48.05) Ich hatte mir bei Erscheinen von AHK_L gedacht die Sammlung einfach anzupassen, innerhalb kürzester Zeit aber genervt aufgegeben.



nnnik
  • Members
  • 1625 posts
  • Last active: Jan 24 2019 02:19 PM
  • Joined: 28 Jul 2012

Es gibt auch aggressiver BlockInput methoden.

Dann müsste man den Bildschirm aufwach Tastenkürzel aber aufstrg+alt+entf setzen.


Visit the new forum ahkscript.org.

http://ahkscript.org


Seidenweber
  • Moderators
  • 638 posts
  • Last active: Sep 06 2015 01:51 PM
  • Joined: 10 May 2011

Das kann ich nicht bestätigen! Bei mir läuft diese Scriptsammlung seit Erscheinen und (zumindest alle Erweiterungen die ich nutze) problemlos.(v1.0.48.05)

Tja, ich habe da andere Erinnerungen aus der Zeit von AHK 1.0. Bei mir war das damals eine Ansammlung von entweder überhaupt nicht funktionierenden Teilen oder eben aus Fehlermeldungen.
Ich hatte damals aber auch NULL Ahnung von AHK (...also noch weniger als heute grin.png) und fand das auch nicht wichtig. Ergo -> Tonne, wie alles bei mir, was nicht funzt.
 

Es gibt auch aggressiver BlockInput methoden.
Dann müsste man den Bildschirm aufwach Tastenkürzel aber aufstrg+alt+entf setzen.

Ja. Schön, dass das mal erwähnt wurde. Dann hol doch bitte so eine Keule mal aus dem Rucksack, wenn du weißt, wie es geht...
 
Eine Alternative wäre ja auch noch, wenn man irgendwie erfahren könnte, in welchem Zustand der Monitor ist (an /aus /Energiespar-Modus).
 
AHK's BlockInput sehe ich jedenfalls für den Zweck nicht als geeignet.

All questions & answers are related to AHK 1.1.19.03 x64 Unicode

 


nnnik
  • Members
  • 1625 posts
  • Last active: Jan 24 2019 02:19 PM
  • Joined: 28 Jul 2012

BlockInput,MouseMove könnte man benutzen.


Visit the new forum ahkscript.org.

http://ahkscript.org


Seidenweber
  • Moderators
  • 638 posts
  • Last active: Sep 06 2015 01:51 PM
  • Joined: 10 May 2011

BlockInput,MouseMove könnte man benutzen.

siehe oben. Genau davon sage ich ja, dass es nicht funktioniert...

http://www.autohotke...ieren/?p=613575


All questions & answers are related to AHK 1.1.19.03 x64 Unicode

 


bull_2013
  • Members
  • 26 posts
  • Last active: Mar 16 2018 05:02 PM
  • Joined: 12 Feb 2013

Schließe mich fredchf an. Nutze ac'tivaid ca. 5 Jahre und funktionierte bisher nahezu fehlerfrei. Unter XP und Win7.

Das Problem, das die Monitore zwischendurch einfach wieder an gehen, stört mich schon seit dem ich diese Funktion nutze.

 

Vielleicht finde ich irgendwann die passende Lösung.

 

Vielen Dank für eure Mühe.



Ragnar
  • Members
  • 68 posts
  • Last active: Aug 26 2015 12:18 PM
  • Joined: 02 Oct 2006
✓  Best Answer

Wenn man die API-Funktion "BlockInput" von Windows aufruft, scheint es zu funktionieren (obwohl das AutoHotkey intern auch nicht anders macht). Den einzigen Unterschied bemerke ich bei A_TimeIdle, während ich die Maus bewege: bei aktivem AutoHotkey-BlockInput wird die Variable auf 0 gesetzt, bei aktivem DllCall-BlockInput nicht (so wie es sein sollte).

 

Ich bin mal so frei und habe das Beispiel von Seidenweber etwas geändert:

F12::
	DllCall("BlockInput", UInt, (T:=!T) ? 1 : 0)             ; Maus blocken/entblocken
	PostMessage,0x0112,0xF170,% (T?2:-1),,ahk_class Progman  ; Screen aus/an
	ToolTip % (T?"Maus geblockt":Off)                        ; Debug-Anzeige
Return


Seidenweber
  • Moderators
  • 638 posts
  • Last active: Sep 06 2015 01:51 PM
  • Joined: 10 May 2011
Den einzigen Unterschied bemerke ich bei A_TimeIdle

Bei mir wird A_TimeIdle bei aktivem DllCall-BlockInput zurückgesetzt, wenn ich die Maus bewege. A_TimeIdlePhysical läuft durch.

Allerdings werden Maus und Tastatur nicht geblockt (??).

Das Verhalten ist bei BlockInput, On dasselbe.

 

Wenn ich BlockInput, MouseMove benutze, werden BEIDE Timer auf 0 gesetzt, aber die Maus lässt sich nicht bewegen.

 

Sagen wir mal vorsichtig "Ich bin verwirrt"...

F12::SetTimer, Block, -250

Block:
;   BlockInput,% (T:=!T) ? "MouseMove" : "MouseMoveOff"
;   BlockInput,% (T:=!T) ? "On" : "Off"
    DllCall("BlockInput", UInt, (T:=!T) ? 1 : 0)
;   PostMessage,0x0112,0xF170,% (T?2:-1),,ahk_class Progman  ; Screen aus/an
    DT := (T?"Maus geblockt":"")                             ; Debug-Text
    SetTimer, Debug,% (T?50:"Off")                           ; Debug-Anzeige an/aus
    ToolTip
Return

Debug:
    ToolTip,% DT "`nL: " A_TimeIdle "`nP: " A_TimeIdlePhysical
Return

Escape::ExitApp

All questions & answers are related to AHK 1.1.19.03 x64 Unicode

 


Ragnar
  • Members
  • 68 posts
  • Last active: Aug 26 2015 12:18 PM
  • Joined: 02 Oct 2006

Fehler meinerseits. Bei "aktivem AutoHotkey-BlockInput" meinte ich "BlockInput, MouseMove" und nicht "BlockInput, On". Das heißt, dass "BlockInput, On" und "DllCall("BlockInput", UInt, 1)" identisch sind.

 

Die DllCall-Version hat aber den Vorteil, dass sie A_LastError setzt, was dir in Verbindung mit dem Script/der Aussage von Lexikos weiterhelfen kann.



Ragnar
  • Members
  • 68 posts
  • Last active: Aug 26 2015 12:18 PM
  • Joined: 02 Oct 2006

Auch BlockInput, On blockt im Admin-Mode nur die Tastatur und den Maus-Pointer, aber der Screen wacht auch hier auf, wenn man beliebige Tasten drückt oder die Maus bewegt.

 

Bist du dir sicher? Bei mir verhalten sich "BlockInput, On" und "DllCall("BlockInput", UInt, 1)" absolut gleich. Bei beiden wacht mein Bildschirm nur auf, wenn eine Tastatureingabe erfolgt. Die Maus wird erfolgreich unterdrückt.