我需要編寫將作爲參數給定某個路徑的程序,並播放位於該路徑中的audiofile。但是當我第二次調用該程序後 - 我需要第一個完成播放文件,然後播放第二個文件,該文件作爲參數傳遞給第二個實例。如果可能的話,如何將第二個參數作爲隊列傳遞給第一個程序實例..?將參數傳遞到先前啓動的程序實例
3
A
回答
3
我想您所描述的以下策略: -
- 您的應用程序的實例的是開放和公平軌道X.
- 用戶雙擊在資源管理器跟蹤Ÿ
- Windows啓動您的應用程序實例B,在文件名作爲參數傳遞
- 實例B檢測實例的
- 實例B發送消息以實例的播放軌道ý
- 實例乙關閉
- 實例A接收到消息時,停止播放磁道X,並開始播放的曲目ý
顯然,這是方式VLC媒體播放器的作品。如果您嘗試上述操作,則會在當前實例開始播放新曲目之前,看到一個短時間內出現的新VLC進程。
這種非常簡單的跨進程通信可以使用諸如System.Threading.Mutex之類的東西來實現。例如。您可以使用一個互斥體來指示當前正在運行的實例的存在,另一個用於將新軌道名稱傳遞給當前實例。
實際上,this article描述了一些非常相似的東西。
1
我不認爲你需要爲此目的的第二個程序實例。您可以簡單地要求第一個節目在播放完第一個音頻文件後播放新的音頻文件。你可以通過幾種方式實現這一點。
您可以在播放音頻文件的程序中託管WCF服務。它將播放音頻,並將同時收聽WCF服務。發送第二個參數的程序將通過WCF服務傳遞新路徑。
同樣可以使用套接字通信
的第三種方式可能是使用Windows消息隊列。音頻播放器將不斷爲新路徑合併隊列。第二個程序將通過在Windows消息隊列中添加消息來發送新文件路徑
您還可以使用文件進行通信。音頻播放器能夠查找文件和其他程序的變化可以寫路徑,該文件
+0
感謝您的回答,但要求始終將路徑作爲參數發送。關鍵是另一個程序會在某些事件中調用我的one +參數。 – 0x49D1
相關問題
- 1. 傳遞參數啓動前NPM-腳本
- 2. 將當前實例傳遞給laravel中的驗證程序
- 3. 將可選參數傳遞給子例程而不實例化
- 4. 如何將數據傳遞到先前活動之前的活動
- 5. OSX:啓動應用程序的多個實例並將它們傳遞給命令行參數
- 6. Ec2在啓動時將用戶數據傳遞給Windows實例
- 7. 將必需的參數傳遞到實例
- 8. 如何傳遞參數到現有的流程實例在c#
- 9. 用不同的參數啓動程序的多個實例
- 10. 在啓動程序前輸入參數
- 11. 將參數從驅動程序傳遞到火花執行器
- 12. 將命令行參數傳遞給已運行的應用程序實例
- 13. 參數傳遞到Java的Socket程序
- 14. 防止IIS在重啓過程中關閉先前實例之前啓動應用程序
- 15. WiX和啓動程序 - 是否可以傳遞參數?
- 16. 從瀏覽器啓動程序時傳遞參數
- 17. Android NFC在啓動應用程序時傳遞單個參數
- 18. 使用java程序使用weblogic啓動傳遞java參數
- 19. 如何從VB.Net啓動程序並傳遞參數?
- 20. 啓動時將參數傳遞給pyqt線程
- 21. 將參數傳遞給子程序
- 22. 將參數傳遞給EXE程序集
- 23. 將參數傳遞給應用程序
- 24. Makefile將參數傳遞給C程序
- 25. 如何將參數傳遞給JNLP啓動的Swing應用程序?
- 26. 如何將參數傳遞給由註冊表啓動的C++程序?
- 27. Unity - 實例化時傳遞參數
- 28. 參數傳遞到命令行程序
- 29. python-daemon啓動同一程序的多個實例並傳入實例特定參數
- 30. 將先前定義的變量傳遞到Javascript函數
認爲這是即時搜索的方式..謝謝,生病嘗試使用互斥體! – 0x49D1
完成。使用這種消息傳遞機制:http://boycook.wordpress.com/2008/07/29/c-win32-messaging-with-sendmessage-and-wm_copydata/。謝謝你的提示! – 0x49D1