您好,欢迎访问一九零五行业门户网

调用user32.dll显示其他窗口

1 /// 该函数设置由不同线程产生的窗口的显示状态 2 /// </summary> 3 /// <param name=hwnd>窗口句柄</param> 4 /// <param name=cmdshow>指定窗口如何显示。查看允许值列表,请查阅showwlndow函数的说明部分</param> 5 /// <returns>如果函数原来可见,返回值为非零;如果函数原来被隐藏,返回值为零</returns> 6 [dllimport(user32.dll)] 7 private static extern bool showwindowasync(intptr hwnd, int cmdshow); 8 /// <summary> 9 /// 该函数将创建指定窗口的线程设置到前台,并且激活该窗口。键盘输入转向该窗口,并为用户改各种可视的记号。10 /// 系统给创建前台窗口的线程分配的权限稍高于其他线程。 11 /// </summary>12 /// <param name=hwnd>将被激活并被调入前台的窗口句柄</param>13 /// <returns>如果窗口设入了前台,返回值为非零;如果窗口未被设入前台,返回值为零</returns>14 [dllimport(user32.dll)]15 private static extern bool setforegroundwindow(intptr hwnd);16 17 private void bringtofront(intptr hwnd)18 {19 //process currentprocess = process.getcurrentprocess();20 //process process = process.get(id);21 //if (process != null)22 //{23 // showwindowasync(process.mainwindowhandle, 1);//显示24 // setforegroundwindow(process.mainwindowhandle);//当到最前端25 //}26 process[] processes = process.getprocesses();// getprocessesbyname(currentprocess.processname);27 foreach (process process in processes)28 {29 //process.start();30 //if (process.id != currentprocess.id)31 //{32 // if (assembly.getexecutingassembly().location.replace(/, \\)33 //<span style=white-space:pre> </span> == currentprocess.mainmodule.filename)34 // {35 // return process;36 // }37 if (process.mainwindowhandle.tostring() == 0)38 {39 continue;40 }41 if (process.mainwindowhandle == hwnd)42 {43 showwindowasync(process.mainwindowhandle, 1);//显示44 setforegroundwindow(process.mainwindowhandle);//当到最前端45 }46 //}47 }48 }
以上就是调用user32.dll显示其他窗口的详细内容。
其它类似信息

推荐信息