在VB中可以用SendKeys 或 SendMessage 发送消息 但如果对象的Hwnd为0,我该怎么发送 如发送ESC键
解决方案 »
- vb程序实现excel数据库的链接进行读写
- 帮忙看看怎么可以读取的到这个网址的网页数据?
- 关于ado 的问题,提示"对象打开时,不允许操作"
- 想在IE中做一个右键实现表单自动填写,如何来写这个控件呢
- 高手来看一下::打包棘手问题!!!
- 实现类似Windows自动隐藏任务栏的功能,如状态栏或控件的实现自动隐藏等!!!!请您写一下注释!!!急急急!!!在线等
- 看看这代码,怎么定义RESOURCEUSAGE_CONTAINER变量?
- 请问各位大侠IUnknown是什么意思,如何用法? 在线等待!
- 怎么样得到一个窗口的正确类名?????
- 用VBA的字典功能,为什么对应的key内容都是一样呢?
- VB程序如何使用“打开方式”获得文件内容?
- 发现webbrowser的一个奇怪问题,大伙来看看!
///那是你没有正确获取到对象的HWND
发送按键用sendkeys就可以了,关键是你的程序不能转移输入焦点
我和获取前台窗体句柄API 获取Ctrl + Alt + Del 后出现的窗体 hwnd 确实为0
而且窗体标题栏也为空
而且窗体标题栏也为空是任务管理器吗?//hwnd不可能获取错误
对不对,你用spy++看看就知道了
顺便问一下,你打算做什么呢?
继续请教
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Integer, ByVal lParam As Long) As Long
Const sc_close = 2
Private Sub Timer1_Timer() DoEvents
Dim SysFormHwnd As Long
SysFormHwnd = FindWindow(vbNullString, "Windows 任务管理器")
Caption = SysFormHwnd
SendMessage SysFormHwnd, sc_close, 0, 0
End Sub注: Timer1.Interval = 1
Option Explicit
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Integer, ByVal lParam As Long) As Long
Private Const WM_CLOSE = &H10
Private Sub Timer1_Timer()DoEventsDim SysFormHwnd As LongSysFormHwnd = FindWindow(vbNullString, "Windows 任务管理器")Caption = SysFormHwnd
SendMessage SysFormHwnd, WM_CLOSE, 0, 0End Sub
Private Sub Form_Load()
Dim s As String
s = Environ("windir")
s = s + "\system32\taskmgr.exe"
Open s For Random Lock Read As #1
End SubPrivate Sub Form_Unload(Cancel As Integer)
Close #1
End Sub
不知道 taskmgr.exe 是个什么文件 继续请教