![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#16
|
||||
|
||||
![]() Electronic_Arts, наверное что-то из набора SetFocus, SetActiveWindow или сообщения WM_SETFOCUS, WM_ACTIVATE?
Некоторые программисты настолько ленивы, что сразу пишут рабочий код. Если вас наказали ни за что - радуйтесь: вы ни в чем не виноваты. |
#17
|
||||
|
||||
![]() Ребята я нашол проблему - когда я использую этот код
Код:
q:=FindWindow('WindowsForms10.Window.8.app3', nil); w:=FindWindowEx(q, 0, 'WindowsForms10.SysListView32.app3', nil) ; showwindow(W, sw_hide); а всего в проге компонентов WindowsForms10.SysListView32.app3 две штуки а код скрывает только одного несмотря на то что они одинокого имени класса....как лечить? |
#18
|
||||
|
||||
![]() http://kladovka.net.ru/index.cgi?pid=dir&rid=4&ppn=4
Цитата:
Там вродебы все есть что надо. (Жаль что не мое ). |
#19
|
||||
|
||||
![]() s0Creator спасибо тебе огромное но проблема еще остаеться вот выложил скрины посмотрите так наверно попонятнее будет
![]() ![]() Так сделал вот так - но ничего не получаеться оно вообше не хочет найти то что мне нужно Код:
procedure TForm1.Button6Click(Sender: TObject); var x : hwnd; begin x:=FindWindow('WindowsForms10.SysListView32.app3', nil); edit1.Text:=trim(copy(IntToStr(x), 0, 9)); EnableWindow(StrToInt(Edit1.Text), True); end; Код:
procedure TForm1.Button6Click(Sender: TObject); var x, w : hwnd; begin x:=FindWindow('WindowsForms10.Window.8.app3', nil); w:=FindWindowEx(x, 0, 'WindowsForms10.SysListView32.app3', nil) ; edit1.Text:=trim(copy(IntToStr(w), 0, 9)); EnableWindow(StrToInt(Edit1.Text), True); end; Что делать? ![]() |
#20
|
||||
|
||||
![]() а если искать не по классу, а по названию окна или и по классу и по названию, т.е.
Код:
procedure TForm1.Button6Click(Sender: TObject); var x, w : hwnd; begin x:=FindWindow('WindowsForms10.Window.8.app3', 'Начать тест - Демонстрационный режим '); w:=FindWindowEx(x, 0, 'WindowsForms10.SysListView32.app3', nil) ; edit1.Text:=trim(copy(IntToStr(w), 0, 9)); EnableWindow(w, True); end; Код:
function FindWindow(lpClassName, lpWindowName: PChar): HWND; stdcall; function FindWindowEx(Parent, Child: HWND; ClassName, WindowName: PChar): HWND; stdcall; имхо: в edit лучше кидать после использования хендла найденного окна, а то мало ли "обтримится" не так и обратно из текста преобразуется не очень должно помочь, по крайней мере думаю, что поможет Понять, что хочет заказчик - бесценно, ведь он платит MasterCard ![]() |
#21
|
||||
|
||||
![]() а может так?
Код:
procedure TForm1.Button6Click(Sender: TObject); var x, w, curent : hwnd; begin x:=FindWindow('WindowsForms10.Window.8.app3', nil); w := 0; while true do begin w:=FindWindowEx(x, w, 'WindowsForms10.SysListView32.app3', nil) ; if w = 0 then break; //edit1.Text:=trim(copy(IntToStr(w), 0, 9)); if IsWindowVisible(w) then EnableWindow(w, True); end; end; Код:
function WinEnable(WinHandle: HWnd; lParam: LPARAM): Boolean; stdcall; begin Result:=True; if IsWindowVisible(WinHandle) then EnableWindow(WinHandle, True); end; procedure TForm1.Button6Click(Sender: TObject); var x, w, curent : hwnd; begin x:=FindWindow('WindowsForms10.Window.8.app3', nil); EnumChildWindows(x, @WinEnable, 0); end; |
#22
|
||||
|
||||
![]() Спасибо огромное этот код работает отлично
Код:
function WinEnable(WinHandle: HWnd; lParam: LPARAM): Boolean; stdcall; begin Result:=True; if IsWindowVisible(WinHandle) then EnableWindow(WinHandle, True); end; procedure TForm1.Button6Click(Sender: TObject); var x, w, curent : hwnd; begin x:=FindWindow('WindowsForms10.Window.8.app3', nil); EnumChildWindows(x, @WinEnable, 0); end; Но оно активирует все что находиться на окне - а как то можно например селать так чтоб оно не трогала кнопки????? |
#23
|
||||
|
||||
![]() А тут обычная проблема не хочет оно определять компонент WindowsForms10.SysListView32.app3 - незнаю почему...
Код:
procedure TForm1.Button6Click(Sender: TObject); var x, w, curent : hwnd; begin x:=FindWindow('WindowsForms10.Window.8.app3', nil); w := 0; while true do begin w:=FindWindowEx(x, w, 'WindowsForms10.SysListView32.app3', nil) ; if w = 0 then break; //edit1.Text:=trim(copy(IntToStr(w), 0, 9)); if IsWindowVisible(w) then EnableWindow(w, True); end; end; |
#24
|
||||
|
||||
![]() первый тогда попробуй так
Код:
procedure TForm1.Button6Click(Sender: TObject); var x, w, curent : hwnd; begin x:=FindWindow('WindowsForms10.Window.8.app3', nil); w := 0; while true do begin w:=FindWindowEx(x, w, 'WindowsForms10.SysListView32.app3', nil); if w = 0 then break; EnableWindow(w, True); w := GetWindow(w, gw_hWndNext); if w = 0 then break; end; end; Код:
function WinEnable(WinHandle: HWnd; lParam: LPARAM): Boolean; stdcall; var buff2 : array [0..127] of Char; begin Result:=True; GetClassName(WinHandle, buff2, sizeof(buff2)); if AnsiSameText('WindowsForms10.SysListView32.app3', AnsiString(buff2)) then EnableWindow(WinHandle, True); end; procedure TForm1.Button6Click(Sender: TObject); var x, w, curent : hwnd; begin x:=FindWindow('WindowsForms10.Window.8.app3', nil); EnumChildWindows(x, @WinEnable, 0); end; |
#25
|
||||
|
||||
![]() спаааааааааааааааааасиииииииииииииииииибоооооооооо ооо
|