看看我们现在用的键盘,左下角位于ctrl键和alt键之间有一个画着windows窗口标志的键,我用form的keydown事件测得它的ascii码是91,但是符号 " [ " 的ascii码也是91,不知怎么回事?
有谁知道windows是怎样区分这两个键的吗?
现在我要用"windows标志"这个键,本来想用chr(91)来表示的,可现在只能显示"[",跪求高手解决!

解决方案 »

  1.   

    在keypress中[的keyascii=91
    在keydown中[的keycode=219
      

  2.   

    认同,是何原因?
    可我用chr(91)输出的是[
    chr(219)就没试过了
      

  3.   

    楼上的接受不了哪个键?是"windows标志"还是chr(219)没显示?
      

  4.   

    在keypress中[的keyascii=92(右)
    不会吧,我的怎么是91?
      

  5.   

    ===很有意思的问题呀!谢谢楼主!If Chr(KeyCode) = "[" Then
    MsgBox "Win key"
    End If
     
    这个代码能测出那个windows 键,但是如何屏蔽那个键对开始菜单的作用呢??
      

  6.   

    Win key :keycode=91"["      :keycode=219
    Private Sub Picture1_KeyDown(KeyCode As Integer, Shift As Integer)
    MsgBox KeyCode
    MsgBox ShiftEnd Sub
      

  7.   

    keycode和ascii是两个不同的东西
    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值
      

  8.   

    我想说的是:现在我需要不用按winkey键就可以达到按winkey键得到的效果,比如弹出开始菜单,那么我的想法是用chr(winkey键的ascii码)来找到这个键,但是现在出现了这个问题,chr(91)只能代表"["键.所以我想问一下有没有一个办法能够用软件的形式来调用winkey这个按纽????
      

  9.   

    sendkey()???
    不晓得你要干什么?
      

  10.   

    程序模拟同时按下 Ctrl+Esc
      

  11.   

    哇!谢谢楼上的,太棒了!thank you!
      

  12.   

    不过好象还是不行,Ctrl+Esc不完全等同于winkey
    比如我们可以在键盘上同时按下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
      

  13.   

    CTRL+ESC组合可以呼出菜单,WINKEY+D可以显示桌面,并不表示CTRL+ESC+D=WINKEY+D,只是系统的热键,并非数学里的等式转换,CTRL+ESC+D不是有效的注册热键。在程序里呼出菜单有几种办法,你的SENDKEY是一种,也可以向“开始”按钮发CLICK消息,细节免了,省得你头晕。^_^
      

  14.   

    楼上的大侠,谢谢你的指教!
    不过我这人喜欢头晕,跪求细节!分不够再给!____________________________________________
    在程序里呼出菜单有几种办法,你的SENDKEY是一种
    ---------------------------------------------
    可我用sendkeys调不出菜单?代码如下:Private Sub Form_Activate()
    Text1.SetFocus
    SendKeys "^{ESC}",true   '用来模拟Ctrl+Esc
    End Sub请指教,谢谢!
      

  15.   

    Dim handle ,handle_ As Long
    '先找到任务栏
    handle = FindWindow("Shell_TrayWnd", vbNullString)
    '再找到“开始”按钮
    handle_ = FindWindowEx(handle, ByVal 0&, "BUTTON", vbNullString)
    '给按钮发消息
    SendMessage handle_, WM_LBUTTONDOWN, 0&, 0&很早的实验品,在98下可以,XP还没试过,道理一样,可能类名要变。
    好了给分吧!^_^
      

  16.   

    我加了个模块,里面添加代码:
    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系统
      

  17.   

    模块的代码弄错了,不好意思,新代码如下:
    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
    ________________________________________________________________________
    不过还是没有效果,虽然编译器没报错!
      

  18.   


    左边的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
      

  19.   

    我在窗体上放了一个WebBrowser控件,就可以浏览网站了,但是网站有一些弹出的窗体,却使用了系统默认的浏览器,既使用的IE作为弹出窗体的浏览器了。