簡體   English   中英

冷重啟后運行另一個應用程序的Windows 2008R2服務

[英]Windows 2008R2 service that runs another app, after cold reboot

我正在開發適用於Windows Server 2008 R2(.NET 3.5.1)的應用程序,該應用程序即使在冷重啟后也能正常工作,而無需要求某人登錄服務器上的任何帳戶。

關於應用程序本身的幾句話,它是用c#應用程序編寫的,用於注冊員工在公司的工作時間。 用戶(員工)擁有要通過條形碼掃描儀掃描的卡片,每次掃描都意味着“工作已開始”或“工作已停止”,所有內容都被序列化為xml文件,該文件隨后經過修改並放入.csv中,但是沒有。沒關系。

條形碼掃描儀正像鍵盤一樣工作,因此所有代碼都像從鍵盤上一樣被鍵入到PC上。 盡管控制台應用程序沒有處於焦點或根本不可見,但我還是讓應用程序讀取了按鍵。

我需要做的是即使在冷重啟后也能使該應用程序正常工作,它必須是全自動的。

到目前為止,我已經找到了兩種實現方法,一種方法是創建一個服務,該服務可以使另一個進程保持活動狀態(如果該進程不起作用,請打開它),我對此沒有多大的幫助。服務為我啟動了另一個流程,但是該流程的工作方式有所不同,如果我自己運行它,則該流程將無法進行通信,因此我什至無法確定它是否正確。

另一個是將我的應用程序放到注冊的/ microsoft / windows / current version / run中,並為特權有限的用戶啟用自動登錄。 這實際上可以工作,但不是完美的解決方案,因為畢竟我們不希望用戶登錄公司24/7的服務器,對嗎?

我知道你們中的大多數人比我在編程方面有更多的經驗,所以我會為您提供解決方案,以解決我的問題

Lichoniespi

我將使用第一種方法,創建服務,並與正在使用網絡套接字或管道的正在運行的應用程序通信。 對於該服務,請確保您使用的是現有用戶帳戶(而非系統),並允許其與桌面交互。

您的選擇取決於系統的物理安全性(除了掃描條形碼以外,過路人是否可以做很多事情),但讓我們假設它是易於訪問的桌面。 在這種情況下,您可能不希望已登錄的用戶。

使用服務方法。 您不需要單獨的過程即可訪問鍵盤。 創建一個WH_KEYBOARD_LL類型的全局掛鈎。

像這樣聲明您的回調函數,並使用SetWindowsHookEx將其放置到位。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM