Форум программистов, компьютерный форум, киберфорум
Наши страницы
C# .NET
Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 22, средняя оценка - 4.68
nicolas2008
216 / 206 / 75
Регистрация: 30.04.2009
Сообщений: 594
Завершенные тесты: 1
#1

По известному дескриптору окна получить Id процесса, к которому оно принадлежит - C#

27.02.2010, 13:54. Просмотров 2851. Ответов 4
Метки нет (Все метки)

Можно ли как-то по известному дескриптору окна получить Id процесса, к которому оно принадлежит?
Заранее спасибо.
http://www.cyberforum.ru/csharp-net/thread969159.html
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.02.2010, 13:54
Я подобрал для вас темы с готовыми решениями и ответами на вопрос По известному дескриптору окна получить Id процесса, к которому оно принадлежит (C#):

Как получить имя класса, которому принадлежит поле
Есть метод с одним out-параметром, принимающим string. Как с помощью рефлексии...

Получить ID процесса если известно его хэндл, название окна или название процесса
а как получить ID процесса если известно его хэндл, название окна или название...

Как получить все дочерние окна процесса?
Получаю все процессы, нахожу нужный, но мне еще нужны вложенные окна типа Ebit...

Перерисовка окна другого процесса через дескриптор этого окна
Приветствую всех. Может кто-то знает, как перерисовать окно другого процесса...

Не удается получить значение поля бд по известному другому полю
Здравствуйте! Вот часть кода. Нужно из бд аксесс изъять значение поля Namereg...

4
blackjack74
5 / 4 / 1
Регистрация: 27.02.2010
Сообщений: 29
27.02.2010, 14:21 #2
The GetWindowThreadProcessId function retrieves the identifier of the thread that created the specified window and, optionally, the identifier of the process that created the window. This function supersedes the GetWindowTask function.

C#
1
2
3
4
5
DWORD GetWindowThreadProcessId(
 
    HWND hWnd,  // handle of window
    LPDWORD lpdwProcessId   // address of variable for process identifier
   );

Parameters

hWnd

Identifies the window.

lpdwProcessId

Points to a 32-bit value that receives the process identifier. If this parameter is not NULL, GetWindowThreadProcessId copies the identifier of the process to the 32-bit value; otherwise, it does not.



Return Values

The return value is the identifier of the thread that created the window.

Remarks

This function replaces the GetWindowTask function of Windows version 3.x.
выдержка из документации

примерно так:
C#
1
2
3
...
if ( GetWindowThreadProcessId ( hwnd, &lProcessID) 
 { ... }
1
Kolia.ZP
1 / 1 / 0
Регистрация: 18.11.2008
Сообщений: 8
01.03.2010, 00:44 #3
Примерно так:
C#
1
2
3
4
5
6
7
8
9
10
11
12
using Sytem.Diagnostics;
 
int GetPIDByWindow(IntPrt WindowID) {
    int result=-1;
    foreach(Process p in Process.GetProcesses()) {
        if (p.MainWindowHandle==WindowID) {
            result=p.Id;
            break;
        }
    }
    return result;
}
1
nicolas2008
216 / 206 / 75
Регистрация: 30.04.2009
Сообщений: 594
Завершенные тесты: 1
01.03.2010, 20:44  [ТС] #4
Еще вопрос по этой теме...
Можно ли как то получить все дескрипторы окон принадлежащие данному процессу не используя перечисление окон (EnumWindows) ?
0
d0s'A
145 / 105 / 25
Регистрация: 23.06.2008
Сообщений: 320
02.03.2010, 14:32 #5
Скорее всего нет!
0
02.03.2010, 14:32
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.03.2010, 14:32
Привет! Вот еще темы с решениями:

Как по дескриптору процесса получить hWnd порождённого этим процессом окна?
Как по дескриптору процесса получить hWnd порождённого этим процессом окна? ...

Получить путь к .exe по дескриптору окна
wchar_t szFileName; DWORD pID; HANDLE hProcess; HWND hWnd =...

По известному хендлу окна получить его координаты
Как по известному хендлу окна (handle - целое число) получить размеры и...

Получить идентификатор процесса по имени окна
Нужно получить PID именно процесса(не потока) по заданному имени окна(того, что...


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

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

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