Deutsches AutoHotkey Homepage AutoHotkey Community
Wir helfen uns gegenseitig aus der Patsche
 
 FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   RegistrierenRegistrieren 
 ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin 

tasten sperren und umbelegen
Gehe zu Seite Zurück  1, 2, 3  Weiter
 
Neues Thema eröffnen   Neue Antwort erstellen    AutoHotkey Community Foren-Übersicht -> Ich brauche Hilfe!
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
Outlaw



Anmeldedatum: 14.10.2006
Beiträge: 462

BeitragVerfasst am: Di Mai 06, 2008 10:37 pm    Titel: Antworten mit Zitat

hmmm so habe das schoen eingebracht, du hast ja schon ne kleine ausnahme reingebaut ö und z, aber wie kann ich das fuer die "sondertasten" machen die ich jezz umbelegt habe? sprich z.b. SC119
_________________
MfG,
Outlaw
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Thalon



Anmeldedatum: 25.10.2005
Beiträge: 1867
Wohnort: Österreich

BeitragVerfasst am: Di Mai 06, 2008 11:31 pm    Titel: Antworten mit Zitat

Sollte funktionieren wie angedeutet mit {vkA4}.
Zitat:
An explicit virtual key code such as {vkFF} may also be specified. This is useful in the rare case where a key has no name and produces no visible character when pressed. Its virtual key code can be determined by following the steps at the bottom fo the key list page.

Tahlon
_________________
Mein Motto: Hilfe zur Selbsthilfe!
Teildeutsche Hilfe (CHM)!! und Deutsche Online-Hilfe
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Outlaw



Anmeldedatum: 14.10.2006
Beiträge: 462

BeitragVerfasst am: Mi Mai 07, 2008 6:15 am    Titel: Antworten mit Zitat

also das mit den sondertasten habe ich hinbekommen, aber wie kann ich jezz mehrer keys nehmen? ich habe z.b. den hier noch {vkb0sc119}

und das mit dem endkey habe ich auch verstanden, dass ist dann die taste die angezeigt wird bsp an vkffsc112

FF 112 d 0.13 E

Code:
#noenv


beg:
Loop
{
 Input, OutputVar, C*, {vkffsc112}, pwd
 

  if InStr(Errorlevel, "Endkey")
  {
    StringTrimLeft, EndKey, Errorlevel, 7


    if Endkey = e
{
msgbox, Möööp, Blubö, 1
gosub, beg
return

}





  }
  else if InStr(Errorlevel, "Match")    ;PWD erkannt
   gosub, done1
   return
}




done1:
msgbox, entsperrt
return

_________________
MfG,
Outlaw
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Thalon



Anmeldedatum: 25.10.2005
Beiträge: 1867
Wohnort: Österreich

BeitragVerfasst am: Mi Mai 07, 2008 8:06 am    Titel: Antworten mit Zitat

Mehrere Keys werden einfach aneinander geschrieben.
Da ein Endkey immer nur eine Taste ist erzeugen sie immer unterschiedliche Events.

Etwas befremdlich wirkt, dass du auf Endkey = e abfragst, allerdings "e" niemals diese Routine ausführt!
Nur dein {vkffsc112} ist im Moment als Endkey definiert.
Das GoSub auf "beg:" kannst dir auch sparen. Der Befehl "Continue" verursacht auch, dass die Schleife neu durchlaufen wird (bricht den aktuellen Durchgang ab und beginnt mit einem neuen).

Thalon
_________________
Mein Motto: Hilfe zur Selbsthilfe!
Teildeutsche Hilfe (CHM)!! und Deutsche Online-Hilfe
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Outlaw



Anmeldedatum: 14.10.2006
Beiträge: 462

BeitragVerfasst am: Mi Mai 07, 2008 10:00 am    Titel: Antworten mit Zitat

Ja das klappt, aber er will irgendwie die mediatasten an der tastatur nicht nehmen, obwohl die endkey richtig ist, ich habe es mal mit dem buchstaben H versucht aber als vk, dies ging
hier nochmal das script

Code:

#noenv


; {vkffsc112} MediaDirect taste  (FF  112       d   0.13   E)
; {vkb2sc124} media STOP  (B2  124       d   0.36   J)
; {vk48sc023} buchstabe "h"  (48  023       d   7.16   H )


Loop
{
 Input, OutputVar, C*, {vkffsc112}{vkb2sc124}{vk48sc023} , pwd
  if InStr(Errorlevel, "Endkey")
  {
    StringTrimLeft, EndKey, Errorlevel, 7


    if Endkey = e
{
msgbox, Möööp, Blubö, EEEEEEEEEEEEEEEEEEEEEEE
Continue


}

    if Endkey = h
{
msgbox, Möööp, Blubö, hhhhhhhhhhhhhhhhhhhhhhh
Continue


}



    if Endkey = j
{
msgbox, Möööp, Blubö, jjjjjjjjjjjjj
Continue


}





Continue


  }
  else if InStr(Errorlevel, "Match")    ;PWD erkannt
   gosub, done1
   return
}




done1:
msgbox, entsperrt
return

_________________
MfG,
Outlaw
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Thalon



Anmeldedatum: 25.10.2005
Beiträge: 1867
Wohnort: Österreich

BeitragVerfasst am: Mi Mai 07, 2008 10:38 am    Titel: Antworten mit Zitat

Was bekommst du bei den Mediatasten für einen Vergleichsstring? (habe eine zusätzliche Messagebox eingebaut und als vierte Taste Printscreen getestet)

Code:
#noenv

; {vkffsc112} MediaDirect taste  (FF  112       d   0.13   E)
; {vkb2sc124} media STOP  (B2  124       d   0.36   J)
; {vk48sc023} buchstabe "h"  (48  023       d   7.16   H )

Loop
{
 Input, OutputVar, C*, {vkffsc112}{vkb2sc124}{vk48sc023}{vk2Csc137} , pwd
  if InStr(Errorlevel, "Endkey")
  {
    StringTrimLeft, EndKey, Errorlevel, 7
    msgbox "%Endkey%"
    if Endkey = e
    {
      msgbox, Möööp, Blubö, EEEEEEEEEEEEEEEEEEEEEEE
      Continue
    }

    else if Endkey = h
    {
      msgbox, Möööp, Blubö, hhhhhhhhhhhhhhhhhhhhhhh
      Continue
    }

    else if Endkey = j
    {
      msgbox, Möööp, Blubö, jjjjjjjjjjjjj
      Continue
    }
  }
  else if InStr(Errorlevel, "Match")    ;PWD erkannt
  {
    gosub, done1
    break
  }
}
return


done1:
msgbox, entsperrt
return

_________________
Mein Motto: Hilfe zur Selbsthilfe!
Teildeutsche Hilfe (CHM)!! und Deutsche Online-Hilfe
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Outlaw



Anmeldedatum: 14.10.2006
Beiträge: 462

BeitragVerfasst am: Mi Mai 07, 2008 11:33 am    Titel: Antworten mit Zitat

ahh jezz weiß ich warum, bei dieser taste kommt nicht wie oben beschrieben das "J" sondern "MEDIA_STOP"
_________________
MfG,
Outlaw
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Outlaw



Anmeldedatum: 14.10.2006
Beiträge: 462

BeitragVerfasst am: Mi Mai 07, 2008 11:49 am    Titel: Antworten mit Zitat

so das habe ich jezz gelöst, jezz kommt das nächste problem, wenn ich jezz im endkey alle tasten freigebe die ich nur noch brauche, habe ich folgendes problem

das ich vorher tasten umbelegt habe, aber als hotkey sprich immer mehr als 2 tasten, wie kann ich das jezz mit dem endkey lösen, da ja im endkey immer endkey = e steht


hier mal das komplette script

im endkey stehen noch nicht alle buchstaben und sondertasten!

Code:
;#notrayicon
















;;; HOTKEY MANAGMENT
;;; HOTKEY MANAGMENT
;;; HOTKEY MANAGMENT




sc112::
run, C:\Programme\Winamp\winamp.exe
return


SC110::
;; CH +
WinGetTitle, Title, A
if Title = ArcSoft TotalMedia

{
send {vk6dsc001}
return
}
else
send {vkb1sc110}
return




SC119::
;; CH -
WinGetTitle, Title, A
if Title = ArcSoft TotalMedia
{
send {vk6bsc001}
return
}
else

send {vkb0sc119}
return




;;; ab hier handytasten

#a::
;; CH +
WinGetTitle, Title, A
if Title = ArcSoft TotalMedia
send {vk6bsc001}
return



#b::
;; CH -
WinGetTitle, Title, A
if Title = ArcSoft TotalMedia
{
send {vk6dsc001}
return
}


#c::
;; vol +
send {vkafsc130}
return


#d::
;; vol -
send {vkaesc12e}
return

#e::
;; mute
send {vkadsc120}
return





#esc::
msgbox, 1, Tastatur sperren, Wollen sie die Tastatur sperren?
IfMsgBox, ok
gosub, startkey1
return



startkey1:

Loop
{
 Input, OutputVar, C*, {vkffsc112}{vkb2sc124}{vk48sc023}{win}abcde , pwd
  if InStr(Errorlevel, "Endkey")
  {
    StringTrimLeft, EndKey, Errorlevel, 7
    msgbox "%Endkey%"
    if Endkey = e
    {
      msgbox, Möööp, Blubö, EEEEEEEEEEEEEEEEEEEEEEE
      Continue
    }

    else if Endkey = h
    {
      msgbox, Möööp, Blubö, hhhhhhhhhhhhhhhhhhhhhhh
      Continue
    }

    else if Endkey = j
    {
      msgbox, Möööp, Blubö, jjjjjjjjjjjjj
      Continue
    }
  }
  else if InStr(Errorlevel, "Match")    ;PWD erkannt
  {
    gosub, done1
    break
  }
}
return


done1:
msgbox, entsperrt
return

_________________
MfG,
Outlaw
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Thalon



Anmeldedatum: 25.10.2005
Beiträge: 1867
Wohnort: Österreich

BeitragVerfasst am: Mi Mai 07, 2008 12:20 pm    Titel: Antworten mit Zitat

Also bei meinem Testprogramm funktionieren die Hotkeys weiter, wenn ich sie zusammen mit Input verwende, von daher besteht für mich kein Bedarf diese mittels Input nachzusimulieren.

Aber hier mal ein kleines Sample wo ichs dennoch gemacht habe Very Happy
#a gibt den aktiven Fenstertitel aus.
Wenn die Tastensperre mit #c aktiviert wird funktioniert der Hotkey eigentlich nicht mehr, allerdings wurde er über den Input-Befehl nachgebildet. Wenn du "Gosub #a" auskommentierst wird der Hotkey nicht mehr aufgerufen solange die Tastensperre aktiv ist.
#b funktioniert immer, deaktiviert aber nur die Hotkey-Sperre (andere Tasten bleiben gesperrt).

Code:
#noenv
return

#c::    ;Aktiviert die Sperre
Suspend, On   ;Deaktiviert Hotkeys allgemein

Loop
{
 Input, OutputVar, C*, ha , pwd
  if InStr(Errorlevel, "Endkey")
  {
    StringTrimLeft, EndKey, Errorlevel, 7
    if Endkey = h
    {
      msgbox, Möööp, Blubö, hhhhhhhhhhhhhhhhhhhhhhh
      Continue
    }
    else if Endkey = a
    {
      if (GetKeyState("LWin") || GetKeyState("RWin"))
      {
        msgbox #a wurde gedrückt
        GoSub #a    ;Ruft die Hotkey-Routine von "#a" auf.
      }
    }
  }
  else if InStr(Errorlevel, "Match")    ;PWD erkannt
  {
    gosub, done1
    break
  }
}
return


done1:
msgbox, entsperrt
return


#a::    ;Wird direkt angesprochen, wenn Hotkeys aktiviert sind und indirekt (durch den Input-Befehl), wenn sie deaktiviert sind!
;; CH +
WinGetTitle, Title, A
msgbox %Title%
return


#b::    ;Funktioniert immer, deaktiviert die Hotkey-Sperre
Suspend, Permit
msgbox Hotkeys werden wieder aktiviert!
Suspend, Off
return


Ich hoffe dir ist damit geholfen.
Solche Sachen muss ich mir aber auch immer selbst ausdenken, ein wenig anstrengen kannst dich schon auch Wink

Thalon

Edit:
Du liebst Leerzeilen im Skript oder?
_________________
Mein Motto: Hilfe zur Selbsthilfe!
Teildeutsche Hilfe (CHM)!! und Deutsche Online-Hilfe
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Outlaw



Anmeldedatum: 14.10.2006
Beiträge: 462

BeitragVerfasst am: Mi Mai 07, 2008 12:31 pm    Titel: Antworten mit Zitat

ahhh ich verstehe, ist mir auch schon aufgefallen das die windows taste noch geht, habe ich ganz vergessen das man die da wunderbar einbringen kann Wink
_________________
MfG,
Outlaw
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Outlaw



Anmeldedatum: 14.10.2006
Beiträge: 462

BeitragVerfasst am: Do Mai 08, 2008 2:33 pm    Titel: Antworten mit Zitat

ja schon, ich will ein wenig uebersicht haben, komme sonst ein wenig durcheinander mit den "{" und "}"


bei dem matchlist, was ja das pw ist, kann ich ja nicht die buchstaben nutzen die ich im endkey habe, kann man das irgendwie aendern?


so habe folgendes problem, das mit dem sperren läuft wunderbar, doch wenn ich im sperr modus bin, gehen die mediatasten im aktiven fenster was dann das tv programm ist nicht gehen, aber wenn ich dann auf den desktop klicke gehen diese tasten, ich habe schon nachgeguckt ob es an den wingettitel liegt, aber dies ist es nicht
_________________
MfG,
Outlaw
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Thalon



Anmeldedatum: 25.10.2005
Beiträge: 1867
Wohnort: Österreich

BeitragVerfasst am: Do Mai 08, 2008 2:45 pm    Titel: Antworten mit Zitat

Zitat:
bei dem matchlist, was ja das pw ist, kann ich ja nicht die buchstaben nutzen die ich im endkey habe, kann man das irgendwie aendern?
Müsste man schauen, ob sich da ein Workaround basteln lässt (gibts sicherlich), allerdings fällt mir auf die schnelle kein ein, außer dass man in der Matchlist diese Buchstaben mitprotokolliert und sich quasi selbst nen FIFO-Puffer bastelt aus dem man die Auswertung macht und es nicht mehr über die Matchlist abhandelt.
Läuft zwar etwas am System des Ganzen vorbei, aber wäre noch eine Möglichkeit...

Zitat:
doch wenn ich im sperr modus bin, gehen die mediatasten im aktiven fenster was dann das tv programm ist nicht gehen, aber wenn ich dann auf den desktop klicke gehen diese tasten, ich habe schon nachgeguckt ob es an den wingettitel liegt, aber dies ist es nicht
Schon einmal mit einfachen Testskripts probiert wie lange sie noch funktionieren? bzw was erfüllt sein muss damit es nicht mehr geht in diesem Fenster?
Du kannst auch in der Historie (Tray-menü "Open") schauen ob der Code einfach gar nicht erst aufgerufen wird (dann müsste man schauen ob die Keyhistorie die Tasten noch enthält), ob er falsch durchlaufen wird (weswegen auch immer) oder ob etwas anderes nicht zutrifft.
Alternativ funktioniert debuggen per Messagebox im Code recht gut bei diesen Sachen (so arbeite ich meistens bei Quick-and-Dirty-Programmen).

Ferndiagnose ist hierbei schwierig, wenn es nicht ein reproduzierbares Ereignis ist..

Thalon
_________________
Mein Motto: Hilfe zur Selbsthilfe!
Teildeutsche Hilfe (CHM)!! und Deutsche Online-Hilfe
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Outlaw



Anmeldedatum: 14.10.2006
Beiträge: 462

BeitragVerfasst am: Do Mai 08, 2008 5:36 pm    Titel: Antworten mit Zitat

also, wenn ich auf dem desktop bin geht das script, doch wenn ich das tv fenster hervorhole egal ob maximiert oder std. gehen die tasten einfach nicht, ich teste gleich mal ob er die tasten im fenster vllt. anders erkennt als auf dem desktop

edit:

so also das was ich vermutet habe traff zu, im tv programm fenster erkennt der die tasten anders als wie aufm desktop, liegt bestimmt daran das fuer das tv programm fenster normale ne fernbedienung da ist, die aber der totale mist ist ^^
_________________
MfG,
Outlaw
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Outlaw



Anmeldedatum: 14.10.2006
Beiträge: 462

BeitragVerfasst am: Fr Mai 09, 2008 11:43 am    Titel: Antworten mit Zitat

sooo ich bin fast fertig, dass mit der maus habe ich auch gut gelöst, nur noch ein problem!

und zwar, habe ich am laptop eine an-/ausknopf(powertaste), den habe ich auch schon versucht über ahk zu suchen lassen, aber wird nicht gefunden :\
_________________
MfG,
Outlaw
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Thalon



Anmeldedatum: 25.10.2005
Beiträge: 1867
Wohnort: Österreich

BeitragVerfasst am: Fr Mai 09, 2008 12:49 pm    Titel: Antworten mit Zitat

Ich hätte dir jetzt gerne eine elegante Methode angeboten, allerdings habe ich offenbar irgendwo einen Hund gedreht.

Und zwar würde ich das System vom Herunterfahren abhalten mittels der ShutdownBlockReason-API], allerdings scheint das nur unter Vista zu laufen.
Siehe:
http://msdn.microsoft.com/en-us/library/aa376883(VS.85).aspx


Also kann ich dir nur die OnMessage-Variante anbieten, die haichen im englischen Forum verwendet hat:
http://www.autohotkey.com/forum/post-163896.html&highlight=shutdown+windows#163896

Dabei wird der Ausschaltknopf nicht vollständig deaktivert, sondern der Shutdown bricht ab sobald das Skript geschlossen werden soll (andere Programme schließen sich eventuell vorher).

Ist jetzt nur ein kleiner Behelf, aber vll erfüllts ja auch ihren Zweck...

Thalon
_________________
Mein Motto: Hilfe zur Selbsthilfe!
Teildeutsche Hilfe (CHM)!! und Deutsche Online-Hilfe
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    AutoHotkey Community Foren-Übersicht -> Ich brauche Hilfe! Alle Zeiten sind GMT
Gehe zu Seite Zurück  1, 2, 3  Weiter
Seite 2 von 3

 
Gehe zu:  
Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.


Powered by phpBB © 2001, 2005 phpBB Group
Deutsche Übersetzung von phpBB.de