Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Жека_
Заблокирован
#1

процессы - C++

23.05.2011, 00:52. Просмотров 709. Ответов 7
Метки нет (Все метки)

всем привет
подскажите как создать процесс по имени например explorer.exe если можно то через

system(...);
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.05.2011, 00:52
Здравствуйте! Я подобрал для вас темы с ответами на вопрос процессы (C++):

Процессы в c++ - C++
Здравствуйте ребят. Есть вот задание "Создать программу, порождающую поток, который копирует файлы. Получить информацию о текущем...

С++ процессы - C++
Здравствуйте,нужна помощь:нужно создать процесс по схеме(Пример:1|1.1|1.1.1|1.1.2|1.2|2|2.2| и так далее.Расшифровка:Начинается работа...

MPI процессы - C++
пусть n-количество процессов. процесс с номером 0 запрашивает у пользователя элементы квадратной матрицы размерности n и рассылает их всем...

Распараллелить процессы - C++
доброго вечера, прошу помощи, дали задание распараллелить процессы, что бы уменьшить время выполнения программы, я в программировании...

Разветвляющийся процессы - C++
1. Составьте программу, которая по трем введенным вами числам определит, могут ли эти числа быть длинами сторон треугольника, и если да, то...

Итерационные процессы - C++
Нужно написать программу на С++ по данной формуле. Перелопатил уже кучу всего. Но ничего полезного найти не могу. Помогите. Заранее спасибо!

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
kravam
быдлокодер
1694 / 881 / 44
Регистрация: 04.06.2008
Сообщений: 5,441
23.05.2011, 01:20 #2
НЕ очень правда понятно почему эта херь не работает
C++
1
CreateProcess ("explorer.exe", 0, 0, 0, 0, 0, 0, 0, &si, &pi))
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
26
27
#include <stdio.h>
#include <windows.h>
 
int main() {
 STARTUPINFO si;
 PROCESS_INFORMATION pi;
 ZeroMemory(&si,sizeof(STARTUPINFO) );
 
 if (CreateProcess ("C:\\WINDOWS\\explorer.exe", 0, 0, 0, 0, 0, 0, 0, &si, &pi)) { 
 
 //Почему необходимо закрывать описатель потока- смотри у Джефри Рихтера в главе четвёртой, где-то в конце
 //Вернуться, бля, Восковиков  закрывает и описатель процесса! Разобраться!
  CloseHandle( pi.hProcess );
  CloseHandle( pi.hThread );
 }
 
 
 else {
  printf ("protsessne sozdan");
  system ("pause");
 }
 system ("pause");
 
 system ("explorer.exe");
 
 return 0;
}
Жека_
Заблокирован
23.05.2011, 01:25  [ТС] #3
а как сделать чтобы нельзя было убить процесс
kravam
быдлокодер
1694 / 881 / 44
Регистрация: 04.06.2008
Сообщений: 5,441
23.05.2011, 01:28 #4
Не поможет, но держи
Делать неубиваемый процесс очень просто.
Перед тем, как убить винда сначала попытается завершить
его по-хорошему. Тут он и должен запустить свою копию
и передать ей все нужные данные перед благополучным
завершением.

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
26
27
28
29
LRESULT WINAPI WndProc(HWND hWnd, UINT msg,
     WPARAM wParam, LPARAM lParam)
{
  switch(msg)
  {
     //HANDLE_MSG(hWnd, WM_CREATE, WndProc_OnCreate);
     HANDLE_MSG(hWnd, WM_DESTROY, WndProc_OnDestroy);
     //HANDLE_MSG(hWnd, WM_SIZE, WndProc_OnSize);
     //HANDLE_MSG(hWnd, WM_COMMAND, WndProc_OnCommand);
     default:
        return DefWindowProc(hWnd, msg, wParam, lParam);
  }
}
 
void WndProc_OnDestroy(HWND hWnd)
{
  STARTUPINFO si;
  PROCESS_INFORMATION pi;
 
  // Создадим другой процесс, а этот благополучно завершим.
  memset(&si, 0, sizeof(STARTUPINFO));
  si.cb = sizeof(STARTUPINFO);
  CreateProcess(NULL, "program.exe", NULL, NULL,
      FALSE, NORMAL_PRIORITY_CLASS, NULL, NULL, &si, &pi);
  CloseHandle(pi.hThread);
  CloseHandle(pi.hProcess);
  PostQuitMessage(0);
  //return FORWARD_WM_DESTROY(hWnd, DefWindowProc);
}
Жека_
Заблокирован
23.05.2011, 01:31  [ТС] #5
еще вопрос как запретить копирование программы
kravam
быдлокодер
1694 / 881 / 44
Регистрация: 04.06.2008
Сообщений: 5,441
23.05.2011, 01:42 #6
А подробнее?
Жека_
Заблокирован
23.05.2011, 01:57  [ТС] #7
ну чтобы программу нельзя было скопировать. работал только один экземпляр программы
kravam
быдлокодер
1694 / 881 / 44
Регистрация: 04.06.2008
Сообщений: 5,441
23.05.2011, 02:31 #8
Тогда так, программа proga.exe должна запускаться и первым делом искать список процессов. Если в списке процессов имеется proga.exe (то есть уже имеется запущеный экземпляр), то прога прекращает работу, а тот экземпляр (первый) работает как ни в чём не бывало.
Как найти список процессов в системе смотри гугл.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.05.2011, 02:31
Привет! Вот еще темы с ответами:

Разветвленные процессы - C++
Добрый день. Нужно составить программу в среде Dev-C++ предназначенную для обработки разветвленных процессов. Пользователь вводит...

Процессы и потоки. С++ - C++
Помогите выполнить задание, пожалуйста: Процесс/поток генерирует в файл заданное при его запуске количество псевдослучайных целых чисел...

Процессы с прерываниями - C++
Друзья, помогите реализовать на С++ программку в консольном приложении VStudio 2008 по такому алгоритму: 1) Запускаем базовый процесс. ...

Процессы и потоки - C++
Здравствуйте, КиберФорумчане!) Начал разбираться с процессами и потоками. Представление об этом небольшое, потому сразу хотелось бы...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
23.05.2011, 02:31
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru