klavesnice(hotkeys)   otázka

VB.NET, WinForms

Hoj jak muzu ovladat program napr.:hraji hru a mam udelany hack

a kdyz macknu F1 v nasem pripade Q Prida mi penize.

zkousel sem to

Private Sub Form1_KeyDown(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles MyBase.KeyDown
        
        If e.KeyCode = Keys.Q Then
           Money + 1000 'mam to jinak tohle je jen aby ste to pochopily :D 
       end if
    End Sub

ale nefunguje musim byt v tom programu a ne ve hre co s tim pls ?

nahlásit spamnahlásit spam -1 / 1 odpovědětodpovědět

Odpověď naleznete ve článku pana Kindermanna:

http://www.vbnet.cz/clanek--104-globalni...

Vás zajímá přímo tato část kódu:

  public class KeyboardHook

     {

         private IntPtr hook;

         private IntPtr lib;

 

         public KeyboardHook()

         {

             lib = api.LoadLibrary("kernel32.dll"); //nahrajeme modul kernel32.dll

             hook = api.SetWindowsHookEx(api.WH_KEYBOARD_LL, MyCallbackFunction, lib, 0); //nastavíme hook

         }

         ~KeyboardHook()

         {

             api.UnhookWindowsHookEx(hook); //odebereme hook

             api.FreeLibrary(lib); //uvolníme z paměti nahraný modul

         }

 

         //tato metoda bude volána po každém stisku klávesy

         private IntPtr MyCallbackFunction(int code, uint wParam, ref api.KeyboardHookStruct lParam)

         {

             if (wParam == api.WM_KEYFIRST || wParam == api.WM_SYSKEYDOWN) //pouze při stisku

             {

                 if (KeyPressed != null) KeyPressed((int)lParam.vkCode);

             }

             if (lParam.vkCode == 68) return new IntPtr(1); //pokud stiskneme 'D', tak zpráva bude zahozena

             return api.CallNextHookEx(hook, code, wParam, lParam); //zajistí že pokud někde byly nastaveny ještě další hooky, tak se k nim zpráva dostane

         }

     }

Ale přečtěte si celý článek, protože je velmi zajímavý a jsou tam další podpůrné mechanismy, bez kterých kód výše nebude pracovat.

nahlásit spamnahlásit spam 0 odpovědětodpovědět
                       
Nadpis:
Antispam: Komu se občas házejí perly?
Příspěvek bude publikován pod identitou   anonym.
  • Administrátoři si vyhrazují právo komentáře upravovat či mazat bez udání důvodu.
    Mazány budou zejména komentáře obsahující vulgarity nebo porušující pravidla publikování.
  • Pokud nejste zaregistrováni, Vaše IP adresa bude zveřejněna. Pokud s tímto nesouhlasíte, příspěvek neodesílejte.

přihlásit pomocí externího účtu

přihlásit pomocí jména a hesla

Uživatel:
Heslo:

zapomenuté heslo

 

založit nový uživatelský účet

zaregistrujte se

 
zavřít

Nahlásit spam

Opravdu chcete tento příspěvek nahlásit pro porušování pravidel fóra?

Nahlásit Zrušit

Chyba

zavřít

feedback