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

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的用法

福利!MDCC 2015 免费展位等你来申请! 《近匠》Gamegou:多些坚持,瞄准海外的小团队也有春天 细说JavaScript异步函数发展历程 YoMail创始人Albert Yang:我与Email交织的程序人生 TIOBE 2015年9月编程语言排行榜:时髦语言Rust进前50 50张999元限量特惠票!SDCC2015软件开发嘉年华 首批讲师名单公布 百度安全:XcodeGhost大爆发可能只是冰山一角 北京市计算中心云计算转型:缘定OpenStack MDCC 2015移动开发者大会 八大技术专场首批议题剧透 Apple TV指南:从零开始用Swift开发个tvOS应用 React Native、开源:MDCC平台与技术Android专场全揭秘! 相约MDCC 2015 首批免费展位破茧而出 MDCC 2015召开在即,平台与技术iOS专场大咖来了! 一个iOS开发者对tvOS SDK的初探 前Twitter iOS技术团队负责人:使用第三方库的四大准则 【SDCC讲师专访】巨杉数据库创始人兼CTO王涛:SequoiaDB为何要开源? 对话函数式编程语言Roy之父Brian Mckenna GitLab获400万美元A轮融资,GitLab 8.0将很快到来 【CTO讲堂】如何构建高可用和可伸缩的架构? 未来程序员会被机器取代吗? React Native实战(一):配置和起步 集聚MDCC 2015 免费展位第二波正式放出 【深入浅出Koa】入门知识,带你以现代化开发方式构建Web应用 升级到Node V4的七个理由 支持大量ES6特性 像写SQL一样编写Java数据应用 Swift 2.0实战:如何实现从非零下标遍历数组? 手把手教学:在iOS 8中使用Cocoapods 交互技术前沿与应用实战:MDCC虚拟现实专场议程揭晓 解密“攻城狮使用手册” 技术专家齐聚!MDCC 2015精彩日程全曝光 基于ActiveMQ的消息中间件系统 OneMM逻辑与物理架构设计详解 ★★★算法讨论:如何识别红眼和消除运动模糊★★★ 兄弟们,帮我啊!~ 紧急求助:请问如何在MFC程序中调用自己编写的C++类 请问谁有组卷的算法,急用,多谢! 急!!!关于FileSystemObject问题,在线等 求面积 鼠标在视图和用非模式对话框交互绘图 在.login中怎么设置汉字的位数? oracle9i的安装文件都有什么?望高之!急! 如何用window.open弹出一个屏幕居中的窗口? 大侠们,在线求word200文件密码破解,急!!!!!!!!!!! ccnet(苦海放歌) tdl982324(石井坚) ( ) wanghr100(灰豆宝宝.net) possible_Y(◎)(◎)←(这是眼镜,不要想歪了)请接分 ccnet(苦海放歌)yaoxuefeng(锋雨者)brainf(后街)请接分 配置节的type的第二个参数的含义 报表问题。 最近在找个网站管理系统,各位能否给个建议 windows2000的奇怪问题 关于如何自定义组件问题 有关windows 98自动重起问题。 ListBox问题 VFP8.0中的数组问题,高手和用过的人来看看! 数据库的移植问题? 重新开机时常常变成"大图标",怎样设置使WIN2K所有磁盘(c,d,e盘)上的所有文件夹和文件以"列表"显示,就是让"查看"->"列表"固定? oracle9i的安装文件都有什么?望高之!急! 哪位有没有SCJP培训的录音或其他教学的好东西阿 MSComm控件在设计时运行没问题,但打包后装到别的机子老是出现“没有注册类”,求救? delphi 做的数据库应用程序如何移植?? copysign怎么用啊? 如何将一个网页的所有链接均自动加为绝对链接? 技术与数学的问题 本人写了一个设置纸张方向和大小的函数,其中MyDevMode.dmPaperSize = psize '若vbPRPSA3 设置纸大小为A3,但在VB对象库中找不A2张对应值 tomcat4.1.24中的sevlet问题 我下载了linux的iso文件,可怎么安装啊!! 我想问一下,有关于计数器的相关的信息? 救急:是否可以在两个页面(两个单独打开得ie浏览器页面)传递参数,如何实现啊? JDBC相关的两个问题 Oracle8.1.6怎样连接SQL SERVER2000 ?(在线等待) inserted表问题 急!!!关于FileSystemObject问题,在线等 dll 编译问题 请教 请教关于iterator与container? 谁有mixerAPI的中文资料,如(mixerGetLineInfo)我需要弄懂原理(不需要MSDN) 请问“怎么样才能修改以有的flash文件”,拜托,在线等待 如何使相同的子窗口显示一个? ?请教高手有关Align的问题。 高手帮我谢谢注释~~高分相赠~~~~谢谢高手~~~~ 各位大牛们,小弟想请教大家对FlowMIS这个平台有多少了解,用此平台进行二次开发(企业信息系统)好不好。 SQL SERVER2000 怎样连接Oracle8.1.6(在线等待) C语言程序设计 如何在英文字符集的客户端访问服务器为中文的数据库? 那4M是不是让诺基亚给偷了?! a website前用什么介词? DN400排水管每小时流量DN400雨 水管每小时流量 都说吃四条腿的(牛羊猪)不如吃两条腿的(鸡鸭),两条腿的不如一条腿的(菌菇类),一条腿的不如没有腿的(鱼),那虾算哪一类? long shot歌词意思? 30厘米直径的排水管平行于地面,流量是多少? 初中数学概括,越详细越好. website前加什么介词 名字沛慧是什么含义 霍乱毒素B亚单位的主要用途? 外架与建筑之间间距 排水管渠的流量Q=Av(V =n-1R(2/3)I(1/2) )如何计算? 核仁在核糖体亚单位前体组装中的作用是什么? rm-225啥意思 ..某游泳池有两个排水管打开甲排水管时每小时排水70米³,需要40个小时排完;打开乙排水管时每小时某游泳池有两个排水管打开甲排水管时每小时排水70米³,需要40个小时排完;打开乙 越难越好 我才申请的 把分都给你 如图所示,质量相等的汽车甲和汽车乙以相同的速率沿同一水平弯道做匀速圆周运动,汽车甲在汽车以的外侧,样车沿半径方向受到的摩擦力分别为f甲和f乙,在下的说法中正确的是 《红楼梦》中人物有几个有含义的名字(谐音)比如甄士隐 就是 真事隐 贾雨村 就是假语村言的意思 其他的就不清楚了 1.求证:对于给定的等边三角形,三角形内任意一点到三边的距离和为定值2.在∠B的两边上分别取点A,C,过A作AD⊥BC于D,过C作CE⊥AB于E,若AB≥BC,CE≥AB,那么∠B等于多少度?3.直线AB,CD交与点O,OE平分 225 45 小时四条腿,中年两条腿,老年三条腿!打一动物 霍乱肠毒素的组成中,表达肠毒素的作用成分 是A亚单位还是A1呢? 汽车甲和汽车乙质量相等,以相等的速率沿同一水平弯道做匀速圆周运动,甲车在乙车的外侧.两车沿半径方向受到的摩擦力分别为f甲和f乙.以下说法正确的是A.f甲小于f乙 B.f甲等于f乙C.f甲 推荐风格与Long Shot相似的歌曲Long Shot是Kelly唱的,风格明快,求这种风格的歌曲. 朱自清在写《春》时,多处用了比喻,如写桃花、杏花、梨花,说它们“红的像火,粉的像霞,白的像雪;写…朱自清在写《春》时,多处用了比喻,如写桃花、杏花、梨花,说它们“红的像火,粉的像 根号225的意义是什么? 日环食的形成dvrfscyrv6v 根基造句 汽车沿一水平弯道做匀速圆周运动,沿半径方向受到摩擦力,为什么由静摩擦力提供向心力? 小学课本上只有日偏食,日全食,月偏食和月全食,唯独没有日偏食.请问,日环食是怎样形成的? 朱自清在写《春》时,多处用了比喻,写桃花,杏花,梨花时 It is all part of God's 日环食是是什么?怎样形成的?最好有图的, “火”还表示桃花——,“霞”还表示杏花——,“雪”还表示梨花——. 10^4×10^0÷10^-2 日环食是什么原理? 桃花,杏花,梨花都开了,红的像火,粉的像霞,白的像雪.这句话吧()比作(),说明花儿() 权限不足是啥意思?百度里回答问题还要求有什么权限吗?这是啥意思? “辛亥革命”的英语翻译是什么 朱自清中的《春》为什么只写“桃花、杏花、梨花”,而不写“荷花或菊花”?如果你是老师,你怎样回答这个问题? 权限狗什么意思 辛亥革命用英语怎么说 青蛙为什么长两条腿?而蝌蚪都有四条腿.. 权限是什么意思 荷兰为何被称为风车的故乡 初一时钟问题 His spacious apartment is furnished with ____ modern furniture. send的英文似嘛意思啊,! 没有四条腿的椅子叫什么?就是没有四条腿,可以在东北炕上用的.可以后依的. Distressed painted furniture 《背影》描写父亲爬月台运用的是白描的写法? 椅子为什么四条腿? 数学归纳法有分第一数学归纳法,逆向归纳法,螺旋归纳法,二重数学归纳法!(1)当n=1,2时,命题成立!(2)假设n=k且n=k+1,命题成立.可以推出n=k+2时成立,命题也成立!这种方法能证明对n为正整数时命 distance by long shot party背景音乐链接 杏花、桃花、梨花开花时间 part of it lies in a death that rapidly approaches求高人翻译下,并告诉下这句话的主语、谓语是什么? 关于红楼梦:秦钟为什么夭折复制粘贴的纯属应付~自己滚蛋... 描写桃花,杏花和梨花的句子描写桃花,杏花和梨花的句子,不要诗句,要段落 钟表上的数学1、在7点到8点之间,在什么时刻时针和分针互相重合?2、8点到9点之间,在什么时刻时针与分针的夹角是60度?(注:用方程解题)希望这方面的高手能给我解答!最好能说明一下原因 分析红楼梦中小红的形象写个100字吧,求你了,别太多 我的理想 作文 写关于素描的 沙特表态将与美国保持距离 美官员:这奥巴马敦促国会通过移民改革法 称有利日媒:五艘中国军舰穿过日本冲绳本岛与韩媒称韩高官暗示将引进美国“萨德”反奥斯卡影后赞与查尔斯王子跳舞比“亲热韩国法院:研究低估三星芯片厂对人体的马达加斯加总统选举开始 或有望解决该美研究称已婚者比单身汉更长寿 但容易男子用数百公斤大南瓜造船 划水距离创韩国前科技官员称福岛土壤污染可通过微俄外交官被指在美国招募间谍 美联邦调外交部:中印重申双方不将其军事能力用日民主党前干事长年内成立新团体 被疑日本拟在多个城市开设赌场 年收入可达美国十岁男孩弑父案即将宣判 孩子去处贝卢斯科尼女友否认系同性恋 索赔千万杭州市市管领导干部任前公示通告俄外交官被指在美国招募间谍 美联邦调法国研究员:想象力丰富者比较能拒绝眼韩军警在韩日争议岛演练登陆 旨在抵御伊核问题引美以分歧 美同意合法保留以第八届“汉语桥”世界中学生中文比赛华比达尔破荒绝杀主场龙 尤文提前4轮卫武汉中心城区公交情况调查:多措并举提2015河北首届露营文化节在石家庄举短评:为一线工人创新提供更多有利条件天津小伙辞职后用废旧零件造变形金刚女子手机充电被炸胸部烧焦 手机变手雷俞正声出席第十届两岸经贸文化论坛开幕台湾3女童14小时洗上万只碗 盼给妈西甲:C罗戴帽贝尔复出助攻 皇马3 壹基金援尼救灾物资陆续送达地震灾区西甲:梅西2射1传苏神戴帽内少建功 短评:为一线工人创新提供更多有利条件第十届两岸经贸文化论坛在上海举行朱立伦复旦之行帕克最佳一战仍完败保罗 GD若退他怎世乒赛-马龙状态全红4-1樊振东 张从“卖血”到“献血” “卖血村”里看新舰云集气如虹:五一节实拍东海舰队某第十届两岸经贸文化论坛在上海举行格里芬24+13+10三双成历史第4
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘