我想为桌面应用程序制作.exe,它只能在整个生活中使用一次。没有人可以运行它两次。如何使单个系统(机器)的Windows应用程序
1
A
回答
5
你不能做到这一点可靠。
你可以尝试一些简单的东西,比如在注册表中写一个魔术键或者在某处存储一个魔法文件,但是像Process Monitor这样的简单工具会向任何具有Google技能的人展示你的魔法标记。
您可以尝试删除当它被终止.exe文件,但如果用户进行复印时,他们执行你的文件之前,您再次松动。
你可以写一个根工具包,阻止系统启动了应用程序的两倍,但不是非常好,它可以检测并规避了。
您可以创建一个在线服务,而您的应用需求检查一次性许可来执行,但可以破解,你会得到一个时间牌弄得一塌糊涂保持跟踪。
但到最后,如果有人真的想要运行的应用程序超过一次,他们将弄清楚如何做到这一点。
你想要多少保护?
1
0
你所谈论的是一个单实例应用程序,可以启动,并没有其他的副本可以运行 - 单实例启动代码的基础是创建一个互斥体,如果另一个副本运行时,它会检查如果分配了互斥锁,如果它已经被释放并立即退出。看看这篇关于CodeProject的文章,它正是你想要的。
0
可以使用DPAPI调用的组合(ProtectedData
Class)将值推入注册表中以再次检查,或者在第一次运行时对值进行编码,并检查结果是否与您打算使用的机器匹配运行(如果没有则退出)。
参见DataProtectionScope.LocalMachine
。受保护数据的结果在每台机器上几乎总是不同,因此这可以作为特定机器检查。
0
您可以创建一个注册表项。如果该键存在中止执行。
相关问题
- 1. Windows Store应用程序 - 系统信息
- 2. Windows系统托盘应用程序
- 3. 以使用主机操作系统的Java应用程序(Java的机器人)
- 4. 如何更新我的应用程序/系统/应用程序
- 5. 如何升级/系统/应用程序中的应用程序?
- 6. 如何通过控制台应用程序在Windows中延迟系统关机?
- 7. 如何使用多个应用程序设置分析系统?
- 8. 如何介入应用程序图标和Windows Phone系统?
- 9. 如何在Windows操作系统上开发iphone应用程序?
- 10. 如何在Windows操作系统上模拟ThreadX应用程序
- 11. 如何过滤系统应用程序?
- 12. 如何升级系统应用程序
- 13. 如何使用Windows C#应用程序的系统字体设置
- 14. 如何添加打印机sdk POS系统android应用程序
- 15. 如何使用Java程序将文件从Linux系统复制到Windows系统?
- 16. 如何安装应用程序作为系统应用程序
- 17. 如何在Linux/Windows机器上运行Android操作系统中的C++程序
- 18. 如何从主机操作系统运行Docker容器的应用程序?
- 19. 如何为每个Windows操作系统和我的应用程序拆分RAM?
- 20. 如何使Windows系统还原忽略我的一些应用程序文件?
- 21. 如何在HTML5应用程序的Windows系统上启动远程进程
- 22. 如何在x86 win7系统上使用windows sdk构建x64应用程序
- 23. 如何使用PhoneGap在Windows操作系统中创建ios应用程序?
- 24. Windows程序的系统调用
- 25. Android系统应用程序
- 26. Android系统应用程序
- 27. 如何使用单个webhook用于多个Messenger应用程序/机器人?
- 28. Windows移动应用程序开发Windows 7操作系统
- 29. 在Windows 7操作系统上开发Windows Phone应用程序
- 30. 如何在多个操作系统版本上测试Windows应用程序
据我所知,你希望每个用户只运行一次。我不认为这是可能的。用户可以拥有多台计算机或虚拟机设置,并且可以运行多次。你可以使用某种序列号,但这也是易碎的(关于序列号有很多问题,你可以看到它的优点和缺点) – 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