Как дела
То, что я пытаюсь сделать, - это способ найти окно, хотя его идентификатор процесса, получить имя этого окна и изменить его на то, что я хочу.
Я нашел кое-что об этом: (Код 1)
int WINAPI GetWindowText(
_In_ HWND hWnd,
_Out_ LPTSTR lpString,
_In_ int nMaxCount
);
это: (Код 2)
CWnd* pWnd = GetDlgItem(); GetDlgIt
pWnd->SetWindowText(_T("WindowName"));
CString str;
pWnd->GetWindowText(str);
ASSERT(str == _T("WindowName"));
а также это (Код 3)
HWND WindowHandel = FindWindowA(0, "WindowName");
DWORD proccesID = 0
GetWindowThreadProcessId(WindowHandel, &proccesID);
Мои вопросы: как я могу получить идентификатор процесса, получить имя окна этого процесса, поместить его, чтобы коды могли распознавать Hwnd как имя моего окна и изменить его на то, что я хочу. Что-то вроде этого :
Process = "anyprocess.exe"
Get Process ID <
Process ID = 1234567
Get window name from the ProcessID we have <
Window name = "ILoveYou"
Change "ILoveYou" to "IHaveYou"
И если у меня есть более одного окна с тем же именем, есть ли способ проверить первое открытое, чтобы я не менял другие окна?
На мой взгляд, брать WindowName из идентификатора процесса кажется более безопасным, дело в том, что я не хочу говорить коду, что знаю имя окна, я хочу, чтобы он нашел его и изменил его, как это сделал Лиам Нисон с этими плохие парни.
И я также хотел бы узнать больше об использовании этих "(0,...." или "(NULL,....", команда "FindWindowA" была просто примером, я всегда это вижу и не знаю как им правильно пользоваться:
FindWindowA(0, "WindowName")
Пример того, что я хочу, очень поможет мне =) Спасибо за ваше терпение.