4

ビジュアルベーシック初心者です。.exeVBからファイルを実行しようとしています。しかし、私は出力を得ていません。私.exeはコマンドライン引数を持っています。以下は私のコードです

Private Sub Command1_Click()

    Shell "D:\FEP\extractFEPData.exe data.txt", vbNormalFocus

End Sub

コマンドプロンプトでコマンドを入力extractFEPData.exe data.txtすると、ファイルが解析されます。しかし、VB では、コマンド ボタンをクリックしても何も起こりません。

私を助けてください。

4

5 に答える 5

5
Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" ( _
                    ByVal hwnd As Long, _
                    ByVal lpOperation As String, _
                    ByVal lpFile As String, _
                    ByVal lpParameters As String, _
                    ByVal lpDirectory As String, _
                    ByVal nShowCmd As Long) As Long

Private Const SW_HIDE As Long = 0

Private Const SW_SHOWNORMAL As Long = 1

Private Const SW_SHOWMAXIMIZED As Long = 3

Private Const SW_SHOWMINIMIZED As Long = 2


Private Sub Label1_Click()

    ShellExecute Me.hwnd, "Open", "G:\PN Technologies\VB\Krishna & Co\KrishnaCo.exe", vbNullString, "C:\", SW_SHOWNORMAL

End Sub
于 2014-02-07T11:37:46.867 に答える
2

これまで、私は常にShellExecute Win32 API を使用してきました。以下のVB6からの使用に関する優れたリファレンスを見つけることができます。

http://support.microsoft.com/kb/238245

http://www.vbaccelerator.com/codelib/shell/shellex.htm

于 2010-10-25T19:57:28.743 に答える
0

(出力をキャプチャしたいと仮定します)

VB.NET を使用している場合は .NET 関数 (ここを参照) を使用する必要があり、VB6 を使用している場合はwin32 API (ここを参照) を使用する必要があります。

于 2010-10-24T08:36:35.560 に答える
0

これを行うには、WShell.Exec メソッドを使用してプログラムを実行し、読み取り可能な TextStream オブジェクトである StdOut プロパティを持つ WshScriptExec オブジェクトを返します。

ブロッキング コールしかサポートしていないため、これは少し扱いに​​くい場合があります。ただし、API 呼び出しを使用して外部プロセスを実行し、その標準 I/O ストリームを、VB6 プログラムが読み書きできる匿名パイプにリダイレクトすることができます。これはより多くの作業ですが、より詳細に制御できます。

おそらくあなたは何か他のものを探していますか?

于 2010-10-25T15:34:07.027 に答える
0

現在のディレクトリを設定する必要がありますか? フルパスではなく、ファイル名のみを渡しています。

ChDrive "d:" 
ChDir "d:\fep" 
Shell "D:\FEP\extractFEPData.exe data.txt", vbNormalFocus 

VB6 マニュアル

于 2010-10-24T17:44:06.750 に答える