知识点
1,通过进程名获取到的主窗体句柄不一定是这个程序的主窗体
2,通过进程名获取到的进程不唯一
- var pros = Process.GetProcessesByName(name);
- hand = pros[0].MainWindowHandle;
3,通过Win32 API GetActiveWindow和SetActiveWindow 设置窗体激活不生效
- handle = Win32Api.GetActiveWindow(); //无效
-
- Win32Api.SetActiveWindow(handle); //无效
4,通过Win32 API GetForegroundWindow和SetForegroundWindow 设置窗体激活有效
- handle = Win32Api.GetForegroundWindow(); //有效
-
- Win32Api.SetForegroundWindow(handle); //有效
5,通过 Win32 API FindWindow 可根据窗体标题获取窗体句柄,
要求一定要有标题,并且有可能重复,窗体类没有深入研究
var hand = Win32Api.FindWindow(null, title)