当前位置: 首页 > news >正文

泰安手机网站建设电话网站建设 动态添加内容

泰安手机网站建设电话,网站建设 动态添加内容,网站建设备案流程图,长沙百度网站优化初级代码游戏的专栏介绍与文章目录-CSDN博客 很多时候我们希望只允许启动一个程序实例#xff0c;如果再次运行#xff0c;就唤醒之前的实例。 目录 1 概述 2 相关技术介绍 2.1 互斥对象 2.2 查找窗口 2.3 唤醒窗口 1 概述 技术上并不难#xff0c;涉及到以下几个技术…初级代码游戏的专栏介绍与文章目录-CSDN博客 很多时候我们希望只允许启动一个程序实例如果再次运行就唤醒之前的实例。 目录 1 概述 2 相关技术介绍 2.1 互斥对象 2.2 查找窗口 2.3 唤醒窗口 1 概述 技术上并不难涉及到以下几个技术细节 使用互斥对象确保检查程序是否已经启动时没有并发错误。查找之前已经运行的程序可以通过窗口名称查找也可以通过共享文件交互控制之前已经运行的程序可以通过发送窗口消息也可以通过共享文件交互 窗口程序通过窗口机制查找和发消息都是操作系统的标准功能如果 使用了配置文件通过文件来交互也是可以的只不过要定时查询实时性没有发消息好。 2 相关技术介绍 下面介绍相关代码 2.1 互斥对象 HANDLE hOneInstance;hOneInstance ::CreateMutex(NULL, FALSE, L自定义的名字);if (GetLastError() ERROR_ALREADY_EXISTS){//在这里处理已经存在的情形//查找窗口、唤醒窗口然后退出}//正常启动 互斥对象是系统对象本例中我们并不需要更多功能只要检测创建是否成功即可。因为互斥对象所有句柄被释放后就会被销毁程序不退出下一个程序创建会失败程序退出后下一个就可以成功创建。对于我们的目的而言锁定互斥对象是不必要的。 CreateMutes原型如下 HANDLE CreateMutexA([in, optional] LPSECURITY_ATTRIBUTES lpMutexAttributes,[in] BOOL bInitialOwner,[in, optional] LPCSTR lpName ); 第一个参数涉及到权限可以设置为NULL第二个参数指示创建完成是不是要立即锁定第三个参数是名字可以不设置设置的话不能和已经存在的内核对象同名所有种类的内核对象共享同一个名字空间。 2.2 查找窗口 HWND hWnd FindWindow(NULL, TEXT(窗口标题));if (IsWindow(hWnd)){//遍历处理所有同名窗口while(IsWindow(hWnd)){//在这里处理窗口//查找下一个hWnd FindWindowEx(NULL,hWnd,NULL,TEXT(窗口标题));}}查找窗口的关键点是窗口标题必须正确所以最好把窗口标题单独定义出来并在窗口初始化里面专门设定一次而且不要在程序里面修改窗口标题。这其实没法从技术上预防程序的任何地方都可以随意修改窗口标题如果没法掌控全部源代码那就只好走文件控制的方式了。 文件控制就是把窗口句柄写入文件每次启动去文件里面读读不到就是还没有程序实例在运行。 这里写成循环是因为理论上可能有相同标题的窗口需要这两个函数配合才能遍历所有同名窗口。 HWND FindWindowA([in, optional] LPCSTR lpClassName,[in, optional] LPCSTR lpWindowName ); FindWindow用窗口类名和/或窗口标题查找窗口大部情况下我们只用窗口标题来查找。 HWND FindWindowExA([in, optional] HWND hWndParent,[in, optional] HWND hWndChildAfter,[in, optional] LPCSTR lpszClass,[in, optional] LPCSTR lpszWindow ); FindWindowEx查找子窗口。  2.3 唤醒窗口 // 显示if(!::ShowWindow(hWnd, SW_NORMAL)){//出错} // 激活if(!::SetForegroundWindow(hWnd)){//出错}这两句代码嵌入到之前查找窗口的循环里面即可将之前的实例的窗口显示到前端。 BOOL SetForegroundWindow([in] HWND hWnd ); 这个函数的效果是把窗口放到前端并激活输入焦点将设置到这个窗口中。 如果想让窗口的标题栏闪烁用这个API即可 BOOL FlashWindow([in] HWND hWnd,[in] BOOL bInvert ); 第二个参数为FALSE将保持之前的活动或非活动状态为TRUE则切换状态。这个调用只闪烁一次想多闪烁几次要用定时器来控制不要用Sleep会导致界面僵死。 这里是文档结束
http://www.pierceye.com/news/510742/

相关文章:

  • 如何做网站资讯淘宝官网登录入口
  • 江苏建设工程招标网官方网站免费网址怎么申请注册
  • 河池网站优化网络宣传渠道有哪些
  • 外贸建立网站怎么做42区 网站开发指南
  • wordpress多本小说站出售延安做网站
  • 北京快速网站建设找工作一般上什么网站比较好
  • 做外贸必须有公司网站么下沙网站制作
  • 西安学校网站建设网站搜索工具
  • 小型网站的建设方案龙江人社app二维码图片
  • 西宁微网站建设wordpress更新文章post.php错误
  • 网络营销网站平台有哪些众希网站建设
  • 网站建设营销的技巧公司招聘网站排行榜
  • 长治网站建设收费多少农村自建房设计图 户型图
  • 广州网站建设 骏域网站建设做搜狗网站优化首页软
  • 广州网站设计软件简约大方网站
  • 网站建设与管理专业好吗做国际贸易如何建网站
  • 小说百度风云榜上海seo网络推广渠道
  • 建设局网站打不开是什么原因wordpress客户端插件
  • 农业 网站源码网站制作产品优化
  • 企业公司网站制作建设怎么区分营销型网站
  • 如何选择顺德网站建设网站开发源代码
  • 北京城乡建设部网站网站页面是自己做还是使用模板
  • 网新企业网站管理系统厦门好景科技做网站
  • 手机网站开发语言深圳网站建设培训
  • wordpress做的视听网站怎么用ftp清空网站
  • 网站建设能干什么网页设计代码模板人物介绍
  • 桂阳网站设计做p2p投资理财的网站
  • 做学术论文的网站从化专业做网站
  • 从化网站制作狮山公司网站建设
  • 网站开发验证码图片不显示php 自动做网站点击量