2010-10-24 3 views
2

Я новичок в визуальном базовом. Я пытаюсь выполнить файл .exe от VB. Но я не получаю выход. У моего .exe есть аргументы командной строки. Ниже мой кодВыполнение .exe с Visual Basic 6

Private Sub Command1_Click() 

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

End Sub 

В CMD строке Если я даю команду extractFEPData.exe data.txt Это разбор файла. Но в VB после нажатия кнопки команды ничего не происходит.

Пожалуйста, помогите мне.

ответ

0

(Предполагая, что вы хотите, чтобы захватить выход)

Вы должны использовать некоторые функции .NET (см here), если вы используете VB.NET или некоторые win32 API (см here), если вы используете VB6 ,

0

Вам нужно установить текущий каталог? Вы передаете только имя файла, а не полный путь.

ChDrive "d:" 

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

VB6 Manual

0

Вы можете сделать это с помощью метода WShell.Exec для запуска программы и возврата объекта WshScriptExec, который имеет свойство StdOut, которое является объектом TextStream, который вы можете прочитать.

Это может быть немного неудобным, поскольку он поддерживает только блокирующие вызовы. Однако вы можете использовать вызовы API для запуска внешнего процесса и перенаправления стандартных потоков ввода-вывода на анонимные каналы, которые программа VB6 может читать или записывать. Это больше, но вы получаете больше контроля.

Возможно, вы ищете что-то еще?

1
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 
Смежные вопросы