C#自定义操作窗口forms焦点问题

背景:我使用Visual Studio安装项目将C#应用程序之一部署到客户端Windows服务器。 在安装应用程序时,我需要在服务器中设置计划任务。为此,我在安装项目中使用了自定义操作function。 我所做的是创build一个带有input框和“确定”button的窗体,一旦用户input值并点击“确定”button,任务将被创build。 我在“ Custom Action InstallCommit步骤中添加了此自Custom Action

问题 :一切工作正常,但是当从节目创build的窗口,它失去了焦点,即使我用showDialog方法来显示窗体。 所以总是主设置窗口会激活,用户在后台看不到popup窗口(见附图)。但是我可以点击popup窗口并激活它。 我也试过用SetActiveWindow方法,但是目前为止没有很好的结果。

简单的我需要的是激活popup窗口,直到用户操作(默认showDialog行为)。 所以在这里我正在寻找任何帮助。 在这里输入图像说明

Solutions Collecting From Web of "C#自定义操作窗口forms焦点问题"

如果您想在MSI部署期间使用自定义UI获取用户输入,最好的方法是创建.wid扩展文件。 这是您在MSI安装期间看到的UI文件的类型( 您选择安装路径等 )。 虽然Visual Studio不具备创建这些UI文件的功能,但您可以使用Microsoft工具来创建这些文件。 最好的工具之一是Orac

  • Orac.exe
  • 如何使用Orca数据库编辑器来编辑Windows安装程序文件

一旦你创建了UI文件,你必须把文件放在C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\Tools\Deployment\VsdDialogs\1033MSI选择默认的UI文件的地方

之后,您应该能够选择您的自定义用户界面,并在安装周期的任何阶段(安装,安装,后安装等)注入它。 然后,您可以将用户输入的值作为安装程序类的参数传递给文本字段。 然后,您可以使用上下文参数来读取安装程序类中的值。

 string value = Context.Parameters["ParameterName"];