Как посмотреть какие процессы запускает программа

Мне надо найти один процесс. Когда этот процесс создается, то он запускает еще один с таким же именем. Я посмотрел в диспетчер задач, там нужный мне процесс запускается от пользователя, а другой от Системы. Мне нужен именно тот процесс, который запустился от пользователя. Можно ли как то определить кто запустил процесс или есть способ проще?

Отслеживать
user194374
задан 7 авг 2016 в 9:57
HackMemory HackMemory
181 10 10 бронзовых знаков
ОС будем угадывать коллективно?
7 авг 2016 в 9:59
Виндус конечно!

7 авг 2016 в 10:01

1 ответ 1

Сортировка: Сброс на вариант по умолчанию

#include #define MAX_NAME 256 BOOL GetLogonFromToken (HANDLE hToken, _bstr_t strdomain) < DWORD dwSize = MAX_NAME; BOOL bSuccess = FALSE; DWORD dwLength = 0; strUser = «»; strdomain = «»; PTOKEN_USER ptu = NULL; //Verify the parameter passed in is not NULL. if (NULL == hToken) goto Cleanup; if (!GetTokenInformation( hToken, // handle to the access token TokenUser, // get information about the token’s groups (LPVOID) ptu, // pointer to PTOKEN_USER buffer 0, // size of buffer if (GetLastError() != ERROR_INSUFFICIENT_BUFFER) goto Cleanup; ptu = (PTOKEN_USER)HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, dwLength); if (ptu == NULL) goto Cleanup; >if (!GetTokenInformation( hToken, // handle to the access token TokenUser, // get information about the token’s groups (LPVOID) ptu, // pointer to PTOKEN_USER buffer dwLength, // size of buffer goto Cleanup; >SID_NAME_USE SidType; char lpName[MAX_NAME]; char lpDomain[MAX_NAME]; if( !LookupAccountSid( NULL , ptu->User.Sid, lpName, dwSize, DWORD dwResult = GetLastError(); if( dwResult == ERROR_NONE_MAPPED ) strcpy (lpName, «NONE_MAPPED» ); else < printf(«LookupAccountSid Error %un», GetLastError()); >> else < printf( «Current user is %s\%sn», lpDomain, lpName ); strUser = lpName; strdomain = lpDomain; bSuccess = TRUE; >Cleanup: if (ptu != NULL) HeapFree(GetProcessHeap(), 0, (LPVOID)ptu); return bSuccess; > HRESULT GetUserFromProcess(const DWORD procId, _bstr_t strdomain) < HANDLE hProcess = OpenProcess(PROCESS_QUERY_INFORMATION,FALSE,procId); if(hProcess == NULL) return E_FAIL; HANDLE hToken = NULL; if( !OpenProcessToken( hProcess, TOKEN_QUERY, CloseHandle( hProcess ); return E_FAIL; >BOOL bres = GetLogonFromToken (hToken, strUser, strdomain); CloseHandle( hToken ); CloseHandle( hProcess ); return bres?S_OK:E_FAIL; >
Отслеживать
ответ дан 7 авг 2016 в 10:02
22.1k 2 2 золотых знака 32 32 серебряных знака 52 52 бронзовых знака
Спасибо, работает!
7 авг 2016 в 10:36

  • c++
  • windows
    Важное на Мете
Читайте также:
Не найдена программа ubisoft game launcher код ошибки 2

Похожие

Подписаться на ленту

Лента вопроса

Для подписки на ленту скопируйте и вставьте эту ссылку в вашу программу для чтения RSS.

Как посмотреть недавно открытые файлы и папки в Windows 10

Нажимая «Принять все файлы cookie» вы соглашаетесь, что Stack Exchange может хранить файлы cookie на вашем устройстве и раскрывать информацию в соответствии с нашей Политикой в отношении файлов cookie.

Поймал майнер (nvvkdv.exe) — видеокарта на 90% в простое — fps в играх ушёл на дно!

Источник: ru.stackoverflow.com

Как узнать, какие ненужные процессы запущены в компьютере?

Чтобы увидеть список запущенных процессов нужно открыть окно диспетчера процессов, нажав одновременно три клавиши «Ctrl+Alt+Delete». Также ещё можно открыть окно запущенных служб, для этого правой кнопкой мышки кликаем по ярлыку «Мой компьютер», выбираем строчку «Управление» («Manage», если англ. версия системы), в появившемся окне есть строчка «Службы и приложения», а в ней будет надпись «Службы», откроется большой список.

Ну а дальше придётся решать какой процесс или какая служба для пользователя нужна, а какая нет. Вот это и есть самое сложное, потому как для этого придётся читать непонятные описания каждого процесса или службы. Можно прочитать такие описания в самой системе или поискать в Интернете. В Интернете конечно лучше, ибо там просто напросто по людски объяснят, что можно считать ненужным, а чего трогать не следует.

автор вопроса выбрал этот ответ лучшим

Источник: www.bolshoyvopros.ru

Как посмотреть процессы командной строки в диспетчере задач

В данной статье показаны действия, с помощью которых можно посмотреть процессы (аргументы) командной строки в диспетчере задач операционной системы Windows 10, Windows 8.1.

Если вы продвинутый пользователь, то вы вероятно используете диспетчер задач в Windows на регулярной основе для проверки производительности, служб, процессов.

Читайте также:
Как стать участником программы sky priority

Также при необходимости можно просмотреть аргументы командной строки, выполняемые приложением, процессом или службой.

Аргумент командной строки — это информация, передаваемая операционной системой в программу при её запуске, и таким образом можно узнать путь к приложению и другие данные выполняемые каким-либо процессом.

Как посмотреть процессы командной строки в диспетчере задач

Чтобы посмотреть процессы командной строки, откройте диспетчер задач и затем щелкните правой кнопкой мыши в имени любого столбца и в открывшемся контекстном меню выберите пункт Командная строка .

После этого в диспетчере задач появится столбец Командная строка , в котором вы увидите аргументы командной строки того или иного запущенного приложения, службы или процесса.

Источник: winnote.ru

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru