FindWindow
возвращает дескриптор окна, который, кстати, должен быть объявлен как HWND
. OpenProcess
возвращает дескриптор процесса. ReadProcessMemory
ожидает передачи дескриптора процесса.
Вы передаете дескриптор окна на ReadProcessMemory
, а не на дескриптор процесса. ReadProcessMemory
, следовательно, потерпит неудачу и сообщит, что дескриптор недействителен. Передайте hProcess
на ReadProcessMemory
.
Если вы собираетесь запросить PID у пользователя, вам не нужен дескриптор окна, и вы можете удалить вызов на FindWindow
. Если вы хотите получить PID из дескриптора окна, используйте FindWindow
для получения дескриптора окна, а затем вызовите GetWindowThreadProcessId
для получения идентификатора процесса.