Odczytanie skrótu klawisza.

Odczytanie skrótu klawisza.
DY
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 33
0

Napisałem sobie programik w Visual Studio który jest w Tray Icon i chciałbym przypisać mu skrót klawiszowy umożliwiający pojawienie się okna. Żeby to zrobić muszę się podłączyć do globalnej klawiatury tak to się chyba nazywa
tylko nie wiem jak to się robi.

Patryk27
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Wrocław
  • Postów: 13042
DY
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 33
0

Tak ale jak ktoś zna inną metodę żeby uruchomić aplikacje z Tray Icon (koło zegarka) przez skrót klawiszowy to niech poda.

  • Rejestracja: dni
  • Ostatnio: dni
DY
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 33
0

Chyba tak bo nie wiem jaki będzie efekt. Może też o to chodzi http://msdn.microsoft.com/en-us/library/ms646301(v=VS.85).aspx
jak bym umiał napisać code to bym wiedział.

DY
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 33
0

Już znalazłem odpowiedz na swoje pytanie.

Kopiuj
 public partial class Form1 : Form
    {
 
         //API Imports
 
 
        [DllImport("user32.dll", SetLastError = true)]
        public static extern bool RegisterHotKey(
 
            IntPtr hWnd, // handle to window    
            int id, // hot key identifier    
            KeyModifiers fsModifiers, // key-modifier options    
            Keys vk    // virtual-key code    
            );
        [DllImport("user32.dll", SetLastError = true)]
        public static extern bool UnregisterHotKey(
            IntPtr hWnd, // handle to window    
            int id);     //
 
             const int WM_HOTKEY = 0x0312;
             protected override void WndProc(ref Message message)
             {
                 if (message.Msg == WM_HOTKEY)
                 {
                     Close();
                 }
                 base.WndProc(ref message);
             }
 
 
        public enum KeyModifiers        //enum to call 3rd parameter of RegisterHotKey easily
        {
            None = 0,
            Alt = 1,
            Control = 2,
            Shift = 4,
            Windows = 8
        }
 
        public Form1()
        {
            InitializeComponent();
        }
 
 
 
        private void button1_Click(object sender, EventArgs e)
        {
//I have non-relevant code here
       }
        private void button2_Click(object sender, EventArgs e)
        {
            //I run a loop here, it clicks certain spots on the browser
        }
 
        private void button3_Click(object sender, EventArgs e)
       {
//I have non-relevant code here
        }
        private void button4_Click(object sender, EventArgs e)
        {
           //I have non-relevant code here
        }
 
        private void Form1_Load(object sender, EventArgs e)
        {
            RegisterHotKey(this.Handle, WM_HOTKEY, KeyModifiers.None, Keys.Q);
 
        }
 
        private void Form1_FormClosing(object sender, FormClosingEventArgs e)
        {
            UnregisterHotKey(this.Handle, WM_HOTKEY);
        }
 
    }
}
 

Może się komuś przyda działa po wciśnięciu klawisza Q. Teraz się zastanawiam czy da rade żeby działało np w grze ale to pewnie bym musiał podpiąć się do directx.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.