我想爲桌面應用程序製作.exe,它只能在整個生活中使用一次。沒有人可以運行它兩次。如何使單個系統(機器)的Windows應用程序
1
A
回答
5
你不能做到這一點可靠。
你可以嘗試一些簡單的東西,比如在註冊表中寫一個魔術鍵或者在某處存儲一個魔法文件,但是像Process Monitor這樣的簡單工具會向任何具有Google技能的人展示你的魔法標記。
您可以嘗試刪除當它被終止.exe文件,但如果用戶進行復印時,他們執行你的文件之前,您再次鬆動。
你可以寫一個根工具包,阻止系統啓動了應用程序的兩倍,但不是非常好,它可以檢測並規避了。
您可以創建一個在線服務,而您的應用需求檢查一次性許可來執行,但可以破解,你會得到一個時間牌弄得一塌糊塗保持跟蹤。
但到最後,如果有人真的想要運行的應用程序超過一次,他們將弄清楚如何做到這一點。
你想要多少保護?
1
0
你所談論的是一個單實例應用程序,可以啓動,並沒有其他的副本可以運行 - 單實例啓動代碼的基礎是創建一個互斥體,如果另一個副本運行時,它會檢查如果分配了互斥鎖,如果它已經被釋放並立即退出。看看這篇關於CodeProject的文章,它正是你想要的。
0
可以使用DPAPI調用的組合(ProtectedData
Class)將值推入註冊表中以再次檢查,或者在第一次運行時對值進行編碼,並檢查結果是否與您打算使用的機器匹配運行(如果沒有則退出)。
參見DataProtectionScope.LocalMachine
。受保護數據的結果在每臺機器上幾乎總是不同,因此這可以作爲特定機器檢查。
0
您可以創建一個註冊表項。如果該鍵存在中止執行。
相關問題
- 1. Windows系統托盤應用程序
- 2. 如何升級/系統/應用程序中的應用程序?
- 3. 如何更新我的應用程序/系統/應用程序
- 4. 如何通過控制檯應用程序在Windows中延遲系統關機?
- 5. 如何介入應用程序圖標和Windows Phone系統?
- 6. 如何在Windows操作系統上開發iphone應用程序?
- 7. 如何過濾系統應用程序?
- 8. 如何使用Windows C#應用程序的系統字體設置
- 9. 如何使用Java程序將文件從Linux系統複製到Windows系統?
- 10. 如何從主機操作系統運行Docker容器的應用程序?
- 11. 如何爲每個Windows操作系統和我的應用程序拆分RAM?
- 12. 如何使Windows系統還原忽略我的一些應用程序文件?
- 13. 如何在HTML5應用程序的Windows系統上啓動遠程進程
- 14. 如何在x86 win7系統上使用windows sdk構建x64應用程序
- 15. Windows程序的系統調用
- 16. Android系統應用程序
- 17. 如何使用單個webhook用於多個Messenger應用程序/機器人?
- 18. 在Windows 7操作系統上開發Windows Phone應用程序
- 19. 安裝在android系統/系統/應用程序目錄中的應用程序
- 20. Windows上的Unix應用子系統如何在程序集中實現系統調用?如
- 21. 如何在每個系統上啓用Chrome應用程序
- 22. 適用於Windows 8操作系統的應用程序<Win8
- 23. 如何閱讀短信與出使用系統應用程序
- 24. EventMachine:如何使用Rails應用程序構建聊天系統
- 25. 如何使用系統權限編譯Android應用程序
- 26. 連接兩個獨立系統的想法。一個是Windows應用程序,另一個是Web應用程序
- 27. Windows手機應用程序
- 28. 幫助臺票務系統:Windows應用程序和網絡應用程序
- 29. 如何在Windows的x86程序集中編寫系統調用?
- 30. 如何創建跨多個應用程序使用的全局帳戶系統?
據我所知,你希望每個用戶只運行一次。我不認爲這是可能的。用戶可以擁有多臺計算機或虛擬機設置,並且可以運行多次。你可以使用某種序列號,但這也是易碎的(關於序列號有很多問題,你可以看到它的優點和缺點) – Rox 2010-09-07 11:29:35
用戶只有計算機,它只能在同一系統中運行,不能在其他系統中運行。 – abu 2010-09-07 11:31:23
簡單:[寫skynet](http://xkcd.com/534/)...只需要其中一個,* poof *沒有更多的世界。 – 2010-09-07 11:36:09