Форум программистов, компьютерный форум, киберфорум
Visual Basic
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.90/21: Рейтинг темы: голосов - 21, средняя оценка - 4.90
1390 / 531 / 67
Регистрация: 10.04.2009
Сообщений: 8,727
1

Запуск процесса с помощью WScript.Shell

06.05.2017, 08:13. Показов 3904. Ответов 14
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
здравствуйте если в бат файл записать:
Visual Basic
1
Print #1, ".\smartid_sample.exe " & Chr$(34) & sFP & Chr$(34) & " ..\data-zip\bundle_passport_drvlicrus.zip > output.txt"
и выполнить его то нужное мне действие происходит
если пробую:
Visual Basic
1
2
3
ChDrive "C"
ChDir "C:\SmartIDReader\bin"
CreateObject("WScript.Shell").Run "" & "C:\SmartIDReader\bin\smartid_sample.exe " & Chr$(34) & sFP & Chr$(34) & " ..\data-zip\bundle_passport_drvlicrus.zip > output.txt" & ""
то процесс в консоли запускается, а нужного результата нет, почему? где то ошибся? или неправильный подход? спасибо
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
06.05.2017, 08:13
Ответы с готовыми решениями:

C# + Wscript.Shell
Всем доброго времени суток. Вопрос такой, имеется некая команда, которая выполняется через Shell с...

Создание ActiveX WScript.Shell
Всем хорошего Дня! В VBScript (в JavaScript самое) пишу: set WshShell =...

Не получается корректно работать с Wscript.shell
В результате длительных исследований написал примерно вот такой агент: Sub Initialize On Error...

Выполнение команды не юзая WScript.Shell
Всем привет вопрос в заголовке нужно выполнить команду например start 123.exe или ping google.com ...

14
141 / 119 / 29
Регистрация: 12.02.2017
Сообщений: 308
07.05.2017, 20:06 2
Смотрите документацию к программе, может быть пропущен какой-нибудь разделяющий пробел или символ.
0
1390 / 531 / 67
Регистрация: 10.04.2009
Сообщений: 8,727
07.05.2017, 21:48  [ТС] 3
есть мнение, что будет так:
Visual Basic
1
2
3
ChDrive "C"
ChDir "C:\SmartIDReader\bin"
CreateObject("WScript.Shell").Run "" & "CMD /C C:\SmartIDReader\bin\smartid_sample.exe " & Chr$(34) & sFP & Chr$(34) & " ..\data-zip\bundle_passport_drvlicrus.zip > output.txt" & ""
ещё не проверял....
0
Эксперт WindowsАвтор FAQ
17996 / 7697 / 892
Регистрация: 25.12.2011
Сообщений: 11,470
Записей в блоге: 16
10.05.2017, 17:02 4
Потому что знак > может обрабатывать только батник (то есть процесс cmd.exe).
Во втором примере вы скармливаете этот знак программе smartid_sample.exe. Разумеется, она не знает, что с ним делать.

P.S. Вопрос стоило адресовать на форум по Visual Basic 6, а не Batch.

Добавлено через 2 минуты
Интересующий вас код на VB6 я уже выкладывал с использованием пайпов в этой теме: Как организовать обмен данными с Шахматным Движком?
0
1390 / 531 / 67
Регистрация: 10.04.2009
Сообщений: 8,727
10.05.2017, 19:04  [ТС] 5
может
Цитата Сообщение от Dragokas Посмотреть сообщение
знак >
заменить на что-то другое, на что? сложновато по выложенной ссылке на топик
0
Эксперт WindowsАвтор FAQ
17996 / 7697 / 892
Регистрация: 25.12.2011
Сообщений: 11,470
Записей в блоге: 16
10.05.2017, 19:44 6
Если сложно, можете решить задачу в одну строку:

Visual Basic
1
MsgBox CreateObject("WScript.Shell").Exec("cmd.exe /c echo 123").StdOut.ReadAll()
cmd.exe /c echo 123 замените на свою программу
1
1390 / 531 / 67
Регистрация: 10.04.2009
Сообщений: 8,727
11.05.2017, 03:51  [ТС] 7
только не понял, зачем здесь нужен
Цитата Сообщение от Dragokas Посмотреть сообщение
MsgBox
???
Цитата Сообщение от Dragokas Посмотреть сообщение
cmd.exe /c echo 123 замените на свою программу
то есть будет так?
Visual Basic
1
2
MsgBox CreateObject("WScript.Shell").Exec("" & "CMD /C C:\SmartIDReader\bin\smartid_sample.exe " & Chr$(34) & sFP & Chr$(34) & " ..\data-zip\bundle_passport_drvlicrus.zip > output.txt" & ""
).StdOut.ReadAll()
0
Эксперт WindowsАвтор FAQ
17996 / 7697 / 892
Регистрация: 25.12.2011
Сообщений: 11,470
Записей в блоге: 16
11.05.2017, 04:04 8
Всё не так.
Зачем CMD, зачем знак >

Visual Basic
1
MsgBox CreateObject("WScript.Shell").Exec("C:\SmartIDReader\bin\smartid_sample.exe " & """" & sFP & """" & "" ..\data-zip\bundle_passport_drvlicrus.zip").StdOut.ReadAll()
Добавлено через 41 секунду
Цитата Сообщение от Ципихович Эндрю Посмотреть сообщение
только не понял, зачем здесь нужен
Затем, чтобы показать что это работает. Мне лень писать код записи в файл. Сами напишете.
1
1390 / 531 / 67
Регистрация: 10.04.2009
Сообщений: 8,727
11.05.2017, 04:38  [ТС] 9
Цитата Сообщение от Dragokas Посмотреть сообщение
MsgBox CreateObject("WScript.Shell").Exec("C:\SmartIDReader\bin\smartid_sample.exe " & """" & sFP & """" & "" ..\data-zip\bundle_passport_drvlicrus.zip").StdOut.ReadAll()
извините, что надо подправить-пишет Синтаксическая ошибка
0
Эксперт WindowsАвтор FAQ
17996 / 7697 / 892
Регистрация: 25.12.2011
Сообщений: 11,470
Записей в блоге: 16
11.05.2017, 17:04 10
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
Option Explicit
 
Private Sub Form_Load()
    Dim CMDLine         As String
    Dim Program         As String
    Dim Arg             As String
    Dim ResultFile      As String
    Dim sFP             As String
    Dim sResult         As String
    Dim ff              As Long
    
    sFP = "??????????" '// TODO
    
    ResultFile = "output.txt"
    Program = "C:\SmartIDReader\bin\smartid_sample.exe"
    Arg = """" & sFP & """" & " " & "..\data-zip\bundle_passport_drvlicrus.zip"
    
    CMDLine = Program & " " & Arg
    
    ChDrive "C"
    ChDir "C:\SmartIDReader\bin"
    
    sResult = CreateObject("WScript.Shell").Exec(CMDLine).StdOut.ReadAll()
    
    ff = FreeFile()
    
    Open ResultFile For Output As #ff
        Print #ff, sResult
    Close #ff
    
    CreateObject("Shell.Application").ShellExecute ResultFile, "", "", "", 1
End Sub
0
1390 / 531 / 67
Регистрация: 10.04.2009
Сообщений: 8,727
11.05.2017, 18:01  [ТС] 11
Вы не поняли с
Цитата Сообщение от Dragokas Посмотреть сообщение
Open
и далее запись в батник и запуск этого батника у меня есть вариант и всё гут
просто подумал-зачем велосипед, думал без батников смд, а сразу Run и дело в шляпе
0
Эксперт WindowsАвтор FAQ
17996 / 7697 / 892
Регистрация: 25.12.2011
Сообщений: 11,470
Записей в блоге: 16
11.05.2017, 18:14 12
В коде, приведённом выше, нет никаких батников.
Результат выполнения smartid_sample.exe сохраняется в текстовый файл, и затем этот файл открывается.
0
1390 / 531 / 67
Регистрация: 10.04.2009
Сообщений: 8,727
11.05.2017, 18:52  [ТС] 13
добавил, подчеркнул
думал может без батников смд, текстовых файлов, а сразу Run и дело в шляпе.....
0
Эксперт WindowsАвтор FAQ
17996 / 7697 / 892
Регистрация: 25.12.2011
Сообщений: 11,470
Записей в блоге: 16
11.05.2017, 19:10 14
Ну, я не экстрасенс. Техзадания не было. Как понял, так и написал.
Вы в первом посте что просите:
Цитата Сообщение от Ципихович Эндрю Посмотреть сообщение
и выполнить его то нужное мне действие происходит
Цитата Сообщение от Ципихович Эндрю Посмотреть сообщение
то процесс в консоли запускается, а нужного результата нет, почему?
там идёт запись в текстовый файл.

Вот я и написал, как вывести в текстовый файл.
Что такое нужное действие и нужный результат - только вы можете знать.
0
oh my god
1454 / 793 / 161
Регистрация: 05.01.2016
Сообщений: 2,307
Записей в блоге: 8
19.05.2017, 07:08 15
хи-хи
Дракон, отвечаю, он еще раз выскажеться, посмотрим......

Добавлено через 4 минуты
Я ЗА РЕШКОЙ ......... если что ))
0
19.05.2017, 07:08
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
19.05.2017, 07:08
Помогаю со студенческими работами здесь

Вызов объектов Wscript.Shell с именем из переменной
Задача: есть переменная, в которой задается количество объектов Wscript.Shell, которые надо...

Wscript.Shell.Run не выводит результат в файл
Доброго всем времени! Ситуация такая: Нужно запустить экзешник с параметрами, который на...

Как запустить CreateObject ("WScript.Shell") под администратором?
такой батник работает @echo on ( echo Open xx.xx.xx.xx echo Login echo pass echo PROMPT...

Можно ли запускать с помощью wscript.exe приложения, не входящие в список разрешенных приложений?
Одно приложение нужное для работы формирует Word документы используя Wscript.exe. Можно ли...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru