文档章节

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

北风其凉
 北风其凉
发布于 2017/09/08 16:03
字数 325
阅读 73
收藏 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

© 著作权归作者所有

共有 人打赏支持
北风其凉

北风其凉

粉丝 116
博文 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
windows 10常用快捷键汇总

win10快捷键大全大家可以来了解一下,今天小编带来了win10常用快捷键,很多朋友喜欢使用快捷键来操作电脑,那么Windows10系统有哪些新的快捷键呢 • 贴靠窗口:Win +左/右> Win +上/下>窗口可...

三极行者
2018/06/26
0
0
Mac OS X 窗口操作快捷键

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

xzs1913
2012/07/17
0
0

没有更多内容

加载失败,请刷新页面

加载更多

数据库篇多表操作

第1章 多表操作 实际开发中,一个项目通常需要很多张表才能完成。例如:一个商城项目就需要分类表(category)、商品表(products)、订单表(orders)等多张表。且这些表的数据之间存在一定的关系...

stars永恒
今天
2
0
nginx日志自动切割

1.日志配置(Nginx 日志) access.log----记录哪些用户,哪些页面以及用户浏览器,IP等访问信息;error.log------记录服务器错误的日志 #配置日志存储路径:location / {      a...

em_aaron
昨天
3
0
java 反射

基本概念 RTTI,即Run-Time Type Identification,运行时类型识别。RTTI能在运行时就能够自动识别每个编译时已知的类型。   要想理解反射的原理,首先要了解什么是类型信息。Java让我们在运...

细节探索者
昨天
2
0
推荐转载连接

https://www.cnblogs.com/ysocean/p/7409779.html#_label0

小橙子的曼曼
昨天
3
0
雷军亲自打造的套餐了解下:用多少付多少

12月28日消息,小米科技创始人兼CEO雷军微博表示,小米移动任我行套餐方案,原则上就是明明白白消费,用多少付多少,不用不花钱!上网、电话和短信都是一毛钱,上网0.1元/M,电话0.1元/分钟,...

linuxCool
昨天
6
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部