Forum | | | | - page 1 - |
|  Julian Schmidt | Salut, je suis sur qui cherche pour une Hotkey-Éditer cela si bien comment alle Scankeys untestützt.
Def CreateHotkeyEdit(5) Contrôle("msctls_hotkey32",»,$54010200,&(2),&(3),&(4),&(5),&(1),2000,%HINSTANCE)
Def SetHotKey(3) SendMessage(&(1),1025,MakeWord(%(2),%(3)),0)
Def GetHotKey(1) SendMessage(&(1),1026,0,0)
Def GetKey(1) LoWord(Lobyte(SendMessage(&(1),1026,0,0)))
Def GetModifyer(1) LoWord(Hibyte(SendMessage(hk&,1026,0,0)))
Def MakeWord(2) (%(1) & $FF) | ((%(2) & $FF) << 8)
Def HiByte(1) %(1) >> 8
Def LoByte(1) %(1) & $FF
Titre de la fenêtre "Tastenkombinationionen"
Cls
Var hk& = CreateHotkeyEdit(%hwnd,300,10,250,24)
SetHotKey(hk&,65,4)
Tandis que 1
SetFocus(hk&)
WaitInput
Cls
Imprimer "Du la hâte eingegeben: "
Imprimer
Imprimer "Taste ", GetKey(hk&)
Imprimer "Modifyer ", GetModifyer(hk&)
Endwhile
dans dem Beispiel peux cela Eingabe-champ z.B. pas avec Druck tourner autour de.
Salut |
| | | | |
|  | « cette Beitrag wurde comme Solution gekennzeichnet. » | |  Julian Schmidt |  Wow, avec dem Éditer bekommt on wirklich alle Kombinationen hin. merci iF. super l'affaire.
ici nochmal avec Erkennung aller Tasten et Readonly-Éditer
{$iq}
declare Edit&,kbdlist&
style de fenêtre 16
cls
messages de l'utilisateur wm_user+1234
Edit& = @Créer("Edit", %hWnd, », 10, 10, 200, 24)
SendMessage(Edit&,$00CF,1,0)
kbdlist&=createKbdList()
initMyHook()
do{
waitInput
}
nProc initMyHook{
return SetWindowsHookEx(13,procAddr(myLowLevelKeyboardHookProc),getModuleHandle(0),0)/*WH_KEYBOARD_LL*/
}
nProc myLowLevelKeyboardHookProc(long code,wp,lp){
global edit&,kbdlist&
ifnot long(lp,8)==128 {
code=long(lp,0)
string mor
ifnot code>159 or code==16 or code==17 or code==18 {
cas iskey(vk_shift) : mor=mor+"Shift + "
cas iskey(vk_control) : mor=mor+"Strg + "
cas iskey(vk_menu) : mor=mor+"Alt + "
}
setText(edit&,mor+substr(getString(kbdlist&,selectString(kbdlist&,0,str(code))),2," "))
}
CallNextHookEx(0, Code, wp, lp)
}
nProc selectString(long lb,srcFrom,string src){
return sendMessage(lb,lb_selectString,srcFrom,src)
}
createKbdList{
long kbdList=create("list",0)
addString(kbdList,"8 BackSpace")
addString(kbdList,"9 Tab")
addString(kbdList,"12 Entfernen")
addString(kbdList,"13 Return")
addString(kbdList,"16 Shift")
addString(kbdList,"17 Strg")
addString(kbdList,"18 Alt")
addString(kbdList,"19 Pause")
addString(kbdList,"20 Caps")
addString(kbdList,"27 Esc")
addString(kbdList,"32 Space")
addString(kbdList,"33 BildHoch")
addString(kbdList,"34 BildRunter")
addString(kbdList,"35 Ende")
addString(kbdList,"36 Pos1")
addString(kbdList,"37 Links")
addString(kbdList,"38 Hoch")
addString(kbdList,"39 Rechts")
addString(kbdList,"40 Runter")
addString(kbdList,"41 Select")
addString(kbdList,"42 Druck")
addString(kbdList,"43 Execute")
addString(kbdList,"44 Druck")
addString(kbdList,"45 Einfg")
addString(kbdList,"46 Entf")
addString(kbdList,"47 Hilfe")
addString(kbdList,"48 0")
addString(kbdList,"49 1")
addString(kbdList,"50 2")
addString(kbdList,"51 3")
addString(kbdList,"52 4")
addString(kbdList,"53 5")
addString(kbdList,"54 6")
addString(kbdList,"55 7")
addString(kbdList,"56 8")
addString(kbdList,"57 9")
addString(kbdList,"65 A")
addString(kbdList,"66 B")
addString(kbdList,"67 C")
addString(kbdList,"68 D")
addString(kbdList,"69 E")
addString(kbdList,"70 F")
addString(kbdList,"71 G")
addString(kbdList,"72 H")
addString(kbdList,"73 I")
addString(kbdList,"74 J")
addString(kbdList,"75 K")
addString(kbdList,"76 L")
addString(kbdList,"77 M")
addString(kbdList,"78 N")
addString(kbdList,"79 O")
addString(kbdList,"80 P")
addString(kbdList,"81 Q")
addString(kbdList,"82 R")
addString(kbdList,"83 S")
addString(kbdList,"84 T")
addString(kbdList,"85 U")
addString(kbdList,"86 V")
addString(kbdList,"87 W")
addString(kbdList,"88 X")
addString(kbdList,"89 Y")
addString(kbdList,"90 Z")
addString(kbdList,"96 0")
addString(kbdList,"97 1")
addString(kbdList,"98 2")
addString(kbdList,"99 3")
addString(kbdList,"100 4")
addString(kbdList,"101 5")
addString(kbdList,"102 6")
addString(kbdList,"103 7")
addString(kbdList,"104 8")
addString(kbdList,"105 9")
addString(kbdList,"106 *")
addString(kbdList,"107 +")
addString(kbdList,"109 -")
addString(kbdList,"110 ,")
addString(kbdList,"111 /")
addString(kbdList,"112 F1")
addString(kbdList,"113 F2")
addString(kbdList,"114 F3")
addString(kbdList,"115 F4")
addString(kbdList,"116 F5")
addString(kbdList,"117 F6")
addString(kbdList,"118 F7")
addString(kbdList,"119 F8")
addString(kbdList,"120 F9")
addString(kbdList,"121 F10")
addString(kbdList,"122 F11")
addString(kbdList,"123 F12")
addString(kbdList,"124 F13")
addString(kbdList,"125 F14")
addString(kbdList,"126 F15")
addString(kbdList,"127 F16")
addString(kbdList,"128 F17")
addString(kbdList,"129 F18")
addString(kbdList,"130 F19")
addString(kbdList,"131 F20")
addString(kbdList,"132 F21")
addString(kbdList,"133 F22")
addString(kbdList,"134 F23")
addString(kbdList,"135 F24")
addString(kbdList,"160 Shift")
addString(kbdList,"161 Shift")
addString(kbdList,"162 Strg")
addString(kbdList,"163 Strg")
addString(kbdList,"164 Alt")
addString(kbdList,"165 Alt")
return kbdList
}
|
| | | | |  |
| |  | So peux Du qui Druck-bouton intercepter: [...] 
Gibt arrêt solch Spezis aussi Rollen et récréation etc. |
| | | | |
| |  Julian Schmidt | hmmmm...et comment baue je cela am besten un. Warscheinlich dans cela obere Beispiel pas du tout.
Ist imho Murx
Def CreateHotkeyEdit(5) Contrôle("msctls_hotkey32",»,$54010200,&(2),&(3),&(4),&(5),&(1),2000,%HINSTANCE)
Def SetHotKey(3) SendMessage(&(1),1025,MakeWord(%(2),%(3)),0)
Def GetHotKey(1) SendMessage(&(1),1026,0,0)
Def GetKey(1) LoWord(Lobyte(SendMessage(&(1),1026,0,0)))
Def GetModifyer(1) LoWord(Hibyte(SendMessage(hk&,1026,0,0)))
Def MakeWord(2) (%(1) & $FF) | ((%(2) & $FF) << 8)
Def HiByte(1) %(1) >> 8
Def LoByte(1) %(1) & $FF
Titre de la fenêtre "Tastenkombinationionen"
Cls
Var hk& = CreateHotkeyEdit(%hwnd,300,10,250,24)
SetHotKey(hk&,65,4)' ALT + A mettons
external("user32.dll","RegisterHotKey",%hWnd,222,0,44)
usermessages 786'wm_hotkey
Tandis que 1
Waitinput 300
Si getfocus(hk&)
Cls
Imprimer "Du la hâte eingegeben: "
Imprimer
Imprimer "Taste ", GetKey(hk&)
Imprimer "Modifyer ", GetModifyer(hk&)
Waitinput
EndIf
si %uMessage=786
SetHotKey(hk&,&ulParam \ $10000,GetModifyer(hk&))
'imprimer "Tastaturcode:",&ulParam \ $10000
endif
Endwhile
|
| | | | |
| |  | Mach doch pas so compliqué mais simple un readonly Éditer pleine avec allem quoi chez getfocus un globaler Tastaturhook abliefert.
direct befüllen avec Entrées aus solch liste: [...] [...]  |
| | | | |
| |  Julian Schmidt | comment meinst du cela avec une globalen clavier Hook. peux du un Beispiel avec reinen XProfan donner. |
| | | | |
| |  | Absturzsicher allez cela avec reinem Profan pas - absturzsichere Hooks étions avec un Grund pour nProcs: [...] 
quoi Du faire könntest wäre une Boucle avec lauter registerHotKey( |
| | | | |
| |  Julian Schmidt | Gibt es aucun autre Opportunités une Art Hotkey-Éditer, sans XPSE trop erstellen. Indem qui Druck-bouton verwendet volonté peux.
Kennt là quelqu'un quelque chose?
Salut |
| | | | |
| |  | je comprends hierbei pas quoi Dir à dem pas-xpse Code ( [...] ) so missfällt,
dass Du ihn pour pas verwendest. Imho fehlt ici wieder qui konkrete Problem- benennung. |
| | | | |
| |  Julian Schmidt | simple une Einhabemethode avec qui Tastenkombinationen erfasst volonté könne. Sprich un Éditer, Listbox etc. Pour Possibilité pour plusieurs Tastenkombinationen, d.h. plusieurs Edits. Es sollte sur jeden le cas qui Eingabe qui Drucktaste avec Modifyer erlaubt son. et pour besoin aussi weitere Tasten hinzufügbar.
Pour Possibilité sans XPSE. |
| | | | |
| |  | je crois tu as mon Frage pas verstanden,
je fragte sinngemäß quoi Dir am NICHT-xpse-Beispiel NICHT comme. |
| | | | |
| |  Julian Schmidt | de qui Grundidee comme es mir. Allerdings muss je en supplément dire, le moi es pas avec XPSE getestet habe. je suis simple bisher ne...aucune ami de XPSE. Vlt schaffst du mich trop bekehren, si du mir une kurze introduction dans XPSE gibst. |
| | | | |
| |  | quoi je nochmals versuche toi trop fragen, ist, pourquoi cela cela Beispiel pas magst, dass plan ___________ohne xpse auskommt.
c'est pas mon Anliegen, quelqu'un xpse aufzudrücken, je peux ihn seulement empfehlen, là il sich eh bereits unendlich viele Male bewehrt hat et avec cela Dinge aller, qui sonst garnicht possible wären. si quelqu'un sans xpse auskommt ist cela doch IO. Beispielsweise utilise aussi Du maintenant déjà viele syntaktische Varianten qui xpse déjà viele Jahre bot, bevor XProfan cet unterstützte et so conditionner sich qui Dinge hin et wieder. je hatte xpse autrefois (1998 nommé profan enhancer) begonnen um plus Potential aus XProfan (autrefois profan) herauszuholen et cela tätentut il jusqu'à aujourd'hui entier erfolgreich. qui den fest eingebunden hat wird aussi pas plus sans programmieren, là on déjà beim Programmieren avec cela merkt, comment il soutenu et là il alles plus rapide pouvoir et avec cela qui Programme stabiler volonté, ist il pour mich un muss, besonders si on ständig Codes findet dans denen il faute findet qui komplett unnötig sommes bzw. vermieden hätten volonté doit. So schreibe je beispielsweise souvent aussi lieber une nProc statt une Proc (wohin es plan possible ist) weil vous sur une gewisse Art ehrlicher ist et cela System deutlich moins belastet. |
| | | | |
|
répondreOptions du sujet | 47.090 Views |
Themeninformationencet Thema hat 3 participant: |