无法得到窗口的句柄
下面的代码可以用来判断记事本窗口是否可见,如果可见的话,出力出口为“OK”,否则“NG”可是我的问题是,如果在程序执行的时候记事本没有打开的情况下,
var_GetROProperty = Window("Notepad").GetROProperty("hwnd")
这句话就会报错,也就无法得到窗口的句柄了,也就无法判断这个窗口是否可见
大家有没有好的办法啊
Extern.Declare micHwnd,"IsWindowVisible","user32.dll" , "IsWindowVisible" ,micHwnd
var_GetROProperty = Window("Notepad").GetROProperty("hwnd")
If Extern.IsWindowVisible(var_GetROProperty) Then
msgbox "is ok"
else
msgbox "NG"
End If 我有个方法就是用代码打开“Task Manager”
用循环在里面查找有没有Notepad.exe
判断1:如果没有的话,就启动一个新的进程,继续作下面的操作
判断2:如果存在的情况下,继续作下面的操作
这样做是可以实现的,但是我觉得笨笨的,肯定还有别的办法的 Extern.Declare micHwnd,"IsWindowVisible","user32.dll" , "IsWindowVisible" ,micHwnd
if Window("Notepad").exist(2) then
var_GetROProperty = Window("Notepad").GetROProperty("hwnd")
If Extern.IsWindowVisible(var_GetROProperty) Then
msgbox "is ok"
else
msgbox "NG"
End If
End if
这样可以吗? Dim boolFlag
strComputer = "."
Set wbemServices = GetObject("winmgmts:\\" & strComputer )
Set wbemObjectSet = wbemServices.InstancesOf("Win32_Process")
For Each process In wbemObjectSet
If InStr(1, process.Name, "notepad.exe", vbTextCompare) <> 0 Then
MsgBox "is ok"
boolFlag = True
Exit For
End If
Next
If Not(boolFlag) Then
MsgBox "NG"
End If 晕,哪个给我弄的头像。。
页:
[1]