Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Система";
Текущий архив: 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
1-74758
Спрашивающий
2002-12-15 01:36
2002.12.23
Как возвести вещественное число в степень.


3-74622
newe
2002-12-05 14:28
2002.12.23
Delphi + Access


3-74544
GAlexis
2002-12-03 16:15
2002.12.23
InterBase - с чего начать?


14-74956
Сатир
2002-12-02 21:04
2002.12.23
предложение добавить к правилам


3-74542
Evyshka
2002-12-03 16:50
2002.12.23
Поиск по записям





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский