Здравствуйте, ptrts, Вы писали:
P>Вопрос №1. Неужели чтобы получить хэндл процесса, никак не обойтись без hWnd? При чем здесь окно, ведь процесс как таковой вообще не обязан иметь окна
GetModuleFileName(0, buffer, sizeof(buffer))
P>Вопрос №2. Чем отличается идентификатор процесса (который GetWindowThreadProcessId) от хэндла процесса (который OpenProcess)?
Первая возвращает идентификатор процесса, уникальный в пределах машины, вторая — хёндл ядерного объекта "процесс", уникальный в пределах одного, вызвавшего данную функцию процесса.
На машине не может быть одновременно двух процессов с одинаковым ProcessID и двух потоков с одинаковым ThreadID. Результат вызова GetWindowThreadProcessId в разных процессах для одного и того-же окна вернёт одинаковые ProcessID и ThreadID. А несколько вызовов OpenProcess с одинаковыми параметрами даже в одном процессе вернут разные хёндлы, если между вызовами эти хёндлы не закрывать.
О разнице рассказывать слишком долго, лучше книжку какую-никакую прочитайте.