Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2009.11.29;
Скачать: CL | DM;

Вниз

"Чужое" окно.   Найти похожие ветки 

 
MonoLife ©   (2009-10-14 16:52) [0]

Приветствую!
ShowWindow(HWND, SW_SHOWNORMAL);
SetForegroundWindow(HWND);
Как убедиться, что это окно окончательно "нарисовалось" над всеми остальными окнами на рабочем столе?


 
clickmaker ©   (2009-10-14 17:00) [1]

GetForegroundWindow() = HWND


 
MonoLife ©   (2009-10-14 17:10) [2]


> clickmaker ©   (14.10.09 17:00) [1]

спасиб!


 
MonoLife ©   (2009-10-14 17:45) [3]

Не получилось, однако.. Иду не тем путем?
Поясню, хочу сделать скриншот нужного окна.
0. ...
1. Нахожу окно по заголовку
2. ShowWindow(HWND, SW_SHOWNORMAL);
3. SetForegroundWindow(HWND);
4. GetWindowRect(HWND, Rect);
5. repeat
   until GetForegroundWindow()=HWND;
6. ...Canvas.CopyRect(Rect, canvas, Rect);
7. Сохраняю битмэп.

Если нужное окно было позади других скрин делается раньше, чем окно "нарисовалось". Спасает только sleep() перед CopyRect(). Но вот интервал задержки неизвестно сколько делать, на разных компах по разному...


 
Юрий Зотов ©   (2009-10-14 17:55) [4]

Попробуйте так:
repeat
 Sleep(1)
until GetForegroundWindow = HWND;


 
MonoLife ©   (2009-10-14 18:06) [5]

Благодарю. Работает!


 
Юрий Зотов ©   (2009-10-14 18:10) [6]

А еще лучше так:

repeat
SwitchToThread
until GetForegroundWindow = HWND;


 
MonoLife ©   (2009-10-14 18:43) [7]

Нет, всё не так, как я думал:(
Пока требуемое окно свернуто на панели задач работает и
repeat
Sleep(1)
until GetForegroundWindow = HWND;

и
repeat
SwitchToThread
until GetForegroundWindow = HWND;

Но, если окно просто, позади других, то все равно, не успевает перерисоваться.


 
Юрий Зотов ©   (2009-10-15 13:35) [8]

Посмотрите функции API:

- GetWindowThreadProcessID (дает ID потока и процесса окна)
- OpenProcess (дает хэндл процесса)
- WaiForInputIdle (ждет, когда процесс выйдет на ожидание ввода юзера)


 
Юрий Зотов ©   (2009-10-15 13:36) [9]

И CloseHanlle после всего этого, конечно (освободить хэндл процесса).


 
MonoLife ©   (2009-10-15 16:44) [10]


> Юрий Зотов ©   (15.10.09 13:35) [8]
>
> Посмотрите функции API:

Спасибо за участие, Юрий, функции приму к сведению, hlp по ним имеется :).



Страницы: 1 вся ветка

Текущий архив: 2009.11.29;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.008 c
8-1199292139
aaaone
2008-01-02 19:42
2009.11.29
полупрозрачные окна. проблема прорисовки контролов.


2-1255360512
Johnnnnn
2009-10-12 19:15
2009.11.29
убрать выскакивающее окно asynchronous socket error?


8-1173516347
hypnotize
2007-03-10 11:45
2009.11.29
Вывести графику на Canvas с Anti-Aliasing ом


15-1254342609
Юрий
2009-10-01 00:30
2009.11.29
С днем рождения ! 1 октября 2009 четверг


2-1255507339
фывфыв
2009-10-14 12:02
2009.11.29
idhttp zlib