1
因此,我的表單構造函數中有一個無限循環,它將從Twitch.tv API加載json字符串。但是這個應用程序將從任務欄運行。所以我設置了全球熱鍵,當用戶點擊F1時,應該顯示一個消息框。我面臨的問題是在循環中嘗試檢測按鍵。我需要循環的原因是我需要知道什麼時候抽動拖纜已經聯機或脫機。我嘗試做一個Windows服務,所以我不必做無限循環,但我無法檢測服務中的按鍵。我知道最好的行動方式是擺脫循環,但我不知道如何。這是代碼。檢測鍵無限循環時按下
private KeyHandler ghk;
private System.Timers.Timer liveTime = new System.Timers.Timer();
UserInfo info;
public Form1()
{
InitializeComponent();
ghk = new KeyHandler(Keys.F1, this);
ghk.Register();
while (true)
{
using (var webClient = new System.Net.WebClient())
{
var json = webClient.DownloadString("https://api.twitch.tv/kraken/streams/lirik");
// Now parse with JSON.Net
info = new UserInfo(json);
}
info.streamLive();
if (info.streamLive() && !liveTime.Enabled)
{
liveTime.Start();
}
if (!info.streamLive())
{
liveTime.Stop();
}
}
}
private void HandleHotkey()
{
MessageBox.Show("hello");
}
protected override void WndProc(ref Message m)
{
if (m.Msg == Constants.WM_HOTKEY_MSG_ID)
HandleHotkey();
base.WndProc(ref m);
}
}
完美正是我需要的! – Valener 2014-09-10 23:03:20