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
0
Hook na klawiaturę ?
http://forum.ks-ekspert.pl/topic/70148-c-hook-na-klawiature/
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
A może coś w tym stylu: http://msdn.microsoft.com/en-us/library/ms646309%28v=vs.85%29.aspx ? :)
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.