Как я могу запустить внешнюю программу в C? - PullRequest
9 голосов
/ 12 марта 2011

Как мне запустить внешнюю программу на C? Например, прикладные программы, такие как browser, word, Notepad и т. Д. Также, как я могу установить определенный размер окна внешней прикладной программы? Например, размер окна 300 X 300 пикселей.

Ответы [ 6 ]

14 голосов
/ 12 марта 2011

Стандартный способ - system - работает практически везде, но не позволяет контролировать ход дочернего процесса.

В возрастающем порядке (и сложности) управления Windows предоставляет: WinExec, ShellExecute, ShellExecuteEx и CreateProcess.С CreateProcess вы передаете структуру STARTUPINFO или STARTUPINFOEX.В любом случае, вы можете указать начальную позицию и / или размер для дочернего окна (хотя дочерний процесс может и может переместить / изменить размер своего окна, прежде чем он даже станет видимым).

Вы также можете рассмотреть Boost Process, который не принят в качестве официальной части Boost, но обеспечивает немного больший контроль, чем system, оставаясь при этом достаточно переносимым для значительного числа наиболее широко используемых систем (включая как Windows, так ивсе, что связано с POSIX, например, Linux или OS X).

2 голосов
/ 12 марта 2011

Вы можете использовать системную функцию для этой цели, как,

#include <stdlib.h>

int main()
{
    system("your-program-name");

    return 0;
}

Это будет выполнено в командной строке.

Но если вы хотите использовать winapi, лучше всего использовать функцию CreateProcess (), http://msdn.microsoft.com/en-us/library/ms682425.aspx

2 голосов
/ 12 марта 2011

Вы запускаете и внешнюю программу, используя system из стандартной библиотеки C или функцию Win32 CreateProcess .

Чтобы изменить размер главного окна создаваемого вами приложения. Сначала запустите процесс с помощью CreateWindow. Затем используйте EnumThreadWindows с дескриптором CreateProcess, чтобы найти главное окно этого процесса. Наконец, вы можете вызвать MoveWindow с этим дескриптором, чтобы установить размер и положение.

0 голосов
/ 13 марта 2011

Никогда не используйте system () в Windows (Запрещено) Используйте скорлупу apis

0 голосов
/ 12 марта 2011

Вы также можете проверить _popen ( stdio.h ) для консольных приложений (только).

Чтобы создать приложение Windows, которое перенаправляет ввод и вывод, см. Создание дочернего процесса с перенаправленным вводом и выводом в Windows SDK.

0 голосов
/ 12 марта 2011

Для запуска внешней программы наиболее простой метод - использовать system. Есть и другие варианты (воспользуйтесь поиском).

Чтобы установить размер окна, вы должны взаимодействовать с вашим оконным менеджером и попросить его сделать это. Я не знаю, возможно ли это для вас (в Windows есть команда «start» , которая может оказаться полезной, если вы используете эту ОС).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...