0 / 0 / 0
Регистрация: 02.09.2013
Сообщений: 52
1

Запуск программ по определенной схеме с использованием Fiber и Thread

29.03.2015, 11:42. Показов 1340. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Необходимо выполнить запуск программ калькулятора (сalc.exe), Графического редактора Paint (mspaint.exe), блокнота (notepad.exe) по такой схеме: пользователь выбирает, какую программу запустить и если эта программа завершается, автоматически запускается следующая по списку, и так для всех программ. Пользователь может выбрать любую программу для запуска, автоматически должны запускаться все другие программы из списка.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
29.03.2015, 11:42
Ответы с готовыми решениями:

Последовательный запуск Thread процессов с использованием ExecutorService
Здравствуйте. Я здесь впервые, поэтому не знаю еще как принято излагать вопросы. Так что заранее...

Запуск программ в определенной последовательности (Апдейтер для приложения)
Здравствуйте у меня к вам вопрос. Я сделал аптейтер с автообновлением, сам апдейтер и...

Осуществить запуск одной из программ, определенной при запуске командного файла
Доброго времени суток! Прошу помочь с написанием батничка, т.к. крайне нуждаюсь в нём, а попытки...

Нажатие определенной клавиши на клавиатуре = Запуск определенной функции
Здравствуйте. У меня такой вопрос: как при нажатии, к примеру, клавиши "1" на клавиатуре запустить...

1
903 / 424 / 159
Регистрация: 02.04.2014
Сообщений: 1,206
29.03.2015, 18:14 2
Лучший ответ Сообщение было отмечено kirdeleg как решение

Решение

Схема такая: объявляется функция в которой будут запускаться программы:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
typedef TCHAR sProgramPath[MAX_PATH] ;
 
DWORD WINAPI ProgramRunThreadProc( _In_ LPVOID lpParameter)
{
    sProgramPath aProgramms[3] = 
    {   L"c:\\windows\\notepad.exe", 
        L"c:\\windows\\System32\\calc.exe", 
        L"c:\\windows\\System32\\mspaint.exe" };
 
    int iProgramNum = (int)lpParameter;
    STARTUPINFO cif;
    ZeroMemory(&cif,sizeof(STARTUPINFO));
    PROCESS_INFORMATION pi;
    BOOL bSuccess = CreateProcess(aProgramms[iProgramNum], NULL, NULL, NULL, FALSE, 0, NULL, NULL, &cif, &pi);
    WaitForSingleObject(pi.hProcess, INFINITE);
 
    // запускаем следующую: 
    iProgramNum++;
    if (iProgramNum > 2) iProgramNum = 0;
    bSuccess = CreateProcess(aProgramms[iProgramNum], NULL, NULL, NULL, FALSE, 0, NULL, NULL, &cif, &pi);
    WaitForSingleObject(pi.hProcess, INFINITE);
    // и так далее...
 
    return 0;
}
Запускаем новый поток:
C++
1
CreateThread(NULL, 0, ProgramRunThreadProc, (LPVOID)1, 0, NULL);
(LPVOID)1 - номер запускаемой программы (т.е. индекс в массиве aProgramms)
0
29.03.2015, 18:14
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
29.03.2015, 18:14
Помогаю со студенческими работами здесь

Таблицы для группировки данных по определенной схеме
Всем привет. Подскажите, плз, есть ли шанс сделать следующие вещи. Есть таблица из 16 игроков, в...

Как переставить блоки матрицы по определенной схеме?
Дана действительная матрица порядка 2*n. Получить новую матрицу, переставляя ее блоки размера n*n в...

Из двухмерного массива сформировать одномерный по определенной схеме
дано двухмерный массив A необходимо создать одномерный массив B располагая в нем элементы по данной...

Определить количество комбинаций разноцветных полосок, расположенных по определенной схеме
Задание: http://acm.timus.ru/problem.aspx?space=1&num=1225 Я подумала, что у нас есть 2...

Разработка алгоритмов и программ с использованием под программ
дано действительные числа a, b. Получить u=min(a,b) v=min(ab,a+b) min(u+v2,3,14)

Thread. Запуск потока и уничтожение. C#
есть обработчик Thread myThread = new Thread(new ParameterizedThreadStart(myThreadProc)); public...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru