首页 > 编程语言 >使用WPF 当程序已打开时第二次打开程序直接弹出第一次打开的程序

使用WPF 当程序已打开时第二次打开程序直接弹出第一次打开的程序

时间:2024-06-11 16:46:00浏览次数:27  
标签: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;
          }
      }
  }

然后就是调用:

  string strProcessName = System.Diagnostics.Process.GetCurrentProcess().ProcessName;
  //检查进程是否已经启动,已经启动则退出程序,显示已启动的程序。
  if (System.Diagnostics.Process.GetProcessesByName(strProcessName).Length > 1)
  {
      RaiseOtherProcess();
      Application.Current.Shutdown();
      return;
  }

 

我是直接写在Application_Startup 中
来源:https://www.cnblogs.com/webenh/p/17639905.html

 

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

相关文章

  • 基于springboot+vue.js+uniapp小程序的社区团购系统附带文章源码部署视频讲解等
    文章目录前言详细视频演示具体实现截图技术栈后端框架SpringBoot前端框架Vue持久层框架MyBaits系统测试系统测试目的系统功能测试系统测试结论为什么选择我代码参考数据库参考源码获取前言......
  • xps格式文件怎么打开,能转换成pdf吗?
    当我们接收到一个没法打开的文件,应该说是很少接触,电脑也没有安装可以打开的程序时,想要阅览这个文件该怎么办呢?可以转换成自己可以看的文件吗?格式转换这个操作其实挺常见的,毕竟很多时候,不是经常使用的文件,我们电脑没必要安装太多的应用程序,像这种一次两次偶然的情况,直接转换格式看......
  • 基于Vue+Node.js的高校学业预警系统+10551(免费领源码)可做计算机毕业设计JAVA、PHP、爬
    NodeJS高校学业预警系统摘 要随着科学技术的飞速发展,社会的方方面面、各行各业都在努力与现代的先进技术接轨,通过科技手段来提高自身的优势,教育行业当然也不能排除在外。高校学业预警系统是以实际运用为开发背景,运用软件工程开发方法,采用Node.JS技术构建的一个管理系统。......
  • IDEA 忽然无法打开某个特定文件
    背景:IDEA中双击打开一个.py文件时,弹出一个文件类型的弹窗(没注意是什么,估计是不小心按到了什么快捷键),当时随便选的Text,结果不知道为什么,这个文件无法在IDEA中打开(之前都正常)由于对idea的filetypes设定不了解,所以一个菜单一个菜单往下看,因为同后缀的其它文件都可以打开,但是就这个......
  • WPF阻止窗体被系统缩放,使用显示器DPI
    WPF默认是跟随系统DPI变化(缩放与布局)而缩放窗体的;微软把它称为默认DPI感知,当DPI发生变化时WPF感知到后缩放窗体,介绍链接:设置进程的默认DPI感知(Windows)-Win32apps|MicrosoftLearn如果我们不希望窗体被缩放,而是让窗体使用显示器DPI该怎么办呢?首先修改app.manifest,如......
  • 发现XWPFDocument写入Word文档时的小BUG:两天的探索与解决之旅
    引言最近在使用XWPFDocument生成Word文档时,遇到一个错误:“未将对象引用设置到对象的实例”。这个平常很容易找到原因的问题却困扰了我两天,最终发现问题出在设置段落时赋值了空值。本文将详细记录这个问题的原因及解决方法,希望能对遇到相同问题的开发者有所帮助。第一天:问题的发......
  • 手机照片怎么恢复?10个照片恢复应用程序
      如今,安卓智能手机为您提供了一系列出色的摄像头。其中一些有四个摄像头,而另一些有两个。现在,智能手机摄像头的强大功能足以与单反相机竞争,这促使我们拍摄越来越多的照片。捕捉图片可能是一项简单的任务,但管理图片却不是。10个照片恢复应用程序在这篇文章中,我们将分享一......
  • 盲盒小程序推广与运营策略的挑战
    随着盲盒经济的兴起,越来越多的商家开始关注并尝试开发盲盒小程序。然而,在推广和运营盲盒小程序的过程中,我们也不可避免地会遇到一些挑战。下面,我将就用户获取、留存以及活跃度提升等方面,探讨这些挑战及可能的应对策略。一、用户获取的挑战在推广盲盒小程序时,如何吸引更多的......
  • 设计一个程序,作为进程A,进程A专门创建一个信号量集,要求信号量集中有1个信号量,对信号量
    设计一个程序,作为进程A,进程A专门创建一个信号量集,要求信号量集中有1个信号量,对信号量集合中的信号量进行设置,要求集合中的信号量的初值为1,然后再设计2个程序,分别是进程B和进程C,要求进程B和进程C使用进程A创建的信号量集合中的信号量实现互斥访问。提示:进程A、进程B、进程C需要使......
  • pytqt5及python下程序打包发布
    关于写的软件如何打包发布,总结一下找到的方式,方便后期使用。首先,你需要安装pyinstaller。pipinstallpyinstaller如果你打包的文件想要是多个文件,这样打包后的文件是在你输入路径下的文件,包含多个数据,你需要exe文件在dist文件夹下pyinstaller--name="key_gongdan""......