设为首页 收藏本站

NSIS中文论坛

查看: 202|回复: 3

[求助] NSIS调用FindProcDll无效

[复制链接]

该用户从未签到

1

主题

5

帖子

21

积分

积分
21
发表于 2018-9-5 15:00:35 | 显示全部楼层 |阅读模式
我的系统是win7 64位的 按照网上的方法调用
Function .onInit
FindProcDLL::FindProc "${PRODUCT_NAME_EXE}.exe"
   Pop $R0
   IntCmp $R0 1 0 no_run
   MessageBox MB_ICONSTOP "安装程序检测到$(^Name)正在运行,请退出程序后重试"
   Quit
   no_run:

FunctionEnd

程序运行时卸载并没有提示程序正在运行
回复

使用道具 举报

  • TA的每日心情
    开心
    昨天 19:31
  • 签到天数: 221 天

    [LV.7]常住居民III

    12

    主题

    37

    帖子

    3482

    积分

    积分
    3482
    发表于 2018-9-7 21:10:59 | 显示全部楼层
    ;http://www.flighty.cn/html/bushu/20110617_128.html
    ;NSIS:判断程序是否运行并进行卸载
    SetCompressor /SOLID lzma
    SetCompress force
    XPStyle on

    OutFile "unkis.exe"
    Name "金山杀手"
    BrandingText "WwW.Flighty.CN"

    ;以下为检测运行文件方式,有一定局限性,不推荐。
    Section "卸载金山卫士"
      FindProcDLL::FindProc "kxetray.exe"
        Pop $R0
        IntCmp $R0 1 0 no_run
        MessageBox MB_ICONQuESTION|MB_YESNO "安装程序检测到 金山卫士 正在运行,您必须将其卸载才能进行下一步安装,是否现在进行卸载?" IDYES keep IDNO none
      keep:
        ExecWait 'C:\Program Files\Kingsoft\KSafe\uninst.exe'
      none:
        Quit
        no_run:
    SectionEnd

    ;以下为注册表检测方式,两种方式可以选其一,不过,推荐使用注册表检测方式。
    Section "卸载金山卫士2"
    ReadRegStr $R2 HKLM "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\金山卫士" "UninstallString"
      StrCmp $R2 "" NO YES
        YES:
        MessageBox MB_ICONQuESTION|MB_YESNO "安装程序检测到 金山卫士 正在运行,您必须将其卸载才能进行下一步安装,是否现在进行卸载?" IDYES keep IDNO none
      keep:
        ExecWait $R2
      none:
        Quit
        NO:
    SectionEnd
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2018-11-9 07:57
  • 签到天数: 67 天

    [LV.6]常住居民II

    97

    主题

    441

    帖子

    5045

    积分

    积分
    5045
    发表于 2018-9-9 17:11:29 | 显示全部楼层
    FindProcDLL插件无法检测到64位进程,可以考虑换用killer插件。
    http://www.flighty.cn/html/bushu/20160524_393.html
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    1

    主题

    5

    帖子

    21

    积分

    积分
    21
     楼主| 发表于 2018-9-10 09:05:52 | 显示全部楼层
    flighty 发表于 2018-9-9 17:11
    FindProcDLL插件无法检测到64位进程,可以考虑换用killer插件。
    http://www.flighty.cn/html/bushu/2016052 ...

    谢谢,此方法可行
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    Archiver|手机版|小黑屋|联系我们|NSIS中文论坛    

    GMT+8, 2018-12-19 05:56 , Processed in 0.025311 second(s), 16 queries , MemCache On.

    Powered by Discuz!X3.3

    Copyright © 2015-2018 NSIS中文论坛

    快速回复 返回顶部 返回列表