0

我有个问题。问题是我有另一个调用 ShowDialog() 方法的进程,我需要从另一个进程关闭此对话框,但我需要通过返回 DialogResult.OK 来关闭它。

因此,从我的 .net 程序(另一个进程)中,我想成功关闭它。我尝试使用winapi解决这个问题,尝试了EndDialog函数,但它返回错误ACCESS_DENIED。尝试使用钩子,但那些返回 error_no_token。

我需要这个来静默启动 msi 安装程序。我用 /qn 开关启动它,但是这个该死的安装程序嵌入了在任何情况下都显示对话框的操作。我尝试使用 sendmessage 功能关闭此窗口,但在这种情况下,安装程序说这是错误的,并回滚安装过程。我可以以编程方式填写所有值,然后单击对话框上的确定按钮,但它需要填写所有值,而且它们有很多,所以很耗时。这个对话框的目的是创建配置文件,我可以在安装后手动创建。

有没有办法完成这个任务?

4

3 回答 3

1

听起来您遇到的主要问题是围绕文本字段的验证进行最终运行。正如您所说,您稍后将编辑配置文件,只需在每个框中放置一些虚拟值,然后单击 OK 即可导致验证发生。

于 2010-11-03T14:48:32.930 回答
1

有时您需要更改糟糕的设计以消除执行艰巨任务的需要,而不是继续与系统作斗争。

UI 由一个进程拥有,除了自动化测试之外,只能由该进程或用户更改。

于 2010-11-03T15:14:01.013 回答
1

曾经有针对系统管理员的安装程序工具包,它们会在运行安装程序时监视注册表和文件系统,然后创建自定义 MSI 文件以自动化该过程。这可能是您的另一种方式。

于 2010-11-03T16:15:59.050 回答