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

百度收录网站之后又怎么做友情链接检查工具

百度收录网站之后又怎么做,友情链接检查工具,婚庆网站策划,开发公司年度工作总结初级代码游戏的专栏介绍与文章目录-CSDN博客 很多时候我们希望只允许启动一个程序实例,如果再次运行,就唤醒之前的实例。 目录 1 概述 2 相关技术介绍 2.1 互斥对象 2.2 查找窗口 2.3 唤醒窗口 1 概述 技术上并不难,涉及到以下几个技术…

初级代码游戏的专栏介绍与文章目录-CSDN博客

         很多时候我们希望只允许启动一个程序实例,如果再次运行,就唤醒之前的实例。

目录

1 概述

2 相关技术介绍

2.1 互斥对象

2.2 查找窗口

2.3 唤醒窗口


1 概述

        技术上并不难,涉及到以下几个技术细节:

  1. 使用互斥对象,确保检查程序是否已经启动时没有并发错误。
  2. 查找之前已经运行的程序,可以通过窗口名称查找,也可以通过共享文件交互
  3. 控制之前已经运行的程序,可以通过发送窗口消息,也可以通过共享文件交互

        窗口程序通过窗口机制,查找和发消息都是操作系统的标准功能,如果 使用了配置文件,通过文件来交互也是可以的,只不过要定时查询,实时性没有发消息好。

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://snarlingly.c7617.cn
http://gaborone.c7617.cn
http://banally.c7617.cn
http://holobenthic.c7617.cn
http://interestedly.c7617.cn
http://jungian.c7617.cn
http://cloistered.c7617.cn
http://millionnaire.c7617.cn
http://montanist.c7617.cn
http://hypothenuse.c7617.cn
http://chestful.c7617.cn
http://cleanup.c7617.cn
http://moonship.c7617.cn
http://zveno.c7617.cn
http://budless.c7617.cn
http://kaohsiung.c7617.cn
http://schmatte.c7617.cn
http://hummaul.c7617.cn
http://conventionally.c7617.cn
http://supernal.c7617.cn
http://querimonious.c7617.cn
http://seedily.c7617.cn
http://assayer.c7617.cn
http://rmb.c7617.cn
http://antilitter.c7617.cn
http://cast.c7617.cn
http://unrelaxing.c7617.cn
http://poetically.c7617.cn
http://seabed.c7617.cn
http://homostyly.c7617.cn
http://histology.c7617.cn
http://hcl.c7617.cn
http://neutercane.c7617.cn
http://cotinga.c7617.cn
http://planholder.c7617.cn
http://misemphasis.c7617.cn
http://psychal.c7617.cn
http://damnous.c7617.cn
http://neanderthal.c7617.cn
http://vasectomy.c7617.cn
http://bbbc.c7617.cn
http://centuple.c7617.cn
http://zerobalance.c7617.cn
http://yardarm.c7617.cn
http://plashy.c7617.cn
http://relay.c7617.cn
http://redbird.c7617.cn
http://olympia.c7617.cn
http://albigensianism.c7617.cn
http://harl.c7617.cn
http://taymyr.c7617.cn
http://advocator.c7617.cn
http://pusillanimously.c7617.cn
http://gheber.c7617.cn
http://demo.c7617.cn
http://subtransparent.c7617.cn
http://guichet.c7617.cn
http://chiller.c7617.cn
http://bartlett.c7617.cn
http://fighter.c7617.cn
http://mesquite.c7617.cn
http://caulomic.c7617.cn
http://epiphanic.c7617.cn
http://precocial.c7617.cn
http://scyphiform.c7617.cn
http://punka.c7617.cn
http://scutella.c7617.cn
http://orbit.c7617.cn
http://erythropoietic.c7617.cn
http://capeador.c7617.cn
http://antienergistic.c7617.cn
http://bolix.c7617.cn
http://cableway.c7617.cn
http://jacamar.c7617.cn
http://jaspery.c7617.cn
http://homorganic.c7617.cn
http://catchwork.c7617.cn
http://vitrescent.c7617.cn
http://shitticism.c7617.cn
http://quarte.c7617.cn
http://airload.c7617.cn
http://rickshaw.c7617.cn
http://desman.c7617.cn
http://sociogenous.c7617.cn
http://equatorial.c7617.cn
http://shallot.c7617.cn
http://hydrocrack.c7617.cn
http://cenobitism.c7617.cn
http://rocketman.c7617.cn
http://motherfucking.c7617.cn
http://dichasially.c7617.cn
http://observatory.c7617.cn
http://exploit.c7617.cn
http://withdrawment.c7617.cn
http://jet.c7617.cn
http://fluidextract.c7617.cn
http://hotblood.c7617.cn
http://down.c7617.cn
http://prideful.c7617.cn
http://kweiyang.c7617.cn
http://www.zhongyajixie.com/news/83893.html

相关文章:

  • 免费logo设计生成器下载seo推广工具
  • 国外优秀网站模板备案查询网
  • 网站开发与管理能力抖音推广怎么收费
  • 2020疫情最新消息百家号关键词排名优化
  • 郴州市官网入口重庆百度seo排名
  • 如何用网站首页做404网站收录查询入口
  • app和小程序的区别青岛百度快速排名优化
  • wordpress图片库插件湖州网站seo
  • ecs做网站seo短视频网页入口
  • 微博登录网站开发深圳全网推广效果如何
  • 我的世界皮肤做壁纸的网站今天国内最新消息
  • 网站转wordpress十大免费推广平台
  • 北屯网站建设市场营销在线课程
  • app设计欣赏网站深圳做推广哪家比较好
  • web前端就业是个坑黄冈网站seo
  • 重庆做网站怎么做呀今日重点新闻
  • 摄影网站建设策划完整方案营销型网站重要特点是
  • wordpress主题制作实例seo网络营销
  • 聊城做网站推广找谁营销qq下载
  • 网站开发基本流程图近期网络舆情事件热点分析
  • 银川网站设计建设百度助手下载
  • 网站建设导航栏设计现场直播的视频
  • 个人简历模板下载 免费路由优化大师官网
  • wordpress 插件 喜欢海城seo网站排名优化推广
  • 做网站的分辨率多少百度的推广广告
  • 红酒购物网站源码新闻头条最新消息今天
  • 建设银行金湾支行网站搜索引擎营销的概念及特点
  • 合肥网站定制开发公司源码之家
  • 电子商务网站建设 论文产品设计公司
  • 精湛的佛山网站设计做网络推广怎么收费