WIX:如何在卸载时显示一个复选框,如果选中该复选框,将触发自定义操作? - c#

我正在使用WIX,并且要在卸载过程中显示默认选中的复选框(例如,删除与应用相关的文件)
并且如果选中,将触发自定义操作,该操作将删除一些与应用程序相关的文件夹。
我的要求是:

卸载应用程序时默认选中的复选框。
仅在选中复选框的情况下,才会在卸载时触发的自定义操作。
将要删除的文件夹的位置传递给自定义操作;我知道可以使用Property元素完成此操作,但我无法做到这一点。

参考方案

如果您要为产品的安装程序运送MSI,并注册要由控制面板卸载的MSI,则无法覆盖“卸载”按钮以显示任何自定义对话框。默认情况下,Windows将调用“ msiexec / x ”来卸载产品。此命令将使用“基本” UI运行MSI,并跳过所有对话框。

我能想到的几个选择:
在您的MSI中设置ARPNOREMOVE = 1,这样用户只能从控制面板运行“更改”或“修改”安装。这样,您就可以显示自定义对话框。
将MSI包裹在引导程序中(例如WiX的刻录程序),以便引导程序可以处理“控制面板”中的卸载过程。

在硬件级别模拟按键-Windows - java

我正在寻找一种语言或库,以使我可以尽可能地模拟按键,而无需实际按下按键。(我对按键级别的具体衡量标准是,当我的计算机已经在运行按键侦听器(例如MouseKey和StickyKeys)时,它是否会产生与物理按键相同的输出。)我已经尝试了许多模拟按键的方法。Java AWT库,Java win32api,python win32com sendKeys,pyth…

Windows Service增加CPU消耗 - c#

在我的工作中,我负责使用C#2003编写的六个Windows服务。每个服务都包含一个计时器,该计时器每分钟左右触发一次,大部分工作都在该计时器上进行。我的问题是,随着这些服务的运行,即使没有任何有意义的工作要做,它们也会在循环的每次迭代中消耗越来越多的CPU时间(即,它们只是闲着,浏览数据库)做某事)。当它们启动时,每个服务平均使用4个CPU的(大约)2-3…

Windows Media Player如何处理监视器的刷新率? - c#

我正在C#/ WinForms中编写动画应用程序(请参见this question)。基本上,我应用程序中的动画是平滑的,但显示出撕裂效果;当我拍摄相同的动画并将其渲染为AVI文件并使用Windows Media Player播放时,该动画完全没有显示撕裂效果。我知道WMP不会更改帧速率,因为动画与音乐同步。我假设WMP使用DirectX或其他知道监视器刷新…

Windows 8 Metro应用程序的图表 - c#

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely …

如何在Universal Windows App中使用BackgroundMediaPlayer播放内部声音 - c#

我在C#中创建一个计时器。计时器结束后,用户将收到通知。如果我的应用程序被暂停,我会使用ToastNotificationManager安排通知,并在Toast XML中将声音设置为内部声音,例如:<audio src='ms-winsoundevent:Notification.Looping.Alarm10' loop=…