Обед удаленного приложения C ++ MFC - PullRequest
0 голосов
/ 20 марта 2020

Я хочу запустить командный файл «test.bat» на диске, который находится на удаленной машине.

Я создал соединение в общем пространстве с дисковой логикой c (L :) без проблем, но когда я хочу запустить его с CreateProcess(..), возникает ошибка.

Тестовый файл bat содержит только "dir".

Моя среда Visual Studio 2019 CPP MF C. На логическом диске монтируется:

{ .... dwRetVal = WNetAddConnection2 ((CString)Pass_buffer_Root, (CString)Account_buffer_Root, CONNECT_TEMPORARY); ... }

А для запуска:

{ ... STARTUPINFO info = { sizeof(info) }; info.cb = sizeof(info); PROCESS_INFORMATION processInfo; ZeroMemory(&processInfo, sizeof(processInfo)); BOOL Result = CreateProcess(NULL, File.GetBuffer(), NULL, NULL, TRUE, 0, NULL, NULL, &info, &processInfo); ... }

Результат ноль, в чем проблема?

Ответы [ 2 ]

0 голосов
/ 21 марта 2020

Это не проблема запуска командного файла. Этот файл находится в общем ресурсе, а команда "dir" не распознается на удаленном компьютере. Даже если я дам ему полный путь "c: windows -cmd.exe / c"

0 голосов
/ 20 марта 2020

Ответ находится прямо в документации :

Чтобы запустить пакетный файл, вы должны запустить интерпретатор команд; установите lpApplicationName на cmd.exe и установите lpCommandLine на следующие аргументы: / c плюс имя пакетного файла.

...