Форум программистов, компьютерный форум, киберфорум
C# .NET
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/11: Рейтинг темы: голосов - 11, средняя оценка - 5.00
1 / 1 / 1
Регистрация: 02.04.2013
Сообщений: 124
1

Получить имя процесса зная handle

03.01.2018, 20:30. Просмотров 2057. Ответов 4

кому-то да понадобиться вот код :
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
        [DllImport("user32.dll")]
        private static extern Int32 GetForegroundWindow();
 
        [DllImport("user32.dll")]
        private static extern UInt32 GetWindowThreadProcessId(Int32 hWnd, out Int32 lpdwProcessId);
 
void SomeMethod()
{
        IntPtr ptr = FindWindow(null, "Собственно сам handle ");
 
            Int32 handle = ptr.ToInt32();
            Int32 ProcessID;
            GetWindowThreadProcessId(handle, out ProcessID);
            Process ActiveProcess = Process.GetProcessById(ProcessID);
 
            MessageBox.Show(ActiveProcess.ProcessName);
}
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
03.01.2018, 20:30
Ответы с готовыми решениями:

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

Как получить информацию о другом окне, зная его Handle
Как получить информацию о другом окне если есть Хендл(расположение, заголовок, размеры и т.д.)? И...

Получить Handle AppID процесса
Здравствуйте. Есть приложение на delphi, в которой устанавливается Handle, для того, что-бы можно...

Через функцию CreateToolhelp32Snapshot получить имя процесса
возник новый вопрос=) через винапишную функцию CreateToolhelp32Snapshot(....) пытаюсь получить...

4
10 / 10 / 7
Регистрация: 27.12.2017
Сообщений: 72
04.01.2018, 02:40 2
А где же импорт самого FindWindow? И зачем нам GetForegroundWindow, если нигде не используем его?
0
1 / 1 / 1
Регистрация: 02.04.2013
Сообщений: 124
04.01.2018, 12:02  [ТС] 3
Ошибся вот норм код просто поздно уже было запарился)
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
[DllImport("user32.dll", SetLastError = true)]
            public static extern IntPtr FindWindow(string lpClassName, string lpWindowName);
 
 
         [DllImport("user32.dll")]
        private static extern UInt32 GetWindowThreadProcessId(Int32 hWnd, out Int32 lpdwProcessId);
 
void SomeMethod()
{
        IntPtr ptr = FindWindow(null, "Собственно сам handle ");
 
            Int32 handle = ptr.ToInt32();
            Int32 ProcessID;
            GetWindowThreadProcessId(handle, out ProcessID);
            Process ActiveProcess = Process.GetProcessById(ProcessID);
 
            MessageBox.Show(ActiveProcess.ProcessName);
}
0
Эксперт .NET
14688 / 11104 / 2917
Регистрация: 17.09.2011
Сообщений: 18,630
04.01.2018, 12:22 4
Лучший ответ Сообщение было отмечено maksili как решение

Решение

Цитата Сообщение от maksili Посмотреть сообщение
C#
1
Int32 handle = ptr.ToInt32();
Если дескриптор уже имеется, то зачем тянуть остальные функции из Win API?
Можно получить список запущенных процессов и отфильтровать по дескриптору:
C#
1
var process = Process.GetProcesses().SingleOrDefault(p => p.Handle == handle);
1
1 / 1 / 1
Регистрация: 02.04.2013
Сообщений: 124
04.01.2018, 13:00  [ТС] 5
Спасибо я не профи(только начинаю разбираться) просто долго очень пытался найти код(ничего не получилось), вот и пришлось лепить из того что было.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
04.01.2018, 13:00

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Можно ли запретить запуск окна, зная его Handle
Собственно вот и вопрос да и еще если можно вообще запретить запуск этой проги или её хранение, или...

Можно ли вставить свой собственный контрол в чужое окно, зная его handle?
Можно ли вставить свой собственный контрол в чужое окно, если я знаю его handle? К примеру,...

Как получить имя пользователя процесса как в диспетчере задач?
Пробовал через Proccess.StartInfo.UserName, но там пусто, потом через string propertiesToSelect...

Как узнать ID процесса (PID) по дескриптору окна (Handle)?
АП. Интересует как узнать PID по Handle.


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

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

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