1

我想知道是否有任何方法可以设置通过 Process.Start 启动的 ClickOnce 部署应用程序的位置和大小。使用普通(.exe)应用程序没有问题,我可以这样做:

var externalAppProcess = Process.Start("calc");
var externalAppPtr = externalAppProcess.MainWindowHandle;

然后使用调用的 MoveWindow 设置位置、大小等内容。但是,当我启动 appref-ms 文件时,它运行没有任何问题,但我无法访问它的 MainWindowHandle,它说“进程已退出,所以所要求的信息不可用”。有任何想法吗?

4

1 回答 1

0

当您启动 *.appref-ms 时,rundll32 或 dfshim 进程将运行。它执行 ClickOnce 检查并最终启动 ClickOnce 部署的应用程序的可执行文件。

所以你可以尝试像这样找到主窗口句柄:

var processes = Process.GetProcessesByName("ClickOnceDeployedApp");
foreach (Process p in processes)
{
    IntPtr windowHandle = p.MainWindowHandle;

    // do something
}
于 2013-10-17T22:19:15.823 回答