Показать сообщение отдельно
  #3  
Старый 15.10.2015, 23:48
Аватар для EvilRussian
EvilRussian EvilRussian вне форума
Начинающий
 
Регистрация: 21.12.2010
Адрес: Россия, Красноярский край
Сообщения: 177
Репутация: 22
По умолчанию

Ага, я уже сам догадался до этого. Код даже искать не пришлось, взял по поисковому запросу в гугле.

Для исторической справки:
Код:
function SearchForWindow(const Caption: String): HWND;
var
  hWin: HWND;
  buff: array [0..255] of Char;
begin
  hWin:= GetWindow(GetForegroundWindow, GW_HWNDFIRST);
  while hWin <> 0 do
     begin
        GetWindowText(hWin, buff, 255);
        if Pos(Caption, buff) <> 0 then break;
        hWin:= GetWindow(hWin, GW_HWNDNEXT);
     end;
  Result:= hWin;
end;

Однако, теперь у меня другая проблема. которая вводит меня в ступор. Спрошу здесь, дабы не создавать новую тему.

Я не могу отправить ничему сообщение SendMessage/PostMessage из приложения. То есть буквально. Пробовал отправить сообщение Notepad-подобной программе, случайную комбинацию в оконное приложение, етц. Не работает как вот это:
Код:
SendMessage(Handle,WM_SETFOCUS,0,0);
Так и отправка нажатия клавиши:
Код:
SendMessage(Handle, WM_KEYDOWN, ord('G'), 0);
sleep(100);
SendMessage(Handle, WM_KEYUP, ord('G'), 0);

Handle определяется 100% верно, я проверил. ShowWindow работает стабильно. Что нужно: переключить фокус на окно (если это выбрано в опциях), передать ему нужную комбинацию клавиш.
__________________
Если не ты, то кто?
(с) Терри Пратчетт

Не забывайте ставить плюсы и говорить спасибо!
Ответить с цитированием