![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
||||
|
||||
![]() Есть Form2 оно не активна у нее стоит значение Enabled:=false;
Как из своего проги сделать Form2.Enabled:=true; Активировать чужое окно в чужой проге??? Это возможно - буду благодарен если пояснее обясните... От примера не откажусь Заранее благодарю |
#2
|
||||
|
||||
![]() А можно по-подробнее задачу поставить? Может быть хватит и ресурс-редактора? Или что?
Хорошо написанная программа не требует документации ICQ 9-184-668. |
#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 - это окно или элемент окна (кнопка, радиобатон и т.д.)? хотя могу ошибаться, пока других мыслей нет Понять, что хочет заказчик - бесценно, ведь он платит MasterCard ![]() |
#12
|
||||
|
||||
![]() Вот эт главное окно проги
Имя класса окна: WindowsForms10.Window.8.app3 Хендл окна - 000702B4 Как сделали незнаю но все окна которые запускаються в проге имеют одно и те же название класса(WindowsForms10.Window.8.app3) Хендл окна где находиться компонент которую надо активировать - 001C034C А вот Имя класса компонента которую надо активировать WindowsForms10.SysListView32.app3 Хендл компонента - 000D0316 Вот Имя класса кнопок находяшихся на окне проги WindowsForms10.BUTTON.app3 Выяснил одно что все компоненты и окна отличаються только по заголовку и по хендлу |
#13
|
||||
|
||||
![]() тогда подход другой нужен, приведенный текст программы, насколько я понял, обеспечивает поиск компонента, класс которого WindowsForms10.SysListView32.app3, а т.к.
Цитата:
З.Ы. мысли вслух, так сказать Понять, что хочет заказчик - бесценно, ведь он платит MasterCard ![]() |
#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 глазами хакера там описан метод поиска кнопки "Пуск" на панели задач и много всяких прибамбасов для работы с системными вещами
Цитата:
посмотри, может поможет Понять, что хочет заказчик - бесценно, ведь он платит MasterCard ![]() Последний раз редактировалось cotseec, 09.10.2008 в 00:56. |