как сделать снимок системы в вызываемой функции?

Тема в разделе "WASM.BEGINNERS", создана пользователем amvoz, 5 дек 2011.

  1. amvoz

    amvoz Member

    Публикаций:
    0
    Регистрация:
    12 ноя 2008
    Сообщения:
    653
    Друзья! Необходимо сделать снимок системы и затем получить заполнение структуры PROCESSENTRY32 pe32 для кажого процесса

    И в процессе заполнения структуры нужно тоже делать снимок системы, то есть псевдокод такой:
    Код (Text):
    1. //делаю снимок системы
    2. CreateToolhelp32Snapshot()
    3.  
    4. //ПОтом получаю данные по первому процессу
    5. Process32First ();
    6.  
    7. //А вот ту-то и надо сделать ещё один снимок
    8. //пусть этим занимается функция f ()
    9. //(один из её зараметров- хэндл снимка  системы)
    10.  
    11. f();
    12.  
    13. //И по всем остальным процессам тоже получаю данные
    14. while (Process32Next) {
    15.  //и тут тоженадо сделать снимок системы f ()
    16.  f();
    17. }
    А какой может быть псевдокод f ()? Тут я теряюсь
    псевдокод f();
    Код (Text):
    1. Process32First ();
    2.  
    3. while (Process32Next) {
    4. }
    Допустим в функции f() я удачно сделал снимок системы. Но по её возврату в основной код (место, где f() вызывается первый раз), основной код ЗАВЕРШИТСЯ, поскольку в функции f() все процессы уже "перебраны" с помощью Process32Next
    А это значит, что снимок системы в основном коде сделать не удастся. Как быть? Cпасибо, кто откликнется.
     
  2. amvoz

    amvoz Member

    Публикаций:
    0
    Регистрация:
    12 ноя 2008
    Сообщения:
    653
    Решил так: сперва просто кропаю список всех процессов в системе и заполняю их именами вектор строк.
    После чего вызываю функцию f(), куда передаю параметрами этот вектор имён и хэндл снимка системы, и в этой функции f() в цикле для кажлого найденного процесса делаю чё надо:
    Код (Text):
    1. for (int i= 0; i< vec.size(); i++) {
    2.  Process32First ();
    3.  while (Process32Next) { }
    4. }
    и для каждого процесса получаю, чё хотел