阻止应用程序从Windows临时文件夹运行
问题描述:
我们有应用程序,它用于将固件下载到外部设备。我们曾经发布我们的SW作为一个zip文件。一些用户直接从zip文件运行应用程序。所以应用程序解压缩到windows TEMP文件夹并运行。那时Windows防火墙或反病毒软件阻止我们的应用程序访问系统资源。在这种情况下,应用程序会崩溃连接的设备。阻止应用程序从Windows临时文件夹运行
如何防止应用程序从Windows TEMP foder运行?
答
为什么不检查当前目录以查看它是否是临时文件夹?在伪代码:
if (GetCurrentDir() == GetTempDir())
abort("You cannot run our application from the temp folder.");
答
创建一个安装程序,只有当你在注册表中发现,仅由安装创建的条目运行。
答
正如我所见,有2个解决方案 1您可以按上述说明捆绑安装程序,以便人们在使用之前将其安装,使其被防火墙或防病毒视为合法应用程序。
或
- 而不是捆绑在短短一个zip文件的应用程序,将其捆绑在一个自解压压缩文件和写入默认解压路径的脚本,什么文件来执行当被提取时。 我想你可以做到这一点,没有任何代码写在winrar。默认情况下,解压缩到指定的文件夹,如c:\ softwarename \,然后执行所需的文件。
GetCurrentDirectory API不给完整的文件路径,如果我们运行从TEMP文件夹(出应用程序:C:\的Documents and Settings \用户名,但应用程序路径是C:\的Documents and Settings \用户名\本地设置的\ Temp )。所以我用GetModuleFileName得到完整路径 – santhosh 2009-02-20 05:16:21