文档章节

C#:将另一个应用程序的主窗口移至屏幕最前

北风其凉
 北风其凉
发布于 2017/09/08 16:03
字数 325
阅读 52
收藏 0

使用WindowsAPI函数SwitchToThisWindow,可以将指定窗口移动到屏幕最前。

如果要将另一个应用程序的窗口移动到最前,只需要找到该窗口的句柄,再调用SwitchToThisWindow函数即可。可通过遍历进程的方式找到该窗口主窗体的句柄。

建立一个C#写的Windows窗体应用程序,里面放一个TextBox用来写进程名,一个Button用来触发窗口置顶操作。

代码如下:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Diagnostics;
using System.Drawing;
using System.Linq;
using System.Runtime.InteropServices;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace TopWindowTest
{
    public partial class FormMain : Form
    {
        public FormMain()
        {
            InitializeComponent();
        }

        [DllImport("user32.dll", CharSet = CharSet.Auto)]
        public static extern bool SwitchToThisWindow(IntPtr hWnd, bool fAltTab);

        /// <summary>
        /// 置顶
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btnTop_Click(object sender, EventArgs e)
        {
            //找到指定的进程
            string processName = this.txtProcessName.Text;
            bool hasFound = false;
            Process processInfo = null;
            foreach (Process process in Process.GetProcesses())
            {
                if (process.ProcessName == processName)
                {
                    processInfo = process;
                    hasFound = true;
                    break;
                }
            }
            if (!hasFound)
            {
                MessageBox.Show("未找到指定进程");
                return;
            }

            //移动到最前
            SwitchToThisWindow(processInfo.MainWindowHandle, true);
        }
    }
}

程序运行结果如下,在文本框中输入calc后点击置顶按钮,计算器程序便会被移至屏幕最前:

DEMO程序下载地址:https://pan.baidu.com/s/1mimkCIG

END

© 著作权归作者所有

共有 人打赏支持
北风其凉

北风其凉

粉丝 115
博文 498
码字总数 463468
作品 4
朝阳
程序员
私信 提问
mac系统快捷键大全详细介绍

SimonXun
2016/10/17
6
0
mac 实用快捷键

参考自:Mac快捷键大全 https://jingyan.baidu.com/article/08b6a591aac09614a909224f.html 基本的快捷键: Command是Mac里最重要的修饰键,在大多数情况下相当于Windows下的Ctrl。所以以下最...

phpervip
2017/10/25
0
0
mac快捷操作

外部调用QQ聊天窗口:http://wpa.qq.com/msgrd?v=3&uin=624664181&site=qq&menu=yes 地址中624664181为对方QQ号,表示与QQ号为624664181人进行临时会话,实现QQ在线咨询(手机或PC都可以)。 ...

xiejunbo
2016/03/27
94
0
Mac OS X 窗口操作快捷键

Finder 部分 组合键 快捷键 Command-A 选中最前面的 Finder 窗口中的所有项(如果未打开任何窗口则选中桌面内容) Shift-Command-C 打开“电脑”窗口 Option-Command-F 导航到已打开的 Spot...

xzs1913
2012/07/17
0
0
Xamarin 学习笔记 - Page(页面)

本文翻译自CodeProject文章:https://www.codeproject.com/Articles/1226447/Xamarin-Notes-Xamarin-Forms-Pages 转载请注明出处:葡萄城官网,葡萄城为开发者提供专业的开发工具、解决方案和...

葡萄城技术团队
08/02
0
0

没有更多内容

加载失败,请刷新页面

加载更多

React和Redux的连接react-redux

通过Redux文档来了解react-redux,在一段时间的实践后准备翻一翻源代码,顺便做些相关的总结。我看的代码的npm版本为v4.0.0,也就是说使用的React版本是0.14.x。 react-redux提供两个关键模块...

前端攻城老湿
24分钟前
0
0
1、Mybatis连接池Context.xml配置

注意: (1)mybatis 3.2 之前 通过 set get 方法 获取相关属性。之后通过属性姓名获取相关关联。 (2)mybatis 映射 优先为 sql 语句中的别名与实体类的属性进行映射。 (3)jndi Java用于调...

KingFightingAn
39分钟前
0
0
Android 界面漩涡扭曲动效实现

背景:之前偶然看到优酷有类似的页面切换动画效果。于是自己也打算来实现下这样的效果。 动效说明:点击界面中的任意位置,界面以点击位置作为中心点,开始以漩涡状态,扭曲,收缩。直到消失...

Carlyle_Lee
50分钟前
2
0
聊聊我怎么系统学习Linux技能并快速提高的

聊聊我怎么系统学习Linux技能并快速提高的 随着电子信息科技时代的发展,学会使用计算机在我们的生活中成为了必不可少的一项技能。而作为计算机中的三大操作系统之一的Linux更是饱受计算机爱...

linuxCool
今天
4
0
Android/Java 获取一个byte[]的真实编码,用于解决乱码问题

来源地址:https://blog.csdn.net/qq_31384551/article/details/81627840 一个byte数组,byte[] buf,是由一个字符串转换来的,如何判断字符串使用的是什么编码? Mozilla的一个组件提供了相应...

她叫我小渝
今天
9
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部