Français
Forum

Hotkey Éditer avec allen Scankeys

 
- 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
 
XProfan X2
Win7 Professional, SP1, AMD FX(tm)-8350 Eight-Core Processor

Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—
Webseite [...] 
23.01.2013  
 



 
- page 2 -


« cette Beitrag wurde comme Solution gekennzeichnet. »

- page 4 -



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

}

 
XProfan X2
Win7 Professional, SP1, AMD FX(tm)-8350 Eight-Core Processor

Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—
Webseite [...] 
20.02.2013  
 




Julian
Schmidt
rien, seulement allez le son deiner Aussage cet pas. seulement per XPSE ou bien Registerhotkey dans einer Boucle, quoi chez mehreren Edits mais potenziell problematisch ist.

iF (23.01.13)
iF (23.01.13)
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 (23.01.13)
comment meinst du cela avec une globalen clavier Hook.
peux du un Beispiel avec reinen XProfan donner.


iF (23.01.13)
Absturzsicher allez cela avec reinem Profan pas -
absturzsichere Hooks étions avec un Grund pour nProcs:  [...] 



[OFFTOPIC]si on plusieurs Zitate verschachtelt, volonté qui paramètre de den ersten inneren citation à cela außere citation übertragen.[/OFFTOPIC]
 
XProfan X2
Win7 Professional, SP1, AMD FX(tm)-8350 Eight-Core Processor

Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—
Webseite [...] 
30.01.2013  
 



je hab Dir doch dessus geschrieben comment Du qui Drucktaste rein avec XProfan
intercepter peux et alle anderen Tasten per HotKey.

mon Antwort, cela es seulement avec XPSE absturzsicher allez, bezog sich sur Votre
Frage pour clavier-Hook. pas verwirren laisser!
 
30.01.2013  
 




Julian
Schmidt
Ok, était wirklich quelque chose verwirrend.
peux du nochmal genauer décrire comment?
 
XProfan X2
Win7 Professional, SP1, AMD FX(tm)-8350 Eight-Core Processor

Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—
Webseite [...] 
30.01.2013  
 



ici mais est un pas-xpse-Code dabei qui zeigt comment on cet bouton abfängt:  [...] 

autre Tasten peux Du aussi per addHotKey intercepter.

So müsstest Du doch alle Tasten intercepter peut.
 
30.01.2013  
 




Julian
Schmidt
ensuite devrait je alors alle dans un Boucle hauen. là größte Problem ist, le moi pour jeden Hotkey qui Opportunités Strg, vieux, Shift, Strg+vieux, Strg+Shift, vieux+Shift, Strg+vieux+Shift + Hotkey brauche. ensuite suis je la fois entier vite chez 500 Schleifendruchläufen avec Addhotkey
la fois une autre Frage, pourquoi qui Druck-bouton pas per Addhotkey. Bzw. pourquoi pas alle per RegisterHotKey?
 
XProfan X2
Win7 Professional, SP1, AMD FX(tm)-8350 Eight-Core Processor

Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—
Webseite [...] 
30.01.2013  
 



si Du addHotKey verwenden vouloir ensuite musst Du einmalig alle registrieren.

Besser wäre imho une kleine hookProc qui juste cet Tasteninfos z.B. per userMessage
à cela XProfan-Programme absendet sodass cela Programme quasi seulement encore einsammeln
et réagir muss. cela Beispiel en supplément ist oui aussi ici  [...]  abrufbar -
alors c'est qui erste Voir le texte source. là bekommst quasi juste zur Message qui Tasteninfo
mitgeliefert.

avec cela solch Code cependant 100% absturzsicher funktioniert et Dein XProfan-Programme
pas durcheinander bringt, ist es notwendig, dass qui Hook-Proc pas sur une
interpretierte Proc zeigt, weil XProfan pas apc-sûrement ist. cela on comme XProfaner
dans den Genuss solcher Funktionen venons peux sans dass cela Programme abstürzt,
était avec un Grund pour n(ative)Procs, qui plan oui c'est ca quelque chose comme ermöglichen
et thread sowie apc-sûrement sommes. qui idée était arrêt, dass on aussi solche
Dinge avec seiner Lieblingsprogrammiersprache (XProfan) programmieren peux
et qui nProcs ermöglichen arrêt cela on plan pour quelque chose comme pas sur une autre
Programmiersprache zurückgreifen muss mais on comment gewohnt xprofant.

Pour nProcs simple xpse avec ins Kompilerverzeichnis kopieren et dans qui IDE
comme Kompiler ou bien Werkzeug angeben, Aufruf simple xpse file -
dans den tête qui xprf simple {$cleq} (kompilieren, linken, exe, quiet) écrivons et
déjà flitzt cela Programme.
 
30.01.2013  
 




Julian
Schmidt
Ok, werde mir la fois anschauen. Evtl. aussi dans Kombination avec XPSE.

[OFFTOPIC]était justement sur deiner qui XPSE-Webseite [...] . dessus steht Copyright © 1998-2011 XProfan.Com, built DE. réellement écrivons wir déjà cela l'an 2013 [/OFFTOPIC]
 
XProfan X2
Win7 Professional, SP1, AMD FX(tm)-8350 Eight-Core Processor

Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—
Webseite [...] 
31.01.2013  
 




Julian
Schmidt
je veux cela Beispiel avec Hook nochmal aufgreifen. [...] 
là existiert qui la ligne:
caseof wm_user+1234

si (&ulParam==1) and (&uwParam==44)


chez &uwParam handelt sich um den Virtuellen Tastecode / Scankey. Wobei handelt es chez &ulParam. Dachte seulement es handelt sich um den Modifier, dem billet allerdings pas so trop son!?
comment peux je une Modifier, etwa vieux, avec abfragen.
 
XProfan X2
Win7 Professional, SP1, AMD FX(tm)-8350 Eight-Core Processor

Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—
Webseite [...] 
19.02.2013  
 



exposition qui nProc wandelt qui Hook-Calls dans SendMessage um,
cet wiederum empfängt cela XProfan-Programme comme Utilisateur Messages.

sendMessage(hWnd,wm_user+1234,long(lp,0),long(lp,8))

Windows sendet 3 Params à qui Hookproc: (long code,wp,lp)  [...] 

lParam [dans]. Type: LPARAM, A pointer to a KBDLLHOOKSTRUCT structure:  [...] 

Demnach hole je avec long(lp,0): vkCode, Type: DWORD, A virtual-clé code:  [...] 

et long(lp,8): flags,Type: DWORD, The extended-clé flag, event-injected flag:  [...] 

Demnach steht qui de Dir gewünscht Info nirgends bzw. wird vous separat
comme nouvelle zuvor gesandt, alors z.B. si vieux ou bien strg gedrückt wurde.
Du müsstest donc selbst "merken" si une qui Tasten zuvor gedrückt o.
losgelassen wurde. si losgelassen ou bien gedrückt steht dans &ulParam.

là wäre es pour Deinen le cas peut-être besser, si Du dans qui nProc quoi änderst
et statt pour &lParam im SendMessage pas long(lp,8) sendest mais
juste avec isKey (  [...]  ) ermittelte Werte sendest et pour peut-être sur qui Info
verzichtest, si qui bouton gedrückt ou bien losgelassen wurde.

alors vlt. so:
 {$cleq}
style de fenêtre 16
cls
messages de l'utilisateur wm_user+1234
initMyHook()

do{

    waitInput

    sélectionner uMessage

        caseof wm_user+1234

        imprimer &uwParam,&ulParam

    EndSelect

}

nProc initMyHook{

    return SetWindowsHookEx(13,procAddr(myLowLevelKeyboardHookProc),getModuleHandle(0),0)/*WH_KEYBOARD_LL*/

}

nProc myLowLevelKeyboardHookProc(long code,wp,lp){

    casenot long(lp,8) : casenot (long(lp,0)==162) : sendMessage(hWnd,wm_user+1234,long(lp,0),iskey(VK_CONTROL)*2+iskey(VK_MENU))/* si bouton gedrückt statt losgelassen *//* pas übermitteln si seulement qui strg bouton gedrückt */
    CallNextHookEx(0, Code, wp, lp)

}

 
19.02.2013  
 




Andreas
Miethe


allô David,

sur cet Art blockierst Du z.B. mon Snapshot-Programme. Besser qui annonce weitergeben.
 
XProfan X2
Gruss
Andreas
________ ________ ________ ________ _
Profan 3.3 - XProfanX2
Win 95,98,ME,2000,XP,Vista - Win 7 32 / 64 Bit
ASUS X93S - Intel Core I7-NVIDIA GForce 540M 8GB Arbeitsspeicher
Homepage :  [...] 
19.02.2013  
 



Stimmt, merci, mon faute.

je korrigiere cela aussi juste la fois ici:  [...] 
 
19.02.2013  
 




Julian
Schmidt
Beim Effectuer votre Quelltextes [...]  venez une avertissement.
peux je cet Überspringen ou bien comment bekomme je cet Entfernt, um den Voir le texte source auszuführen?

iF (19.02.13)
là wäre es pour Deinen le cas peut-être besser, si Du dans qui nProc quoi änderst
et statt pour &lParam im SendMessage pas long(lp,8) sendest mais
juste avec isKey ( [...] ) ermittelte Werte sendest et pour peut-être sur qui Info
verzichtest, si qui bouton gedrückt ou bien losgelassen wurde.


ensuite devrait je mir mais immernoch qui vorhergedrückten Tasten merken, ou bien?
 
XProfan X2
Win7 Professional, SP1, AMD FX(tm)-8350 Eight-Core Processor

Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—
Webseite [...] 
19.02.2013  
 




répondre


Topictitle, max. 100 marque.
 

Systemprofile:

ne...aucune Systemprofil angelegt. [anlegen]

XProfan:

 Posting  Font  Smilies  ▼ 

s'il te plaît s'inscrire um une Beitrag trop verfassen.
 

Options du sujet

47.096 Views

Untitledvor 0 min.
Member 504445914.02.2025
H.Brill30.08.2021
Walter01.07.2018
Andreas Koch07.11.2016
plus...

Themeninformationen



Admins  |  AGB  |  Applications  |  Auteurs  |  Chat  |  protection des données  |  Télécharger  |  Entrance  |  Aider  |  Merchantportal  |  Empreinte  |  Mart  |  Interfaces  |  SDK  |  Services  |  Jeux  |  cherche  |  Support

un projet aller XProfaner, qui il y a!


Mon XProfan
Privé Nouvelles
Eigenes Ablageforum
Sujets-La liste de voeux
Eigene Posts
Eigene Sujets
Zwischenablage
Annuler
 Deutsch English Français Español Italia
Traductions

protection des données


Wir verwenden Cookies seulement comme Session-Cookies à cause de qui technischen Notwendigkeit et chez uns gibt es aucun Cookies de Drittanbietern.

si du ici sur unsere Webseite klickst ou bien navigierst, stimmst du unserer Erfassung de Informationen dans unseren Cookies sur XProfan.Net trop.

Weitere Informationen trop unseren Cookies et en supplément, comment du qui Kontrolle par-dessus behältst, findest du dans unserer nachfolgenden Datenschutzerklärung.


d'accordDatenschutzerklärung
je voudrais keinen Cookie