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 

GenerateVirtualKeyCode pure AHK Lösung

 
Neues Thema eröffnen   Neue Antwort erstellen    AutoHotkey Community Foren-Übersicht -> Skripte & Funktionen
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
IsNull (n-l-i)
Gast





BeitragVerfasst am: So Apr 13, 2008 2:47 pm    Titel: GenerateVirtualKeyCode pure AHK Lösung Antworten mit Zitat

Eine (für mich) nützliche Funktion. Oft wird hier von ANfängern gefragt, wie man denn spezielle Tasten ihrer Tastaturen ansprechen kann; hier eine pure AHK Lösung um die Virtuellen Keycodes anzuzeigen. Es wird auch gleich ein lauffähiger Send-aufruf generiert.

Ich werde diesen Code evtl. noch erweitern dass auch Maus Knöpfe und andere Geräte erfasst werden können....

Original Thread: http://forum.securityvision.ch/viewtopic.php?f=2&t=81&p=388#p388
Zitat:

Es gibt verschiedene Wege, an den Viruellen Keycode zu kommen. Welcher gerade bei speziellen "Knöpfen"/Tasten benötigt wird. Dieses Skript hier stellt eine pure AHK Lösung dar, welches gleich lauffähige "send" Aufrufe generiert um diese spezielleren Key simpel aufzurufen.

Dies hier stellt lediglich ein proof of concept dar, da es lediglich ein zwischenergebniss meiner Dll/Hook/RCB Lernvorgänge bz. Tests ist. Funktioniert, könnte aber noch um einiges verbessert werden...

Code:

/******************************************************************************************************************

Name        ... GenerateVirtualKeyCode
ver         ... Beta

coded by    ... IsNull (rcb-hook by sean)
__________________________________________________________________________________________________________________
Grundkonzept des rcb-Hooks basiert auf Seans post hier:
http://www.autohotkey.com/forum/post-127490.html#127490
*******************************************************************************************************************
*/

#NoEnv 
#Persistent
OnExit, cleanup
SendMode Input 
SetWorkingDir %A_ScriptDir% 
;_________________________________________________________________________________________________________________

GlobalLogBuffer := ""

;Erstellt einen Hook, der auf eine Callback Funktion in diesem Skript zeigt
hHookKeybd := SetWindowsHookEx(WH_KEYBOARD_LL   := 13, RegisterCallback("KeyboardHook", "Fast"))


;*********************      MINIMALES GUI     *******************************************************************

GUI, Add, Edit, +ReadOnly w100 h20 hwndKeyLogWindow_ID vKeyLogWindow
GUI, Add, Text,xp yp+30,Working AHK Code:
GUI, Add, Edit, +ReadOnly xp yp+20 w400 h300 hwndCODELogWindow_ID vCODELogWindow
gui, show
ControlSetText, , press a key, ahk_id %KeyLogWindow_ID%
Return
/*
************************************END OF AUTOEXECUTION**********************************************************
*/



CleanUP:
   UnhookWindowsHookEx(hHookKeybd)
 exitapp


/*****************************************************************************************************************
CallBack Funktion; (für Keyboard hook)
******************************************************************************************************************
*/
KeyboardHook(nCode, wParam, lParam)
{
   global
   Critical
   If (!nCode){
      vkCode := NumGet(lParam+0, 0)
      scCode := NumGet(lParam+0, 4)
      SetFormat, integer, hex ;set Format to hex
      vkCode += 0
      scCode += 0
      ControlSetText, , vk%vkCode%sc%scCode%`n, ahk_id %KeyLogWindow_ID%
      GlobalLogBuffer .= "Send {vk" . vkCode . "sc" . scCode . "}" . "`r`n" ;Hier ist "`r`n" notwendig, da dieses Control "`n" ignoriert.
      ControlSetText, , %GlobalLogBuffer%, ahk_id %CODELogWindow_ID%
   }
   SoundBeep, 800, 100
   Return CallNextHookEx(nCode, wParam, lParam)
}

GuiClose:
   UnhookWindowsHookEx(hHookKeybd)
exitapp



SetWindowsHookEx(idHook, pfn)
{
   Return DllCall("SetWindowsHookEx", "int", idHook, "Uint", pfn, "Uint", DllCall("GetModuleHandle", "Uint", 0), "Uint", 0)
}

UnhookWindowsHookEx(hHook)
{
   Return DllCall("UnhookWindowsHookEx", "Uint", hHook)
}

CallNextHookEx(nCode, wParam, lParam, hHook = 0)
{
   Return DllCall("CallNextHookEx", "Uint", hHook, "int", nCode, "Uint", wParam, "Uint", lParam)
}


hf
IsNul
l
Nach oben
IsNull(n-l-i)
Gast





BeitragVerfasst am: So Apr 13, 2008 2:49 pm    Titel: Antworten mit Zitat

Jetzt hab ich Null mir selbst noch ein l abgeschnitten Razz Laughing
Nach oben
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    AutoHotkey Community Foren-Übersicht -> Skripte & Funktionen Alle Zeiten sind GMT
Seite 1 von 1

 
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