看看我们现在用的键盘,左下角位于ctrl键和alt键之间有一个画着windows窗口标志的键,我用form的keydown事件测得它的ascii码是91,但是符号 " [ " 的ascii码也是91,不知怎么回事?
有谁知道windows是怎样区分这两个键的吗?
现在我要用"windows标志"这个键,本来想用chr(91)来表示的,可现在只能显示"[",跪求高手解决!
有谁知道windows是怎样区分这两个键的吗?
现在我要用"windows标志"这个键,本来想用chr(91)来表示的,可现在只能显示"[",跪求高手解决!
在keydown中[的keycode=219
可我用chr(91)输出的是[
chr(219)就没试过了
不会吧,我的怎么是91?
MsgBox "Win key"
End If
这个代码能测出那个windows 键,但是如何屏蔽那个键对开始菜单的作用呢??
Private Sub Picture1_KeyDown(KeyCode As Integer, Shift As Integer)
MsgBox KeyCode
MsgBox ShiftEnd Sub
Private Sub Text1_KeyDown(KeyCode As Integer, Shift As Integer)
Debug.Print "KeyCode:" & KeyCode
End Sub
Private Sub Text1_KeyPress(KeyAscii As Integer)
Debug.Print "KeyAscii:" & KeyAscii
End Sub"["的KeyCode=219 ascii=91
winkey的keycode为91 但是没有ascii值
不晓得你要干什么?
比如我们可以在键盘上同时按下winkey 和 d 键,那么我们就可以看到桌面,
但同时按下Ctrl+Esc+d 就没有什么效果!
虽然按下Ctrl+Esc是可以显示菜单,和winkey键效果一样,但是在程序中模拟这样的按法就不行了!
我的程序如下:
Private Sub Form_Activate()
Text1.SetFocusSendKeys "^({ESC}d)", True '用来模拟Ctrl+Esc+d
'SendKeys "^{ESC}",true '用来模拟Ctrl+Esc
End Sub
不过我这人喜欢头晕,跪求细节!分不够再给!____________________________________________
在程序里呼出菜单有几种办法,你的SENDKEY是一种
---------------------------------------------
可我用sendkeys调不出菜单?代码如下:Private Sub Form_Activate()
Text1.SetFocus
SendKeys "^{ESC}",true '用来模拟Ctrl+Esc
End Sub请指教,谢谢!
'先找到任务栏
handle = FindWindow("Shell_TrayWnd", vbNullString)
'再找到“开始”按钮
handle_ = FindWindowEx(handle, ByVal 0&, "BUTTON", vbNullString)
'给按钮发消息
SendMessage handle_, WM_LBUTTONDOWN, 0&, 0&很早的实验品,在98下可以,XP还没试过,道理一样,可能类名要变。
好了给分吧!^_^
Declare Function FindWindow Lib "user32" Alias _
"FindWindowA" (ByVal lpClassName As String, _
ByVal lpWindowName As String) As LongDeclare Function FindWindowEx Lib "user32" (ByVal _
hwndParent As String, ByVal hwndChildAfter As String, ByVal _
lpszClass As String, ByVal lpszWindow As String) As Long
__________________________________________________________________不过vb编译器说WM_LBUTTONDOWN 这个变量未定义!
请帮忙改改,我不知怎么弄了!谢谢!
我用的是XP系统
Declare Function FindWindow Lib "user32" Alias _
"FindWindowA" (ByVal lpClassName As String, _
ByVal lpWindowName As String) As Long
Public Declare Function FindWindowEx Lib "user32" Alias "FindWindowExA" (ByVal hWnd1 As Long, ByVal hWnd2 As Long, ByVal lpsz1 As String, ByVal lpsz2 As String) As LongPublic Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As LongPublic Const WM_LBUTTONDOWN = &H201
________________________________________________________________________
不过还是没有效果,虽然编译器没报错!
左边的Win键的Keycode:91
右边的Win键的Keycode:92
'['的Keycode:219Win键是具有扫描码的,不要和普通键混在一起了另外,我想你可能是要弹出开始菜单,模拟Win键,我这里给出程序:Private Declare Sub keybd_event Lib "user32" (ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As Long)Private Const KEYEVENTF_KEYUP = &H2
Private Const VK_LWIN = &H5B'函数,模拟弹出Win键:
Public Sub PopUpWinKey()
keybd_event VK_LWIN, 0, 0, 0
keybd_event VK_LWIN, 0, KEYEVENTF_KEYUP, 0
End Sub'调用
Private Sub Command1_Click()
Call PopUpWinKey
End Sub