#windows #batch-file #windows-phone-8 #cmd #system
#Windows #пакетный файл #windows-phone-8 #cmd #система
Вопрос:
Мне нужно программно выполнить файл bat на платформе Windows phone 8. Проблема в том, что CreateProcess() не выдает мне никаких ошибок. Также не работает WaitForSingleObject(), он просто проходит через него без ожидания, что фактически означает, что пакетный файл никогда не выполняется (поскольку для завершения операции с bat-файлом требуется не менее 5 минут). Вот код, который я использую:
param = L»»c:\windows\system32\cmd.exe » /C «C:\Data\test\spec_run_dir\runSpec.bat » «.exe» «ссылка «»;
if (!CreateProcess(NULL,
(LPWSTR)param.c_str(),
NULL,
NULL,
FALSE,
0,
NULL,
NULL,
amp;si,
amp;pi)
) { return(str = GetLastError().toString()); }
dwEvent = WaitForSingleObject(pi.hProcess, БЕСКОНЕЧНЫЙ);
Что я здесь делаю не так? Может кто-нибудь помочь? Я застрял с этим уже давно.
Комментарии:
1. Вы не можете использовать CreateProcess() на телефоне, он не будет компилироваться. Что бы вы ни запускали, это не этот код. Сама идея запуска файла .bat, который разряжает батарею в течение 5 минут, довольно странная.
2. Этот код предназначен не для app Store, а для тестирования. Итак, это довольно нормально.
3. Для меня CreateProcess работает, потому что я использую пользовательский SDK. Но, если вы знаете какой-либо другой способ использования Windows phone SDK, дайте мне знать.
4. @HansPassant Как вы можете проголосовать за это, ничего не зная?
5. Подождите, есть тысячи пользователей SO, которые могли проголосовать. Почему вы предполагаете, что это я? Только потому, что я единственный, кто пытался вам помочь? Я должен сказать, мне тоже очень любопытно, почему вы думаете, что можете использовать CreateProcess, и ваш вопрос не дает никакого представления о том, как это могло произойти. Покажите нам, что вы знаете, это улица с двусторонним движением.
Ответ №1:
ОК. Я нашел решение для этого. Параметр lpApplicationName функции CreateProcess() должен быть заполнен «c:windowssystem32cmd.exe «слишком. Это работает для меня.