获得一程序窗口句柄 想用setwindowpos使窗口置于最上端
然后用sendkeys发送ctrl+w我这样做
hw = FindWindow("IEFrame", vbNullString) '获得句柄
SetWindowPos hw, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE Or SWP_NOSIZE
SendKeys "^W", True但那个hw好像传不到SetWindowPos那 啊
该怎么做那????请写下完整的实现代码 谢谢谢谢!!!
然后用sendkeys发送ctrl+w我这样做
hw = FindWindow("IEFrame", vbNullString) '获得句柄
SetWindowPos hw, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE Or SWP_NOSIZE
SendKeys "^W", True但那个hw好像传不到SetWindowPos那 啊
该怎么做那????请写下完整的实现代码 谢谢谢谢!!!
解决方案 »
- VB编译报错,急急急!!!
- 如何提取数据库表1的序号列的最大值并在TEXTBOX中显示?
- 散分贴,顺便问下如何在SQL—SERVER中存放图片
- 谢谢小马哥,那句sql很好用,我正在研究,答应给您的分,来领啊
- 通过Teechart控件制作曲线图,运用其ADDXY方法进行绘制数据曲线,如何将底部横坐标的时间间隔拉一些呢?
- 使用Api方式使标题栏消失时遇到的问题???
- 请问哪有简单的商店销售系统的例子?
- 怎样用API来控制音量大小
- 如何实现treeview节点间的拖放
- 请教各位大虾,如何用ADO连接设置了密码的ACCESS数据库?
- VB 执行存储过程超郁闷的问题,求救!!
- 急!!!如何在picturebox中print很多行的数据且超出部分不会被自动截断?
那么现在要做的不是发送ctrl+w,而是做个keyPress事件过程,检查是否有ctrl+w事件发生。没必要把你的目标窗口置上置下的。
Const WM_SYSCOMMAND = &H112Private Sub CloseLabel()
Dim HandLabel As Long
dim hw as long
hw = FindWindow("IEFrame", vbNullString) '获得句柄
HandLabel = PostMessage(hw, WM_SYSCOMMAND, SC_CLOSE, 0&)
End Sub假如你的程序存在一个窗体
Private Sub Form_KeyPress(KeyAscii As Integer)
if KeyAscii=23 then CloseLabel
End Sub
Const SC_CLOSE = &HF060
Const WM_SYSCOMMAND = &H112Private Sub CloseLabel()
Dim HandLabel As Long
dim hw as long
hw = FindWindow("IEFrame", vbNullString) '获得句柄
HandLabel = PostMessage(hw, WM_SYSCOMMAND, SC_CLOSE, 0&)
End Sub假如你的程序存在一个窗体
Private Sub Form_KeyPress(KeyAscii As Integer)
if KeyAscii=23 then CloseLabel
End Sub
---------------------------
为什么不直接用 postmessage hw,WM_CLOSE,0&,0&
给你个例子,调试通过
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function GetWindowText Lib "user32" Alias "GetWindowTextA" (ByVal hwnd As Long, ByVal lpString As String, ByVal cch As Long) As LongPrivate Sub Command1_Click()
Dim title As String * 255, hw As Long, ret As Long
hw = FindWindow("IEFrame", vbNullString) '获得句柄
ret = GetWindowText(hw, title, 255)
AppActivate Left(title, ret)
DoEvents
SendKeys "^w", TrueAppActivate Me.Caption
End Sub
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function SetWindowPos Lib "user32" (ByVal hwnd As Long, ByVal hWndInsertAfter As Long, ByVal x As Long, ByVal y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As Long
Private Const HWND_TOPMOST = -1
Private Const SWP_NOMOVE = &H2
Private Const SWP_NOSIZE = &H1
Dim hw_hwnd As LongPrivate Sub Command1_Click()
hw_hwnd = FindWindow("IEFrame", vbNullString)SetWindowPos hw_hwnd, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE Or SWP_NOSIZE
SendKeys "^W", True
End Subhw_hwnd声明成这样就能传了 可能大家没理解我的意思 呵呵
我很奇怪为什么那么多人不用傲游 傲游不是用的最多的吗?那么大家都用什么呢 是firefox吗?还有就是能否说下你们的学vb的过程 都是怎样学的 是学校教? 还是自学?
我是自学 买了vb编程的两本书 感觉很困难!!!尤其是现在学的vb api编程 更是找不到教程大家都是怎么学成现在的水平啊?? 我也想成老鸟!!mmyyxx88 我给你发站内信了