【问题标题】:How to run a batch file during Uninstallation using NSIS?如何在使用 NSIS 卸载期间运行批处理文件?
【发布时间】:2014-01-07 06:31:56
【问题描述】:

我创建了一个桌面应用程序,它基本上在用户的计算机中进行一些扫描。我已经使用 NSIS 创建了设置。一切正常。

即使是卸载部分也能正常工作。但是出于好奇,我想在卸载部分添加一个功能。一旦用户卸载应用程序,我想要那个。应用程序及其文件应该从用户的电脑中删除(我已经完成了那部分)。接下来我要做的是将用户重定向到我的网站,并说明感谢他使用该应用程序的消息。

为此,我创建了一个批处理文件,其中包含网站 url 以及查询字符串中的用户名(他在注册期间提供)。我正在使用 C# 创建批处理文件。

如何在卸载过程中运行批处理文件,以便它可以让我访问网站。

示例url如下 www.application.com\username='abc'

我试图从这个URL 获得帮助,但无法解决我的问题。

任何帮助将不胜感激。

感谢和问候

S。维克内什瓦

【问题讨论】:

  • 如果您向我们展示批处理文件代码以及如何在 NSIS 中执行它会有所帮助...
  • 批处理文件只包含在卸载过程中需要运行的url。它包含@echo off start mywebsite.com/deactivation/user_verify.php?username='12345'
  • 除此之外,批处理文件中没有任何内容。
  • start http://example.com 应该可以工作,但 ExecShell 也应该工作,使用批处理文件只是额外的工作......
  • @Anders 我在卸载部分写了 ExecShell "cmd.exe" "$INSTDIR\test.bat" 但不知何故它不起作用。

标签: c# windows batch-file nsis


【解决方案1】:

我自己花了几分钟终于完成了这个过程。

我使用 C# 创建了一个批处理文件。 批处理文件由以下行组成

@echo 关闭 开始http://application.com\username='abc' @echo 关闭

现在我需要在卸载过程中运行这个批处理文件。

所以我尝试使用 ExecShell,然后 Exec 最终使用 ExecWait

以下是代码

Section "Uninstall"

ExecWait '"$INSTDIR\test.bat"'

;some code

SectionEnd

希望这是有用的。

谢谢

【讨论】:

  • 为此使用批处理文件是愚蠢的,start 和 ExecShell 在内部都使用 ShellExecute。如果需要,您可以在 NSIS 中扩展 %username%。
【解决方案2】:

打开网址不需要使用批处理文件,只需使用ExecShell...

【讨论】:

    猜你喜欢
    • 2016-02-20
    • 2019-06-14
    • 1970-01-01
    • 2016-12-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-10
    • 2016-03-16
    相关资源
    最近更新 更多