dポイントプレゼントキャンペーン実施中!

VB6でDosのコマンドを入力して実行させたいと思っているのですが、どのように設定すればいいのでしょうか?

わざわざVB6からDosプロンプトを起動させるわけではございません。

理想ではテキストボックスにコマンドを入力してボタンを押すと実行すると言う形にしたいのですが・・・。

ご存知の方ご指導よろしくお願いします

たぶんAPIを使うのだと思いますがAPIまだまだ知識不足なので、分かりやすく解説していただければ助かります。
よろしくお願いします。

A 回答 (3件)

こんな感じ。



' // 使い方サンプル
Private Sub Command1_Click()
  Dim sBuffer As String
  If ExecCmd(Text1.Text, sBuffer) = True Then
    MsgBox sBuffer, vbInformation, "成功時"
  Else
    MsgBox sBuffer, vbCritical, "エラー時"
  End If
End Sub

' // Dos コマンドを実行する
Public Function ExecCmd( _
    ByVal Command As String, _
    ByRef Buffer As String _
) As Boolean

  ' @引 数:Command 実行する Dos コマンド
  ' @引 数:Buffer 実行結果またはエラーメッセージを受ける
  ' @戻り値:成功時 True / エラー時 False
  ' @備 考:一瞬 Dos 窓が開きます
  
  Dim WSH As Object
  ExecCmd = False
  If Len(Command) > 0 Then
    Set WSH = CreateObject("WScript.Shell")
    With WSH.Exec("%ComSpec% /c " & Command)
      Do While .Status = 0
        DoEvents
      Loop
      ' Return
      If Not .StdErr.AtEndOfStream Then
        Buffer = .StdErr.ReadAll
      Else
        ExecCmd = True
        Buffer = .StdOut.ReadAll
      End If
    End With
    Set WSH = Nothing
  End If

End Function
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
感動しました。
ちなみにこのプログラムはXP以外にも2000,me,98,95でも動作するのでしょうか?
その辺も教えてくださいよろしくお願いします。
大変ありがとうございました。

お礼日時:2006/12/03 14:38

> ちなみにこのプログラムはXP以外にも2000,me,98,95でも動作するのでしょうか?



WSH (Windows Scripting Host)を使ってます。したがって、動作環境は、

  Windows98 以降、または Internet Explorer 4 以上がインストール
  されていること

になると思います。要は WSH が動けば OK です。ただし、

 ・Windows95 での動作は難しいかもしれません。実際に確認はしてません
  ので、確信はありません。
 ・セキュリティ対策が非常に厳しい会社では、WSH がアンインストール
  されているかもしれません。この場合も動きません。

したがって、

「多くの環境で利用できる」とは言えますが、
「Windows OS なら環境を選ばない」とは言えません。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
そうなんですか!
要するにWHSがあるかどうかが問題になってくるというわけですね

お礼日時:2006/12/05 20:43

Shell()関数でできると思います。


内部コマンドだと"cmd.exe /c コマンド"という形になりますが。

http://www.bcap.co.jp/hanafusa/VBHLP/tap_shell.htm
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!