我想实现一个shell上下文菜单“Open to Left / Right”,用户可以打开一个文件,重新定位新窗口以占据屏幕的左/右半部分。基本上我只需要调用Process.Start(fileName)
,然后获取进程的MainWindowHandle
,并将句柄传递给SetWindowPos
以设置窗口的位置。
但是某些应用程序(如Word)作为单例实例运行,因此Process.Start("new.docx")
只是将文件名传递给正在运行的实例,并返回null
,因此我无法获取窗口句柄做重新定位。
有解决方法吗?
Any approach (preferred written in C#) is welcome.
PS。我知道我可以使用EnumWindows
列出所有顶级窗口,让用户选择他喜欢哪一个重新定位。但这是另一种使用场景。我想在shell上下文菜单中实现该功能。