Запуск системной команды из приложения C ++ отличается от командной строки

0

Я хочу выполнить команду из приложения C++. Я использую:

system("sendEmail.exe -f [email protected] -t ...");

Это работает в Windows Server 2008, а также в других системах. Однако он не работает на моем новом сервере (Windows Server 2012), он, кажется, вызывает команду, но никогда не завершается. Если я ввожу ту же самую команду в командном окне, она работает нормально.

Я попытался использовать

system("cmd.exe /C \"sendEmail.exe -f [email protected] -t ...\""); 

но это не помогло.

У кого-нибудь есть идея, в чем разница между вызовом из C++ с системой и запуском в cmd?

Изменить: проблема уже не воспроизводима. Спасибо за быстрые ответы

  • 0
    Это больше похоже на работу сценария.
  • 1
    Может быть, это выполняется в другом пользовательском контексте.
Показать ещё 2 комментария
Теги:
command-line

1 ответ

3

Попробуйте

system("cmd.exe");

без параметров. Это просто откроет окно cmd и оставьте его открытым. Из этого окна вы можете вызвать sendMail.exe и посмотреть, что происходит. Возможно, существует только другой путь или разрешение.

В качестве альтернативы вы можете использовать функцию Windows Api CreateProcess

  • 0
    Это должно помочь вам - скорее всего, проблемы с Windows UAC.
  • 0
    Я попробовал CreateProcess, это тоже не сработало.
Показать ещё 3 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню