Odczytanie skrótu klawisza.

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.

0

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

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ł.

0

Już znalazłem odpowiedz na swoje pytanie.

 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.

1 użytkowników online, w tym zalogowanych: 0, gości: 1