![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | 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 лучше кидать после использования хендла найденного окна, а то мало ли "обтримится" не так и обратно из текста преобразуется не очень должно помочь, по крайней мере думаю, что поможет |
|
#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
|
||||
|
||||
|
спаааааааааааааааааасиииииииииииииииииибоооооооооо ооо
|