方法是有:
通过编号调用API
只不过只在特定操作系统上有效(即Win98有效,Win95、Win95、Win2000、WinXP……无效)所以不推荐使用

解决方案 »

  1.   

    也行了,告诉我是那个 API 好吗?
    我给你分!
      

  2.   

    呵呵,是不是就是指DLL里函数编号在各个平台上不同的啊?
      

  3.   

    快速调用“程序运行对话框” 
      一般情况下,当我们需要在VB程序中调用一个外部.exe或者.com程序时,一般要用到shell命令。它提供了一种非常简捷的方式让我们执行一个确定的外部程序。但缺点也显现出了,就是它不提供用户选择执行程序的功能。你也许还记得这样的经历:我们用鼠标点击桌面左小角的“开始”,在选择“运行”,这时,就出现了一个“运行”对话框:  
      你可以在这里直接输入要执行的程序全路径,或者,点击“浏览”按钮,选择一个程序。   要达到同样的效果,请使用下面的代码:   '声明API函数   '引用了未公开的DLL文件shell32   Private Declare Function SHRunDialog Lib "shell32" _     Alias "#61" (ByVal hOwner As Long, ByVal UnknownP1 _     As Long, ByVal UnknownP2 As Long, ByVal szTitle _     As String, ByVal szPrompt As String, ByVal uFlags _     As Long) As Long   '通用调用运行对话框过程   '参数Title表示对话框的标题,参数Description表示对话框中的描述文字   Public Sub ShowRunDialog(ByRef CallingForm As Form, _     Optional Title As String, _     Optional Description As String)     If Title = "" Then Title = "Run"     If Description = "" Then Description = _     "Type the name of a program to open, " & _       "then click OK when finished."     SHRunDialog CallingForm.hWnd, 0, 0, _       Title, Description, 0   End   '调用例程   Call ShowRunDialog(Me, "Run Dialog", "Choose a program and press OK")
      

  4.   

    模拟按键
    <Win>+<R>
    http://expert.csdn.net/Expert/topic/1326/1326069.xml?temp=2.259463E-02
    对于keybd_event()的四个参数我不是很明白,想请问一下。还有用法
            keybd_event(VK_LWIN, 0, 0 ,0);
            keybd_event('R',     0, 0 ,0);
            keybd_event('R',     0, KEYEVENTF_KEYUP,0);
            keybd_event(VK_LWIN, 0, KEYEVENTF_KEYUP,0);
    这段代码是打开运行,可是我不明白每一句的意思,为什么只执行第一句不能打开开始菜单!!!!
    请教高手讲解一下!!
      

  5.   

    keybd_event VB声明 
    Declare Sub keybd_event Lib "user32" Alias "keybd_event" (ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As Long) 
    说明 
    这个函数模拟了键盘行动 
    参数表 
    参数 类型及说明 
    bVk Byte,欲模拟的虚拟键码 
    bScan Byte,键的OEM扫描码 
    dwFlags Long,零;或设为下述两个标志之一 
    KEYEVENTF_EXTENDEDKEY 指出是一个扩展键,而且在前面冠以0xE0代码 
    KEYEVENTF_KEYUP 模拟松开一个键 
    dwExtraInfo Long,通常不用的一个值。api函数GetMessageExtraInfo可取得这个值。允许使用的值取决于特定的驱动程序 
    注解 
    这个函数支持屏幕捕获(截图)。在win95和nt4.0下这个函数的行为不同 
      

  6.   

    楼上的:不用哪么麻烦的,有几个参数是专门调用这类键的!
    一个API:
    keybd_event
      

  7.   

    万一你发送的键盘消息被其他进程捕获,哈哈,你就惨态了.
    还是up jennyvenus的贴子.
      

  8.   

    '还是用钩子函数拦截键盘消息的好啊,愚见.Declare Function SetWindowsHookEx Lib "user32" Alias _
    "SetWindowsHookExA" (ByVal idHook As Long, ByVal lpfn As Long, _
    ByVal hmod As Long, ByVal dwThreadId As Long) As Long
    Declare Function UnhookWindowsHookEx Lib "user32" _
        (ByVal hHook As Long) As Long
    Declare Function CallNextHookEx Lib "user32" (ByVal hHook As Long, _
       ByVal ncode As Long, ByVal wParam As Long, lParam As Any) As Long
      

  9.   

    '还是用钩子函数拦截键盘消息的好啊,愚见.Declare Function SetWindowsHookEx Lib "user32" Alias _
    "SetWindowsHookExA" (ByVal idHook As Long, ByVal lpfn As Long, _
    ByVal hmod As Long, ByVal dwThreadId As Long) As Long
    Declare Function UnhookWindowsHookEx Lib "user32" _
        (ByVal hHook As Long) As Long
    Declare Function CallNextHookEx Lib "user32" (ByVal hHook As Long, _
       ByVal ncode As Long, ByVal wParam As Long, lParam As Any) As Long