我正在爲用戶提供Citrix連接選擇的自助服務終端應用程序。檢測由自助服務終端應用程序啓動的Citrix會話的終止
的想法是,在用戶選擇通過售貨亭應用程序呈現的連接,然後售貨亭發射發起通過運行一個類似的命令所選擇的連接:
C:\Program Files\Citrix\ICA Client\wfica32.exe \\server\path\to\icaFile.ica
我希望用戶呆在內Citrix會話 - 不是出於任何安全原因,只是爲了使其成爲進入選定會話並最終註銷的良好用戶體驗。所以我啓動全屏會話,一切都很好,直到用戶註銷。
當用戶註銷Citrix會話時,我還想在客戶端計算機上啓動註銷。我試着通過使用類似於下面的代碼在明顯的方式做這樣的:
Process citrixProcess = new Process();
citrixProcess.StartInfo = new ProcessStartInfo();
citrixProcess.StartInfo.FileName = "C:\Program Files\Citrix\ICA Client\wfica32.exe";
citrixProcess.StartInfo.Arguments = "\\server\path\to\icaFile.ica";
citrixProcess.Start();
citrixProcess.WaitForExit();
//
// Followed by code to initiate logoff from the local computer
//
但不是在等待過程對象代碼繼續沿着正確的下一節它啓動註銷。結果是Citrix會話幾乎立即終止,因爲本地計算機註銷會立即發生。我最好的猜測是啓動一個新的進程來實際處理會話後,wfica32.exe的初始啓動程序將立即退出。但是,如果發生了這種情況,不知道該怎麼做,因爲一旦Citrix會話啓動,wfica32.exe仍然會運行。
我正在尋找一種可靠的方法來檢測以這種方式啓動的Citrix會話何時終止。
太謝謝你了。我會計劃看看這個組件的文檔,並試用它,希望在接下來的幾個星期裏我可以回到這個項目。非常感激! – 2012-05-22 14:14:17
該文檔是稀疏的,但我正在處理相關的應用程序,我會很樂意分享任何我可以並更新答案或相關問題。 – 2012-05-22 17:41:27
這真的讓我開始了正確的道路:http://blogs.citrix.com/2010/03/02/fun-with-the-ica-client-object-ico-and-net-console-applications/ – 2012-06-05 13:48:24