Форум: "Система";
Текущий архив: 2002.12.23;
Скачать: [xml.tar.bz2];
ВнизКак получить идентификатор окна кнопки Найти похожие ветки
← →
turonix (2002-10-17 13:01) [0]Как получить идентификатор окна кнопки "Пуск" и "taskbar"
← →
Игорь Шевченко (2002-10-17 13:19) [1]FindWindow
← →
Rustam_Katana (2002-10-17 13:21) [2]Точно не помню, но было можно получить handle через
FindWindow("здесь не помню слово волшебное было","") и все, потом работаешь, как с обычным окном...
Поищу, если найду, то скину
← →
Song (2002-10-17 14:25) [3]Волшебное слово Shell_TrayWnd
← →
turonix (2002-10-17 23:37) [4]я реализовал программу следующим образом:
var
Wnd:hWnd;
begin
Wnd := FindWindow("Shell_TrayWnd", nil);
Wnd := FindWindowEx(Wnd, HWND(0),"Button", nil);
ShowWindow(Wnd, SW_show);
//ShowWindow(Wnd, SW_hide);
end.
ОДНАКО я не понимаю двух вещей! Когда программу гонишь по шагам
она не работает: не хочет прятать кнопку, при этом если ее запустить (хотя бы F9) то все нормально. Еще когда ее гонишь по шагам то значения Wnd равно 0 ,а это значит, что идентификатор окна не найден ???? что за бред???
Вообще я хочу заставить это кнопку прыгать по экрану. Но пока данный код работать не хочет, кнопка только пропадает, а изменять свои координаты не хочет.
var
StartButtonWnd,StartButtonBmp:THandle;
i,l,h:integer;
WRct:TRect;
MWStruct:HDWP;
w:THandle;
begin
StartButtonWnd:=FindWindow("Shell_TrayWnd", nil); //получили идентификатор окна панели задач
StartButtonBmp:=FindWindowEx(StartButtonWnd,HWND(0),"Button", nil); //получили идентификатор кнопки "Пуск"
MWStruct:=BeginDeferWindowPos(1); /указываем количество окон которые собираемся двигать
l:=3;h:=3;
if Pointer(MWStruct)<>nil then
begin
while (true) do
begin
GetWindowRect(THandle(StartButtonBmp),WRct); //считывает размеры передвигаемого окна и помещает в WRct
MWStruct:=DeferWindowPos(MWStruct,THandle(StartButtonBmp),HWND_BOTTOM,
WRct.Left+i,WRct.Top,WRct.Right-WRct.Left,
WRct.Bottom-WRct.Top,SWP_NOACTIVATE or SWP_NOZORDER); //задаем новые координаты окна
if WRct.Top<0 then h:=-3;
if WRct.Top>743 then h:=3;
if WRct.left<1 then l:=3;
if WRct.left>968 then l:=-3;
EndDeferWindowPos(MWStruct); //производим сдвиг
//создание пауз
w:=CreateEvent(nil,true,false,"");
WaitForSingleObject(w,10000);
//CloseHandle(w);
end;
end;
//CloseHandle(w);
end.
Страницы: 1 вся ветка
Форум: "Система";
Текущий архив: 2002.12.23;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.007 c