我想知道是否有任何方法可以设置ClickOnce部署的应用程序的位置和大小,通过Process.Start启动。使用普通(.exe)应用程序没有问题,我可以这样做:
var externalAppProcess = Process.Start("calc");
var externalAppPtr = externalAppProcess.MainWindowHandle;
然后使用调用的MoveWindow来设置位置,大小等内容。但是,当我启动appref-ms文件时,它运行没有任何问题,但我无法访问其MainWindowHandle,它说“进程”已退出,因此无法获取所要求的信息“。有什么想法吗?
答案 0 :(得分:0)
当您启动* .appref-ms时,将运行rundll32或dfshim进程。它执行ClickOnce检查并最终启动ClickOnce部署应用程序的可执行文件。
所以你可以尝试找到这样的主窗口句柄:
var processes = Process.GetProcessesByName("ClickOnceDeployedApp");
foreach (Process p in processes)
{
IntPtr windowHandle = p.MainWindowHandle;
// do something
}