Це так я робила на самому початку)
#include "stdafx.h"
#include <windows.h>
#include "string.h"
#include <strsafe.h>
int main(int argc, char* argv[])
{
STARTUPINFO si;
PROCESS_INFORMATION pi;
TCHAR path[1000] = _T("c:\\abc\\"), startpath[1000] = _T("c:\\abc\\"); //шлях до каталогу; одна міняється, а інша стабільна
TCHAR procname[1000][14]; //масив назв процесів
FILE *f; //змінна для поточного файлу
TCHAR buf[1000];
int i = 0, pid[1000]; //лічильник процесів, масив ідентифікаторів
//--------Вичитуємо з файлу назви процесів------------
fopen_s(&f, "c:\\abc\\TASK.TXT", "rt"); //відкриваємо в режимі читання
while (!feof(f)) //поки не кінець файлу
{
_fgetts(procname[i], 14, f); //зчитуємо рядок
_fgetts(buf, 14, f); //пересуваємося
i++; //збільшуємо лічильник зчитаних процесів
}
//---------------------------------------------------
fclose(f); //закриваємо поточний файл
fopen_s(&f, "c:\\abc\\PROCESS.TXT", "wt"); //відкриваємо файл для запису ідентифікаторів
for (int j = 0; j < i; j++) //цикл на кількість процесів
{
_tcscat_s(path, procname[j]); //об'єднуємо каталог і назву процесу
ZeroMemory( &si, sizeof(si));
si.cb = sizeof(si);
//ZeroMemory( &pi, sizeof(pi));
if( !CreateProcess(NULL,path, NULL, NULL, FALSE, CREATE_NEW_CONSOLE | NORMAL_PRIORITY_CLASS, NULL, NULL, &si, &pi)) //створюємо процес
return 0;
pid[j]=GetProcessId(pi.hProcess); //зчитуємо ідентифікатор поточного процесу
fprintf(f,"%d\n",pid[j]); //записуємо ідентифікатор у файл
// Close process and thread handles.
CloseHandle( pi.hProcess );
CloseHandle( pi.hThread );
for (int k=0; k<14; k++) //перезаписуємо в робочу змінну шляху каталог
path[k]=startpath[k];
}
fclose(f); //закриваємо файл з ідентифікаторами
TCHAR pTASK2[] = _T("c:\\abc\\TASK2.exe"); //шлях до TASK2
ZeroMemory( &si, sizeof(si));
si.cb = sizeof(si);
//ZeroMemory( &pi, sizeof(pi));
if( !CreateProcess( pTASK2, NULL, NULL, NULL, FALSE, CREATE_NEW_CONSOLE | NORMAL_PRIORITY_CLASS, NULL, _T("c:\\abc\\"), &si, &pi)) //створємо процес
return 0;
// printf("\n\n%ul\n",GetPriorityClass(pi.hProcess));
puts("\n");
CloseHandle( pi.hProcess );
CloseHandle( pi.hThread );
return 0;
}
Вибачте, там код був трохи не той. Я відредагувала. Ось так в мене було спочатку.