![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
||||
|
||||
|
Есть Form2 оно не активна у нее стоит значение Enabled:=false;
Как из своего проги сделать Form2.Enabled:=true; Активировать чужое окно в чужой проге??? Это возможно - буду благодарен если пояснее обясните... От примера не откажусь Заранее благодарю |
|
#2
|
||||
|
||||
|
А можно по-подробнее задачу поставить? Может быть хватит и ресурс-редактора? Или что?
|
|
#3
|
|||
|
|||
|
Код:
var
Style: DWORD;
Wnd: HWND;
begin
Wnd := FindWindow(nil, 'Form2'); // ищем окно
if Wnd <> 0 then // если нашли...
begin
Style := GetWindowLong(Wnd, GWL_STYLE); // берем спсок стилей
Style := Style and not WS_DISABLED; // убираем ненужный
SetWindowLong(Wnd, GWL_STYLE, Style); // устанавливаем обновленный
// стиль
InvalidateRect(0, nil, TRUE); // перерисовываем все окна
end;
end; |
|
#4
|
||||
|
||||
|
Воспользуйся моей программой WinInfo, должно помочь:
"программа для получение информации об окне под курсором. Главная особенность - включение неактивных контролов приложений, если прога, н-р, пробная и не дает нажать кнопку некоторое время. Также показывает пароли скрытые звездочками." http://www.delphisources.ru/forum/showthread.php?t=5120 |
|
#5
|
||||
|
||||
|
Vayrus - прога супер - но ты можешь дать мне исходник ту части которая активирует не активные кокна и компоненты???
|
|
#6
|
||||
|
||||
|
Есть программа в нем стоит компонент
SysListView32.app3 она не активна - а в нем стоит настройки самой проги - мне нужно активировать это окно из своей проги - как мне это сделать? Саму прогу написали на Microsoft Visual C# / Basic .NET Имя класса: WindowsForms10.SysListView32.app3 Программа Vayrus-а умеет активировать это окно - но как то это делает но как??? |
|
#7
|
|||
|
|||
|
Я же писал выше, тебе необходимо найти только HWND окна
|
|
#8
|
||||
|
||||
|
Drozh не помогает - оно просто обновляет все окна и все - это не меняет значение компонента и не активирует отключенный компонент
|
|
#9
|
||||
|
||||
|
Исходники затерял
Но попробуй это: ShowWindow(YourWindowHandle, SW_SHOW); А вообще поройся в Windows SDK, там все есть |
|
#10
|
||||
|
||||
|
Ребята может я что то не так делаю - ничего не помогает
Код:
z := FindWindow('WindowsForms10.SysListView32.app3', nil);
if FindWindow('WindowsForms10.SysListView32.app3', nil) <> 0 then
begin
ShowWindow(z, SW_SHOW); // это для показа - а вить окно
// на котором
// стоит компонент виден просто она
//не активна (Enabled:=false;)
end; |
|
#11
|
||||
|
||||
|
на сколько я знаю необходимо найти сначала само окно (по капшену например), а потом уже на этом окне искать необходимый элемент
SysListView32.app3 - это окно или элемент окна (кнопка, радиобатон и т.д.)? хотя могу ошибаться, пока других мыслей нет |
|
#12
|
||||
|
||||
|
Вот эт главное окно проги
Имя класса окна: WindowsForms10.Window.8.app3 Хендл окна - 000702B4 Как сделали незнаю но все окна которые запускаються в проге имеют одно и те же название класса(WindowsForms10.Window.8.app3) Хендл окна где находиться компонент которую надо активировать - 001C034C А вот Имя класса компонента которую надо активировать WindowsForms10.SysListView32.app3 Хендл компонента - 000D0316 Вот Имя класса кнопок находяшихся на окне проги WindowsForms10.BUTTON.app3 Выяснил одно что все компоненты и окна отличаються только по заголовку и по хендлу |
|
#13
|
||||
|
||||
|
тогда подход другой нужен, приведенный текст программы, насколько я понял, обеспечивает поиск компонента, класс которого WindowsForms10.SysListView32.app3, а т.к.
Цитата:
З.Ы. мысли вслух, так сказать |
|
#14
|
||||
|
||||
|
Ага потому что если написать такую строку то при несколько нажатии на Button1 оно закроет и открытые окна и саму прогу...
Код:
procedure TForm1.Button1Click(Sender: TObject);
var
h: HWND;
begin
h := FindWindow('WindowsForms10.Window.8.app3', nil);
if FindWindow('WindowsForms10.Window.8.app3', nil) <> 0 then
begin
PostMessage(h, WM_close, 0, 0);
end;
end;как быть? |
|
#15
|
||||
|
||||
|
Есть книжка М Фленов - Delphi глазами хакера там описан метод поиска кнопки "Пуск" на панели задач и много всяких прибамбасов для работы с системными вещами
Цитата:
посмотри, может поможет Последний раз редактировалось cotseec, 09.10.2008 в 00:56. |