Làm thế nào chính xác bằng cách sử dụng VB6 tôi có thể gọi bất kỳ lệnh Windows shell như bạn làm từ dòng lệnh?Làm cách nào để gọi lệnh Windows shell bằng VB6?
Ví dụ, một cái gì đó như tầm thường như:
echo foo
Làm thế nào chính xác bằng cách sử dụng VB6 tôi có thể gọi bất kỳ lệnh Windows shell như bạn làm từ dòng lệnh?Làm cách nào để gọi lệnh Windows shell bằng VB6?
Ví dụ, một cái gì đó như tầm thường như:
echo foo
Đây là cách bạn làm điều đó:
Shell "cmd echo foo", vbNormalFocus
Shell và ShellExecute?
http://msdn.microsoft.com/en-us/library/aa242087.aspx
Dim RetVal
RetVal = Shell("C:\WINDOWS\CALC.EXE", 1) ' Run Calculator.
Tôi luôn sử dụng phương pháp Run của đối tượng wshShell, trong đó có sẵn sau khi bạn tham khảo Windows Script Host Object Model trong dự án của bạn:
Dim shell As wshShell
Dim lngReturnCode As Long
Dim strShellCommand As String
Set shell = New wshShell
strShellCommand = "C:\Program Files\My Company\MyProg.exe " & _
"-Ffoption -Ggoption"
lngReturnCode = shell.Run(strShellCommand, vbNormalFocus, vbTrue)
Bạn có cùng chức năng như thứ e bình thường Shell tuyên bố, nhưng các tham số cuối cùng cho phép bạn quyết định có nên chạy chương trình shelled đồng bộ. Cuộc gọi trên, với vbTrue, là đồng bộ. Sử dụng vbFalse bắt đầu chương trình một cách không đồng bộ.
Và, như đã lưu ý trong các câu trả lời trước, bạn cần chạy trình bao lệnh bằng nút "/ c" để thực hiện lệnh nội bộ, như "echo foo" từ câu hỏi của bạn. Bạn sẽ gửi "cmd/c echo foo" đến phương thức Run.
một sự kết hợp của tất cả các
Shell Environ("COMSPEC") & " /c echo foo", vbNormalFocus
bạn nên suy nghĩ trong việc mở rộng biến môi trường COMSPEC nếu bạn muốn hỗ trợ các hệ thống trước đó như cửa sổ 9x hoặc tôi.
Bạn cũng có thể lấy id quá trình sử dụng
pid = Shell(Environ("COMSPEC") & " /c echo foo", vbNormalFocus)
Shell "cmd /c echo foo"
Chỉ sử dụng dấu ngoặc kép: ""...""
Ví dụ - gửi qua xác nhận để thực hiện một nhiệm vụ:
shell (""echo pass|schtasks /create /TR "C:\folder\...\program.exe" /more_parameters"")
vì "
đầu tiên được đóng trong "C:\...
và t anh ta sẽ dừng lại.
Ahora explico en Español
Solo usa Comillas doble: ""...""
Ejemplo - MANDO un qua para confirmar la creacion de la tarea:
shell (""echo pass|schtasks /create /TR "C:\folder\...\program.exe" /more_parameters"")
la causa es que la Primera Comillas "
se cierra con las comillas de la ruta "C:\...
y se pierde la cadena Chuỗi.
:) mẫu xe Espero cỡ sirva y buena vùng; giải
lngReturnCode = shell.Run (strShellCommand, vbNormalFocus, vbTrue) – nh32rg
Cảm ơn, @ nh32rg. Đã sửa.Đó là một lỗi đã tồn tại trong hơn 4 năm. – JeffK
Mã này dành cho vbScript không VB6 như được hỏi trong câu hỏi. Điều đó có thể rất khó hiểu đối với một người chỉ biết VB6 và tìm câu trả lời cho các câu hỏi VB6. – Jeff