我正在製作一個實用程序,允許我用熱鍵控制iTunes(通過COM庫)。熱鍵工作,並控制iTunes,像下一個和上一個跟蹤所有的工作。C#+ iTunes COM:iTunes事件有時會升高,通常不會
此實用程序的另一部分是顯示歌曲更改時間的通知。通過一些閱讀和實驗,我發現iTunesAppClass
上的正確事件是OnPlayerPlayEvent
,所以當我把它掛在托盤通知上時,它的工作非常完美。
我遇到的問題是絕大多數時候我運行我的程序,該事件似乎並沒有被提出。但是,很少,沒有任何更改我的代碼,事件引發和我的工具提示出現。
這是怎麼設置我的iTunes對象:
itunes = new iTunesAppClass();
itunes.OnPlayerPlayEvent += new _IiTunesEvents_OnPlayerPlayEventEventHandler(itunes_OnPlayerPlayEvent);
這是事件處理程序:
private void itunes_OnPlayerPlayEvent(object iTrack)
{
IITTrack track = iTrack as IITTrack;
CurrentTrack = track;
// ... notification.
}
任何想法?
編輯:經過多次嘗試後,似乎事件觸發了新的實例iTunes打開並且我的應用程序第一次連接到該實例。也就是說,如果iTunes和我的實用程序(帶有工作通知)都打開了,應關閉並重新打開我的實用程序,它的通知將不起作用。但是,如果我關閉並重新打開iTunes,那麼我的實用程序,通知將工作。
這似乎是問題,因爲如果我關閉了我的實用程序,然後嘗試關閉iTunes,iTunes會告訴我腳本界面仍在使用中(,即使它不是) 。
因此,似乎iTunes只會爲第一個註冊應用程序觸發事件,或者iTunes試圖針對不存在的應用程序觸發事件,並且在針對其他應用程序觸發事件之前停止並停止。
所以我應該問的是,有沒有辦法在退出時用iTunes取消註冊我的應用程序?或者甚至取消註冊全部除我的註冊申請?
自己跑到相同的問題,如果這個工程,我會回來,加上一個你:) – 2015-01-30 06:25:01
工作就像一個魅力:)好找! – 2015-01-30 06:27:29