【问题标题】:Check for specific program files in NSIS检查 NSIS 中的特定程序文件
【发布时间】:2015-01-13 01:25:06
【问题描述】:

我正在开发一个程序,该程序只能安装在公司的 PC 上,以防止它在其他计算机上运行。所有计算机的唯一共同点/区别在于每台 PC 上相同位置的 .exe 文件(即 C:\Program Files\program_name\program.exe)。

.exe 并不总是在运行,所以我不能使用 nsProcesss。

有没有办法在安装前检查此文件,如果不存在则中止?

【问题讨论】:

    标签: windows file installation nsis


    【解决方案1】:

    所以我找到了解决问题的方法:

    IfFileExists "C:\Program Files\program_name\program.exe" file_found file_not_found
    file_not_found:
    StrCpy $0 "This computer is not valid"
    Abort
    
    file_found:
    
    ;rest of .nsi
    

    IfFileExists 检查以下文件是否存在。转到file_foundfile_not_found。如果文件未找到,我选择中止

    【讨论】:

    • “程序文件”因操作系统语言而异,$PROGRAMFILES 应该更安全(除非该程序也有 64 位版本)。还要记住,用户可以将程序安装在他喜欢的任何其他文件夹中。
    • 嗨@idleberg,大多数情况下你是正确的 $PROGRAMFILES 是一个更好的方法。但是在这种情况下,该行用于确保它是安装在其上的正确操作系统(嵌入式版本 Windows XP),因此在这种情况下,“程序文件”实际上是首选解决方案
    猜你喜欢
    • 2012-05-06
    • 1970-01-01
    • 2010-11-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-14
    • 2013-11-02
    • 1970-01-01
    相关资源
    最近更新 更多