调用user32.dll显示其他窗口
16lz
2021-01-22
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 }
更多相关文章
- 如何区分c# 前台和后台线程
- golang调用cmd命令时如何隐藏dos窗口
- SQL今日一题(11):窗口函数
- 从简单到复杂,一文带你搞懂滑动窗口在数组及字符串中的应用
- 有点难度,几道和「滑动窗口」有关的算法面试题
- 面试官,你再问我滑动窗口问题试试?我有解题模板,不怕!
- hive窗口函数/分析函数详细剖析
- 图书管理系统【部署开发环境、解决分类、图书、前台页面模块】
- Google地图信息窗口左箭头,右箭头传递TypeError:无法读取未定义的