国内服务器
亚洲服务器
欧洲服务器
北美洲服务器
南美洲服务器
大洋洲服务器
非洲服务器

首页>>IDC资讯

Win32程序在启动时怎么激活前一个启动程序的窗口

发表时间:2022-05-31 09:01:25

本文主要介绍Win32程序启动时如何激活上一个启动程序的窗口,具有一定的参考价值。有兴趣的朋友可以参考一下。希望你看完这篇文章后收获很大。让桂哥网络带你去了解一下。

UWP计划是与生俱来的。当然,新的API (10.0.17134)也提供了多实例功能。然而,传统的Win32程序一定要自己控制单个实例。

激活之前进程的窗口

我们可以通过进程名称找到先前启动的进程实例,如果找到,激活它的窗口。

[STAThread]

staticvoidMain(字符串[]参数)

{

varcurrent=进程。GetCurrentProcess();

varprocess=Process。GetProcessesByName(当前。ProcessName)。FirstOrDefault(x=x.Id!=当前。id);

if(process!=null)

{

varhwnd=进程。MainWindowHandle

ShowWindow(hwnd,9);

返回;

}

//启动自己的主窗口。这部分代码省略了。

}

[DllImport('user32.dll')]

privatesticexternintshowwindow(IntPtrhwnd,uintnCmdShow);你一定认为9很奇怪,它是许多不同nCmdShow的值:

使.减少(或缩小)到最小量

达到最大值

恢复

此外,找到的窗口此时可能不活动。例如,在Windows 10中,此窗口可能在另一个桌面上。然后我们需要添加额外的代码来显示它。

在前一个显示窗口之后,再次调用SetForegroundWindow将其激活到前面。如果它在另一个桌面上,它会切换到相应的桌面。

[DllImport('USER32。DLL')]

publicationstatexternboolsetforegroundwindow(IntPtrhWnd);

varhwnd=进程。MainWindowHandle

ShowWindow(hwnd,9);

SetForegroundWindow(hwnd);找到并激活窗口

以上方法适用于普通主窗口。但是,当窗口不是流程的主窗口,或者ShowInTaskBar设置为false时,就不会生效(此时窗口句柄会发生变化)。

因此,我们需要通过其他方式找到窗口。

[STAThread]

staticvoidMain(字符串[]参数)

{

Varhwnd=FindWindow(null,“该窗口的标题栏文本”);

if(hwnd!=IntPtr。零)

{

ShowWindow(hwnd,9);

返回;

}

//启动自己的主窗口。这部分代码省略了。

}

[DllImport('user32.dll ',CharSet=CharSet。Unicode)]

publicationstatexternintptrfindwindow(stringlpClassName,stringpwindowname);感谢您仔细阅读本文。希望桂哥网络分享的文章《Win32程序启动时如何激活上一个启动程序的窗口》对大家有所帮助。也希望大家支持桂哥网络,关注桂哥网络,更多相关知识等着你去学习!


上一篇 下一篇
最新文章

如何提高云服务器的安全系数

香港独立IP空间有什么优势

香港空间影响百度收录吗

为啥要租用美国VPS

VPS的缺点有哪些

香港vps作用在哪里

VPS的优点有哪些

外贸网站为啥选择美国vps

VPS能建多少个网站

VPS要如何选择位置

相关文章

香港云主机的ftp怎么架设

ChatGPT收费版详解:每个月134元告别卡顿,不要钱版仍然可用(chatgpt 收费吗)

sdwan组网软件:sdwan组网采用硬件或者软件好?

国外分支如何加速访问国内总部办公系统?

日本服务器托管服务质量对照:选择最可靠的提供商

云终端服务器租用如何选择配置

ChatGPT发音指南:如何正确发音ChatGPT?

如何加速访问德国服务器?

SEO实行流程揭秘:五步打造高排名网站

2024年最受欢迎的美国服务器品牌推荐

X

截屏,微信识别二维码

微信号:muhuanidc

(点击微信号复制,添加好友)

打开微信

微信号已复制,请打开微信添加咨询详情!