首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > VFP >

请教用VF检测到一个程序关闭啦

2012-11-07 
请问用VF检测到一个程序关闭啦就是这样的,点击一个按钮,运行一个程序a。当这个运行的程序a自动关闭的时候,

请问用VF检测到一个程序关闭啦
就是这样的,点击一个按钮,运行一个程序a。当这个运行的程序a自动关闭的时候,会自动弹出一个提示框,告知a已经关闭啦,。

[解决办法]
用简单枚举进程方法如:

LOCAL oWbemLocator,oWMIService, oItems, oItem
oWbemLocator = CREATEOBJECT("WbemScripting.SWbemLocator")
oWMIService = oWbemLocator.ConnectServer(".", "root/cimv2")
oItems = oWMIService.ExecQuery("SELECT * FROM Win32_Process")
FOR EACH oItem IN oItems
MAJC=LOWER(oItem.Name)
IF MAJC='某某进程.exe'
.......
ENDIF
ENDFOR

如果该程序有固定标题,也可以这样
[解决办法]
不好意思,按错了键:

DECLARE INTEGER FindWindow IN user32 STRING lpClassName,STRING lpWindowName

IF FindWindow(NULL,'某某标题')=0
.........

endif


[解决办法]

C/C++ code
Declare integer CreateToolhelp32Snapshot in win32api integer,integerDeclare integer Process32First in win32api integer,string @Declare integer Process32Next in win32api integer,string @Declare integer CloseHandle in win32api integerCLEARlnHand = 0lnHand = CreateToolhelp32Snapshot(3,0)If lnHand>0    lctitle=SPACE(256)    If Process32First(lnHand,@lctitle) > 0        tln = 0        Do while Process32Next(lnHand,@lctitle)> 0            m.lnval=SUBSTR(lctitle,37,256)            m.lnval=left(m.lnval,At(Chr(0),m.lnval) - 1)            If Lower(m.lnval) == 'excel.exe'                tln = tln + 1                If tln == 1                    Exit                Endif            Endif        Enddo        If tln == 0            Messagebox("程序已经被关闭",4096,"Message")            CloseHandle(lnHand)            Clear Dlls         Else            ****没有关闭        Endif    Endif    CloseHandle(lnHand)Endif
[解决办法]
ox=CreateObject("WScript.Shell")
ox.Run("notepad.exe",1,1)&& 第3个参数1,表示一直等待被调用的程序。notepad.exe 为调用的记事本程序
MessageBox('程序已关闭',64,'信息提示')
Release ox

热点排行