说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

VB判断应用程序是否仍在运行并设置焦点

HTML文档下载 WORD文档下载 PDF文档下载
VB判断应用程序是否仍在运行并设置焦点


下面的程序将利用VB程序的一个独有的特点:隐藏的父窗口。每一个VB应用程序都有一个隐藏的父窗口。该父窗口的标题(Caption) 就是你在“生成EXE”文件时所提供的应用程序的名称。 这就是为什么当你按下Ctl+Alt+Del查看时,任务列表中显示的总是应用程序的名称,而不是程序主窗口窗口的标题。

既然父窗口是隐藏的,那我们就没有必要去改变父窗口的标题。结果是,几乎所有的VB程序都可以用下面的小程序。

请注意,有一类程序不能应用下面这段小程序:如果你在“生成EXE”文件时,将应用程序的名称设置成为零字符,那么这段程序就无效 了。这是因为很多很多窗口都将其标题设为零字符。

另一个需要注意的地方就是:该程序用到了App.Previnstance来检查程序的另一个实例正在运行。这样做可以提高程序的效率, 但代价是你不能同时运行两个或以上的要检查的程序。如果你想这样做的话,请将有App.Previnstance的那一行语句注释掉。

请将下面的代码放置在模块中:

Declare Function GetWindowWord% Lib "User" (ByVal hWnd%, ByVal nIndex%)
Declare Function GetWindowText% Lib "User" (ByVal hWnd%, ByVal lpString$, ByVal aint%)
Declare Function GetWindowTextLength% Lib "User" (ByVal hWnd%)
Declare Function GetWindow% Lib "User" (ByVal hWnd%, ByVal wCmd%)
Declare Function SetFocusAPI% Lib "User" Alias "SetFocus" (ByVal hWnd%)

' get window word constants
Const GWW_HWNDPARENT = (-8)

' get window constants
Const GW_HWNDFIRST = 0
Const GW_HWNDNEXT = 2

'------------------------------------------------------------------------------------
' 函数: Get_Other_Instance:布尔型, 参数( inhwnd Inputonly, outhwnd Outputonly)
' 目的: 获得要检测程序的另一个实例的窗口句柄。
'
' 描述: 同其它例子不同的是:该程序能检测哪些在运行时改变主窗口标题的程序,如MS WORD
' 实现的方法是利用VB程序独有的特点,即:每一个VB程序在运行时都会产生一个隐藏的父窗口。该父窗口的标题就是
' 你在生成EXE文件时所输入的程序名。VB程序员很少改变这些字符,并且用户看不到该父窗口。
'
' 输入:inhwnd -- 被叫窗口的窗口句柄
' 输出:如果窗口被找到则为真,否则为假。
' outhwnd -- 0 或设为另一个窗体的父窗口的hwnd
'
' ------------------------------------------------------------------------------------
'
Public Function get_other_instance (ByVal inhwnd As Integer, outhwnd As Integer) As Integer
Dim parent%, nlen%, ptext$, nexthwnd%, wtext$


get_other_instance = False
outhwnd = 0

If Not app.PrevInstance Then Exit Function

parent% = GetWindowWord(inhwnd, GWW_HWNDPARENT)
nlen% = GetWindowTextLength(parent%) + 2
ptext$ = Space$(nlen%)
nlen% = GetWindowText(parent%, ptext$, nlen%)
ptext$ = Left$(ptext$, nlen%)
nexthwnd% = GetWindow(parent%, GW_HWNDFIRST) ' get the first window in the window list


Do While nexthwnd% > 0
nlen% = GetWindowTextLength(nexthwnd%) + 2
wtext$ = Space$(nlen%)
nlen% = GetWindowText(nexthwnd%, wtext$, nlen%)
wtext$ = Left$(wtext$, nlen%)

If wtext$ = ptext$ And nexthwnd% <> parent% Then
get_other_instance = True
outhwnd = nexthwnd%
Exit Do
End If

nexthwnd% = GetWindow(nexthwnd%, GW_HWNDNEXT)

Loop

End Function

将下述代码放在窗体的Load事件中

Sub Form_Load()
Dim otherhwnd%

If Get_Other_Instance(Hwnd, otherhwnd%) then
MsgBox "Application is already running. Switching to existing Application"
SetFocusAPI otherhwnd%
End
End If

End Sub

查看GetWindow,GetWindowWord,GetWindowText,GetWindowTextLength,SetFocusAPI的用法

30美元一小时,数据科学家的收入是否太低? 选择Go语言的12个理由 动鱼数码携三款大作参战Unity游戏及应用大赛 从Google、Apple、Dropbox、Twitter和Square学到的管理哲学 软件开发就像炒股,关键看你怎么选股票! iOS 7.1正式版:新增CarPlay连接功能、完美支持iPhone 4 【OSTC讲师专访】马全一:Docker,Hadoop的竞争者来了! 福布斯:全球那些富可敌国的科技大佬们 抢工作、争资源,如此聪明的AI你拿什么阻止? iUI:移动Web应用开发必备的开源框架 支持iOS 7.1!苹果发布Xcode 5.1更新 视频云将成为2014年乐视新的发力点 3月12日:万维网迎来理念诞生25周年 《近匠》云适配CEO陈本峰:跨屏移动,曲线一样救国 Intel陈荣坤:赢取移动市场的几个先决条件 而立之年,开发者在害怕什么? 首席工程师揭秘:LinkedIn大数据后台是如何运作的 年交易额1800亿美元,揭秘PayPal成功背后的三大热门技术 微软妥协Android?向该平台推开源Office 365 SDK 中国云计算大会PPT集萃(一):众多名家分享技术挑战与行业趋势 速度是现在的10000倍,出自物理学家之手的新型电脑 逗你玩?淘宝开放平台从4月1起开始全面收费 出现编程疲劳?千万别纠结 “编程竞赛界王子”教你更好的招聘程序员 SA:三星全球智能电视市场份额达26% Cocos2d-x 3.0分语言包发布 最新进展即将披露 友盟:社会化分享成为APP开发“标准配置” 从“简单”的封面设计剖析Netflix背后的数据哲学 与Linus Torvalds“并列”,虚拟化天才程序员法布里斯贝拉 让超级计算机和数据中心“飞”,Intel推800Gbps神器MXC 【OSTC讲师专访】Debian开发者李道兵:平静地理解开源 请举例说明:接口是怎样实现多重继承的? 听说最近由于IT行业不景气,程序员的工资缩水了?是真的么? 这样写有什么不对?? delphi的dll库返回后调用程序出错!加了一行无关代码却正常!求教各位大狭! 塔尼包姆出了不1本计算机结构的书,还有1本MICROSOFT的 Microsoft Windows 用户界面开发 请问是否很好 Access初学者问一 再次请教一个sql排序问题,一定给分。 请问:程序中对WM_PAINT,WM_CTLCOLOR,WM_ERASEBKGND三个消息处理的顺序是怎样的? 这个月生意只有上个月的1/5,怎么回事? 我女朋友说最爱她的人不是我,这意味着什么? 工资里导入上月数据怎么实现 谁有复读王(fyfdw2001)的注册码? 经过一段时间的努力,我做出一套电话语音邮件系统,可以用电话和手机来收发EMAIL,有意者请与我联系 xuyaoliang@263.net 请救救我吧!有谁能告诉我中程的分数怎么查! 如何解决数据窗口显示照片(此照片在数据库的一个字段里)的问题? 请问如何获取硬盘和光驱的型号信息 谁有复读王(fyfdw2001)的注册码??????? n_up的问题。如何在另一列插入计算字段? 有没有深圳的mm,一起过圣诞好吗? far怎么用啊? 关于临时表的共享问题?? 请大家介绍一些学习C/C++的好网站,只要进者就给分。 "他妈的,又打歪了!" 我在作登录是出现了"runtime error"错误,详情见内 3台机子如何共享一个adsl上网?? 如何把一应用配置成一NT服务 出学的菜鸟提问 找回addin:资源编辑器 怎样开发阅读工具软件 acm文件格式 数据库安装程序的问题。 大家看看这道题怎么解 100M的网线怎么做?用的是双脚线!!! 大峡,我把一个Acess的 .mdb文件设置了密码,但是密码我忘了,哪里有软件下载,可以解决我打开的问题呢?谢谢 关于 请问怎么样实现象”金山毒霸“控制中心一样的界面? 请问如何在TCOMBOBOX中输入后自动查询到相似的ITEM上面去 文件对话框中怎么过滤文件 wang wei come on 一个ODBC数据源可以被多个应用程序共同使用吗? 经过一段时间本人修改了sendmail、POP3、IMAP4的源代码,把用户认证该为了数据库,数据库采用的MYSQL、并虚拟了整个系统用户来存放邮件内容,有意者请与我联系xuyaoliang@263.net java 板圣诞大餐 有人会吗?不重做系统:如何修改win98se的安装时的序列号? 如何在DELPHI中调用中断? 其实就是一个信仰的问题。想想我们建国的时候不是一样抛什么什么洒什么什么吗?大家也都是无怨无悔。听懂就瞎听。听不懂就当我放了个屁!我可是什么都不信!就信我自己。哈! sql语句问题!! 大虾请进! 目前我还在用JAVA MAIL+EJB开发企业邮件系统有兴趣的可以加盟,并提供好的意见。谢谢 [送分族]今天圣诞也! 请问怎样实现“金山毒霸”控制中心的界面效果? Javamail api 中如何实现用户认证! 我在win98下odbc连接sql server 数据库服务器时需要配置什么东西? 怎么求太阳直射的经度 帮忙汉译英:做自己喜欢做的事enjoy doing myself love to do这句话语法对么?谢谢指点!因为我们打算开发现代社群的个人爱好,现在只是一个初步的想法。以后我们的口号就可以说:do it!I enjoy do i 英语翻译翻译:你的房子在马路的哪一边?在右手边 夏至日 太阳直射点经度怎么根据图象计算夏至日的太阳直射点经度?请说明具体情况. 遇到已知一个地区的经度与当地时间,求另一地是该怎么算?本人在这方面经常丢分,明天就考了,麻烦帮帮忙. 英语翻译In a typical plasmid transformation experiment there will be an extremely heterogeneous mixture of DNA molecules with only a small number consisting of a single vector molecule linked to a single DNA fragment.When E.coli is used for trans 如何判断太阳直射点经度如题 同一经度的时刻相同吗. 英语翻译翻译成英文:乌鲁木齐市天山区青年路17号.请高人按照英文地址格式翻译,翻译:天山区公安分局 我喜欢你 你喜欢我吗?怎么办. 英语翻译审美的差异.审美作为普遍的社会文化现象,是人类文明长期发展的结果.文化背景的不同,决定了审美情趣的差异.审美的差异决定了译者要深入把握源语电影作品的思想美学内容,用目 英语翻译从父母的角度看,我是他们深爱女儿;从老师的角度看,我是认真的学生;从朋友的角度看,我是知心的朋友;从陷入困境的人的角度看,我是提供帮助的人:从社会的角度看,我是合法 我喜欢你你也喜欢我,为什么还要他只会盯着你看,有意无意老是盯着你看,在你面前会示好,可以没有提过和爱情有关的是他太胆小吗 英语翻译我们已经发货,在香港出了点问题,不过已经解决,大概需要5天就能到英国了,这是你快递单号,你可以在xxx进行查询,给你照成的困扰我们感到很抱歉 汽车汉译英汽车轮胎磨损是普遍存在的问题,本文就轮胎磨损原因进行了分析,并提出了预防轮胎磨损的一些措施. 英语翻译只要是我喜欢的,就是最好的. 由地球公转产生的地理现象是( )1四季变化2昼夜长短变化3日月落4不同经度的地方出现时间差异(可多选3是日月星辰东升西落 求解释 汉译英:他买了辆中国汽车.是 Chinese car 还是怎么译文合适 英语翻译1.工程部自销售部得到项目信息后,核实项目各方面情况.了解用户有无特殊功能要求:有:应该在公司搭建模拟环境,新开发功能的测试工作尽量在公司完成;无:也应当将所有涉及 英语翻译这个故事讲述了普通人的生活 某地正午时分北京时间为12时16分,该地的经度是?A.124°E B.116°E C.104°E D.136°E 英语翻译参加俱乐部和学生社团是件好事,不仅能与更多的人打交道,还能丰富学生们的社会生活.(Tranlation:Participating in clubs and students’ associations is a good thing,not noly communicating with more people,but 英语翻译In January,2000,I was diagnosed(诊断)with cancer.Life in hospital has been made a lot more bearable by the phone conversations I have with Dr.Kaplan.His first wife died of cancer,so he knows what I am going through .He always encouraged 英语翻译外来词是一种语言的词汇传入到另一种不同语言环境下形成的词汇,且被另一种语言接受并使用的词汇.它也可以被称为借词.总言之,抽象外来词指的是语言使用者适应从源语到他们的 汉译英:我不能保证每个人都喜欢我 英语翻译恋爱不是坚固的溜冰场.恋爱是一片结了冰的湖面.我们是可以在上面手牵着手,轻飘飘的嬉戏,绕着我们自己的圈圈,只是不会有人来警告我们,冰会在那一 秒溶化、裂开,恋爱中的我们 英语翻译人为因素是一门应用科学,以操作设备的人为研究中心.应用人为因素有和于优化人的行为表现并减少人为差错.人为因素体现了行为科学和社会科学、工程学和心理学的方法和原则.人 英语翻译由于托盘高度太高,不能装运,所以货代将一个托盘换成2个托盘在上海仓库.请参考附件照片. 【求高手】:道德经第一章英语翻译,不要复制粘贴党, 我想问一下同经度不同纬度的两个地方是不是两点时间同时,同时看到日出? 急!帮忙翻译吧.不要百度在线翻译的.在线等.condition of the injury.It was late, wandering in the choice of two individuals directly over.I cried, somehow, banging on the keyboard don't know stem what, listen to the 通过地球上的经度和纬度,人们可以确定一个地点在地球上的位置 判断 汉译英在线翻译 英语翻译Studies show that people are watching more TV today than they did twenty years ago 如何辨别经度纬度 四季更替现象是由于地球【 】所产生的,不同地方时间差异是由于地球【 】所产生的 英语翻译 在地图上如何来判断南北纬度?纬度范围?经度变化规律? 地球上时间差异的规律是什么? 数学几何题应该怎么添加辅助线?有些题目有辅助线一连答案就出来了``但是一不懂怎么连可就很麻烦了``应该怎么添加辅助线呢?有什么规律吗? 请帮忙用英语翻译以下这段话,请不要机器自译昨天我们在吊运主机排气阀时突然机舱行车不能进行升降控制,检查行车控制箱发现控制箱内电源开关3F1发生跳电,我们对其进行复位,但还是马上 地球的自转,产生了什么跟替,使地球上的不同地方出现了什么的差异. 求数学几何的辅助线做法遇到什么样的图形,一般做什么样的辅助线能解决问题? 知道太阳高度角怎么求经度? 地球上时间差异有什么规律 做数学几何题如何添加辅助线? 太阳高度与经度的关系已知东经90度的正午太阳高度.如何得到同一时刻东经75度的太阳高度?这个是不是还和纬度有关系?有现成公式么? 英语翻译1面对来袭色狼,大可气定神闲,面带微笑,以静制动.2待那禽兽近身后,弓腰,膝盖微曲,收紧肩颈肌肉.3然后双脚用力蹬起,身体伸直,用地球人最硬的头骨对那畜牲的下颚进行撞击,由于下 关于数学几何辅助线问题是不是不能直接作垂线,而是只能连接一条线段要自己证明出来是垂直的.有没有什么情况是例外的举个例子,在圆O中,做一条垂线垂直于弦AB。这样的说法可不可以 某地北京时间13时太阳高度达到最大,如何计算出此地经度? 若某地正午时,北京时间为12;40,那么该地经度应为多少?我的思路是:12:40-12:00=40分钟,因为经度相差1°,地方时相差4分钟,并且东早西迟,所以40除以4为10度,该地经度该为116°-10°=106°, 数学怎么出有辅助线的几何题? 太阳高度与经度差的问题为什么1度太阳高度对应的经度要大于1 打个比方:A、B位于同纬度,当A地直射时,B地的太阳高度是75度,问AB两地的经度差大于15还是小于15?当然,按照上面的那个公式来 某地正午时,北京时间为12点40分,这地的经度是多少 中译英:你们的发型杀死我了You guys hair kill me. 中文翻译成英文,不要机器的关于接下来开发的模具贵司是否有新的消息?期盼您的回复! 某日正午时,北京时间为12时16分,则该地经度为? 汉译英 英语值日报告 我的发型内容:今天我们来讨论我的头发.最近,我的头发被剪短了.对此我身边的人有不同的看法.我妈妈说我变精神了.我的同桌认为我的发型将会成为趋势.但是,我前面 同一时刻,不同( )的地方具有不同的( )时.经度相差( )度,时间相差1同一时刻,不同( )的地方具有不同的( )时.经度相差( )度,时间相差1小时. 英语翻译NEITHER PARTY SHALL BE HELD RESPONSIBLE FOR FAILURE OR DELAY TO PERFORM ALL OF ANY PART OF THIS CONTRACT DUE TO FLOOD,FIRE,EARTHQUAKE,SNOWSTORM,TYPHOON,DROUGHT AIRSTORM,HURRICANE,WAR,GOVERNMENT PROHIBITION,OR ANY OTHER EVENTS THAT ARE UNF
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn