за последние несколько дней или недель. В Visual Studio C ++ мне трудно ShellExecuteEx()
пытаясь запустить exe с параметром внутри exe. Это происходит так, что я запускаю отладочную программу в Visual Studio (даже за ее пределами). Программа запустит другую программу, и она успешно запустится, но она не генерирует вывод файла .txt. Я не был уверен, правильно ли я использовал параметр.
Вот шаги, которые я пытаюсь достичь:
Проблема в том, что я не получаю CaptureText.txt в моем каталоге или каких-либо доказательств того, что параметры работают в этой программе.
Теперь, если я запускаю ScreenCapture.exe без использования Test.exe с параметрами, он работает и создает файл .txt.
Вот код:
#include "stdafx.h"#include <isostream>
#include <fstream>
#include <string>
#include <Windows.h>
int main()
{
auto str = _T("C:\\Users\Engrsky\Pictures\Screenshot.png ScreenCapture -l eng")
SHELLEXECUTEINFO shExInfo = {0};
shExInfo.cbSize = sizeof(shExInfo);
shExInfo.fMask = SEE_MASK_NOCLOSEPROCESS;
shExInfo.hwnd = 0;
shExInfo.lpVerb = _T("runas");
shExInfo.lpFile = _T("C:/Program File (x86)/Test/ScreenCapture.exe");
shExInfo.lpParameters = str;
shExInfo.lpDirectory = 0;
shExInfo.nShow = SW_SHOW;
shExInfo.hInstApp = 0;
}
ПРИМЕР: Используя только командную строку, ScreenCapture.exe отлично работает с параметром. Я ввел это так:
Администратор: Командная строка
C:\Program File (x86)\Test> ScreenCapture "C:\\Users\Engrsky\Pictures\Screenshot.png ScreenCapture -l eng"
Затем он успешно запустится и запишет выходной файл с именем ScreenCapture.txt.
Тем не менее, когда я попытался сделать это, запустите его, используя исполняемый файл (этот файл). Я не мог получить сгенерированный вывод.
Из документа MSDN для ShellExecuteEx
функция, сначала нужно инициализировать COM. Пример, который нужно использовать:
CoInitializeEx(NULL, COINIT_APARTMENTTHREADED | COINIT_DISABLE_OLE1DDE);
Других решений пока нет …