窗体代码:
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function SetTimer Lib "user32" (ByVal hwnd As Long, ByVal nIDEvent As Long, ByVal uElapse As Long, ByVal lpTimerFunc As Long) As Long
Private Declare Function KillTimer Lib "user32" (ByVal hwnd As Long, ByVal nIDEvent As Long) As Long
Dim lngTimerID As Long
Dim hwnds As Long
Private Sub Command1_Click()
hwnds = FindWindow(vbNullString, "Program manager")
lngTimerID = SetTimer(hwnds, 0, 2000, AddressOf TimerProc)
If lngTimerID > 0 Then
MsgBox "启用定时器成功"
Else
MsgBox "启用定时器失败"
End If
End Sub
Private Sub Command2_Click()
KillTimer hwnds, lngTimerID
End Sub
模块代码:
Function TimerProc()
MsgBox Now
End Function
错误了
你的意思是说,SetTimer 只能是本窗体吗? 那里面的句柄不能设置其他进程吗
追答可以是其它程序,创你的程序启动时,指定的那个程序应该已开启,否则就是启用失败
追问hwnds = FindWindow(vbNullString, "Program manager")
就个就是系统进程,是已经开启的。那为何现在设置出错?
"Program manager"不是进程的名字,而是这个程序的标题栏的名字