首页 > 编程语言 >WPF 设置第二次打开程序直接弹出第一次打开的程序

WPF 设置第二次打开程序直接弹出第一次打开的程序

时间:2023-08-18 11:25:31浏览次数:31  
标签:IntPtr Process hWnd 程序 private static WPF 打开

激活已经打开窗口函数
[DllImport("user32.dll")]
private static extern bool SetForegroundWindow(IntPtr hWnd);
[DllImport("user32.dll")]
private static extern bool ShowWindowAsync(IntPtr hWnd, int nCmdShow);
[DllImport("user32.dll")]
private static extern bool IsIconic(IntPtr hWnd);
private const int SW_RESTORE = 9;
/// <summary>
/// 激活已打开窗口
/// </summary>
public static void RaiseOtherProcess()
{
Process proc = Process.GetCurrentProcess();
foreach (Process otherProc in
Process.GetProcessesByName(Process.GetCurrentProcess().ProcessName))
{
if (proc.Id != otherProc.Id)
{
IntPtr hWnd = otherProc.MainWindowHandle;
if (IsIconic(hWnd))
{
ShowWindowAsync(hWnd, 9);
}
SetForegroundWindow(hWnd);
break;
}
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
启动入口调用示例
//获取启动进程名
string strProcessName = System.Diagnostics.Process.GetCurrentProcess().ProcessName;
//检查进程是否已经启动,已经启动则退出程序,显示已启动的程序。
if (System.Diagnostics.Process.GetProcessesByName(strProcessName).Length > 1)
{
RaiseOtherProcess();
Application.Current.Shutdown();
return;
}

标签:IntPtr,Process,hWnd,程序,private,static,WPF,打开
From: https://www.cnblogs.com/webenh/p/17639905.html

相关文章

  • 程序代做服务:解放您的创意,加速项目实现
    导言:在数字化时代,程序代做服务成为了企业和个人的利器,它不仅可以帮助您释放创意,还能够将繁琐的技术任务交给专业团队,从而加速项目的实现。本文将深入探讨程序代做服务的优势、应用领域以及如何选择合适的合作伙伴。一、程序代做服务的优势专业技术支持: 通过选择专业的代做团......
  • C#的winform如何嵌套另一个exe程序
    这篇文章主要介绍了C#的winform如何嵌套另一个exe程序问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教 −目录C#winform嵌套另一个exe程序第一种第二种总结C#winform嵌套另一个exe程序一共有二种方法,也不知道作者从哪里复制来的,......
  • c# - 如何在圆角 WPF 窗体中创建圆角矩形?
    我正在WPF中创建一个应用程序,我想要圆角。收到。现在窗体是无边框的,我正在尝试创建一个圆角矩形并将其放在顶部,使其看起来像Windows应用程序的顶部栏。我做不到。这是我的代码:<BorderCornerRadius="50,0,50,0"BorderBrush="Black"BorderThickness="2"Background="......
  • WPF利用依赖属性和命令编写自定义控件
    以实例讲解(大部分讲解在代码中)1,新建一个WPF项目,添加一个用户控件之后在用户控件里面添加几个控件用作测试,12345678910111213141516171819<UserControlx:Class="SelfControlDenpendy.SelfControl"             xmlns="http://schem......
  • WPF使用WPFMediaKit/AForge调用摄像头示例 .net core 8.0 也支持
    调用摄像头使我们经常会用到的一个功能,可以根据摄像头捕捉到的图像进行分析处理来做很多的东西,比如电子档案、图像识别、AI分析等等。本示例中主要介绍Nuget最常用的两个调用摄像头的轮子WPFMediaKit、AForge环境:VS2019,.NetFramework472WPF  (.netcore8.0 也支持)WPFMe......
  • C# wpf 使用GDI+实现截屏
    wpf截屏系列第一章使用GDI+实现截屏(本章)第二章使用DockPanel制作截屏框第三章实现截屏框实时截屏第四章使用ffmpeg命令行实现录屏文章目录wpf截屏系列前言一、引用System.Drawing方法一、引用系统程序集方法二、NuGet获取跨平台Drawing二、实现截屏1.简单截屏2.绘制鼠标3.转......
  • C# wpf 实现截屏框实时截屏功能
    wpf截屏系列第一章使用GDI+实现截屏第二章使用DockPanel制作截屏框第三章实现截屏框实时截屏(本章)第四章使用ffmpeg命令行实现录屏文章目录wpf截屏系列前言一、实现步骤1、获取截屏区域2、隐藏控件(1)问题(2)解决方法3、截屏二、完整代码三、效果预览总结前言在《C#wpf使用DockP......
  • 红帽计划改善RHEL的Linux引导加载程序
         据了解,红帽方面表示他们正在招收全职开发者来增强Fedora和RHEL的Linux引导加载程序体验。而GRUB和Linux引导加载程序通常不会受到太多人关注,从而大致不少用户倾向于“能用就行”,因而大多数Linux发行版更愿意隐藏GRUB菜单obghtysuew。有消息称,红帽有计划采取......
  • 使用.NET Framework进行Windows桌面应用程序开发
    当编写涉及使用.NETFramework进行Windows桌面应用程序开发的博客时,您可以涵盖从界面设计到用户交互和数据处理的各个方面。以下是一个简要的指南,您可以在博客中展开介绍,同时结合示例代码来说明。1.创建项目和界面设计项目创建:使用VisualStudio创建新的WindowsForms应用程序项......
  • 历时数月钻研推流/对比各种流媒体服务程序/PK总结
    1前言大量测试下来,网页显示视频流实时性从高到低依次是webrtc>ws-flv>flv>hls。播放器打开rtsp/rtmp视频流实时性由具体的播放器控制,比如缓存大小和缓存时间,是否音视频同步等。由于flv拉流同源地址最大支持6路同时播放,所以要想实时性高而且网页播放支持多路就选择ws-fl......