看看MSDN的Sendkeys 有一些意外的发现:Dim ReturnValue, I
ReturnValue = Shell("Calc.EXE", 1)   ' 运行计算器。
AppActivate ReturnValue    ' 激活计算器。
For I = 1 To 100   ' 设置计数循环。
   SendKeys I & "{+}", True   ' 按下按键给计算器
Next I   ' 将所有 I 值相加。
SendKeys "=", True   ' 取得总合。
SendKeys "%{F4}", True   ' 按 ALT+F4 关闭计算器。

解决方案 »

  1.   

    对不起,刚学vb,看了似懂非懂,能给一个直按rasphone.exe的例子吗?
      

  2.   

    Dim ReturnValue, I
    ReturnValue = Shell("winnt\system32\rasphone.exe", 1)  
    AppActivate ReturnValue  
    sendkeys "{Enter}"
      

  3.   

    这两天csdn十分难进.
    用上面的方法ok,只是在连接前会出现拨号网络的窗口约1至2秒,能不能
    不让它出现?
      

  4.   

    看看MSDN采用SHELL的运行最小化,CSDN太慢了,我的电脑上没有安装MSDN
      

  5.   

    分早该给你,近一段时间csdn实在难上.
    如果要直接挂断,该如何写呢?
    谢谢
      

  6.   

    要直接连接,必须用RASAPI32.DLL的API函数,但俺跑了好多腿都找不到资料。哪位高手请指教一下!
      

  7.   

        我也在调这样的程序,我用的方法是先用returnhwnd=GetWindows(hwnd,GW_HWNDFIRST),再用returnhwnd=GetWindows(returnhwnd,GW_HWNDNEXT)循环来获得拨号窗口的句柄,然后再用GetWindows(returnhwnd,GW_Child)、GetWindows(returnhwnd,GW_HWNDNEXT)循环来获取“连接”按钮的句柄,再用PostMessage(returnhwnd,BM_CLICK,0,0)发送Click消息来建立连接。这里没有用SendMessage是因为SendMessage要等消息处理完之后才能返回,那样在拨号的中间程序就不能对它进行处理了,而PostMessage则会立即返回。
        在连接的中间或连接建立起来之后可以用RasHungUp来挂断连接。