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.
Odczytanie skrótu klawisza.
- Rejestracja: dni
- Ostatnio: dni
- Postów: 33
0
- Rejestracja: dni
- Ostatnio: dni
- Lokalizacja: Wrocław
- Postów: 13042
0
Hook na klawiaturę ?
http://forum.ks-ekspert.pl/topic/70148-c-hook-na-klawiature/
- 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
0
A może coś w tym stylu: http://msdn.microsoft.com/en-us/library/ms646309%28v=vs.85%29.aspx ? :)
- 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ł.
- Rejestracja: dni
- Ostatnio: dni
- Postów: 33
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.