Работа с чужими окнами...
Пользователи, просматривающие топик: none
|
Зашли как: Guest
|
Имя |
Сообщение |
<< Старые топики Новые топики >> |
|
|
Работа с чужими окнами... - 2008-10-09 13:10:37.553333
|
|
|
electronic_arts
Сообщений: 8
Оценки: 0
Присоединился: 2007-06-30 21:10:24.770000
|
Есть программа в нем стоит компонент SysListView32.app3 она не активна - а в нем стоит настройки самой проги - мне нужно активировать это окно из своей проги - как мне это сделать? Саму прогу написали на Microsoft Visual C# / Basic .NET (покранемере это показал PEiD) Вот эт главное окно проги Имя класса окна: WindowsForms10.Window.8.app3 Хендл окна - 000702B4 Как сделали незнаю но все окна которые запускаються в проге имеют одно и те же название класса(WindowsForms10.Window.8.app3) Хендл окна где находиться компонент которую надо активировать - 001C034C А вот Имя класса компонента которую надо активировать WindowsForms10.SysListView32.app3 Хендл компонента - 000D0316 Вот Имя класса кнопок находяшихся на окне проги WindowsForms10.BUTTON.app3 Выяснил одно что все компоненты и окна отличаються только по заголовку и по хендлу и если написать такую строку то при несколько нажатии на 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; Хендлы окон и компонентов определил спомошю InqSoft Window Scanner
|
|
|
RE: Работа с чужими окнами... - 2008-10-09 14:08:49.420000
|
|
|
_SaZ_
Сообщений: 4329
Оценки: 398
Присоединился: 2008-01-30 02:18:05.553333
|
SetFocus? SetForegroundWindow? SetWindowPos? Для начала неплохо было-бы научиться пользоваться русским языком. Если тебе нужно закрыть чужую прогу - то всё делается намного проще. Особенно на C#. http://www.rsdn.ru/article/qna/ui/wndsetfg.xml http://www.rsdn.ru/Forum/Info/FAQ.winapi.wndsetfg.aspx
|
|
|
RE: Работа с чужими окнами... - 2008-10-09 14:47:29.213333
|
|
|
electronic_arts
Сообщений: 8
Оценки: 0
Присоединился: 2007-06-30 21:10:24.770000
|
Я на delphi хочу это сделать - можно пояснее
|
|
|
RE: Работа с чужими окнами... - 2008-10-09 15:11:42.926666
|
|
|
_SaZ_
Сообщений: 4329
Оценки: 398
Присоединился: 2008-01-30 02:18:05.553333
|
Что именно "пояснее"?
|
|
|
RE: Работа с чужими окнами... - 2008-10-09 15:19:17.320000
|
|
|
electronic_arts
Сообщений: 8
Оценки: 0
Присоединился: 2007-06-30 21:10:24.770000
|
Как это на Delphi сделать??? а уже миллион вариантов попробывал ничего не кактит - мешает то что окна все одного и того же имени…WindowsForms10.Window.8.app3
|
|
|
RE: Работа с чужими окнами... - 2008-10-09 15:22:46.620000
|
|
|
_SaZ_
Сообщений: 4329
Оценки: 398
Присоединился: 2008-01-30 02:18:05.553333
|
Хоть один вариант в студию…. А уговаривать написать за тебя - не стоит. Не напишу. Ты хоть ходил по ссылкам, которые я тебе дал? Там что на си, что на дэлфи - однояйцево. Функции те же. Всё проверено, всё работает. P.S. Ты спрашивал, как сделать окно активным, а не как его найти - определись… И ещё, очень советую почитать - http://www.rsdn.ru/Info/Howtoask.xml
|
|
|
RE: Работа с чужими окнами... - 2008-10-09 15:41:02.453333
|
|
|
electronic_arts
Сообщений: 8
Оценки: 0
Присоединился: 2007-06-30 21:10:24.770000
|
Окно на котором стоит этот компопент активна а вот компонент на нем нет у компонента SysListView32.app3 стоит значение Enabled:=false; // компонент выключен как мне из своей проги сделать этот компонент активным // влючить его компонент оч похож на Listview из дельфи
|
|
|
RE: Работа с чужими окнами... - 2008-10-09 15:44:23.550000
|
|
|
_SaZ_
Сообщений: 4329
Оценки: 398
Присоединился: 2008-01-30 02:18:05.553333
|
EnableWindow Только такие извращения над чужими прилложениями чреваты последствиями.
|
|
|
RE: Работа с чужими окнами... - 2008-10-09 16:11:09.123333
|
|
|
_SaZ_
Сообщений: 4329
Оценки: 398
Присоединился: 2008-01-30 02:18:05.553333
|
Чел. Теперь я перефразирую твой вопрос… просто посмотри, как понятней писать нужно, вместо того, чтобы всякую хрень городить. quote:
Как сделать запрещённое (Enabled = false) окно разрешённым (Enabled = true), если окно находится в чужом процессе?
|
|
|
RE: Работа с чужими окнами... - 2008-10-09 18:14:58.996666
|
|
|
FLIER
Сообщений: 628
Оценки: 0
Присоединился: 2007-08-29 01:31:15.400000
|
quote:
ORIGINAL: electronic_arts Окно на котором стоит этот компопент активна а вот компонент на нем нет у компонента SysListView32.app3 стоит значение Enabled:=false; // компонент выключен как мне из своей проги сделать этот компонент активным // влючить его компонент оч похож на Listview из дельфи quote:
EnableWindow Проблема1: нужно найти хендл элемента….(не по заголовку ищи а по ID) Проблема2: EnableWindow('Окно',True);
|
|
|
RE: Работа с чужими окнами... - 2008-10-09 18:17:59.030000
|
|
|
_SaZ_
Сообщений: 4329
Оценки: 398
Присоединился: 2008-01-30 02:18:05.553333
|
Flier, это у тя проблема? =)
|
|
|
RE: Работа с чужими окнами... - 2008-10-09 23:07:00.930000
|
|
|
electronic_arts
Сообщений: 8
Оценки: 0
Присоединился: 2007-06-30 21:10:24.770000
|
procedure TForm1.Button1Click(Sender: TObject);
var
q, w:HWND;
begin
q:=FindWindow('WindowsForms10.Window.8.app3', nil);
w:=FindWindowEx(q, 0, 'WindowsForms10.SysListView32.app3', nil) ;
ENABLEWINDOW(W, true);
end; Так проблема нашлось - я проверил и окозалось программе 2 штуки компонента WindowsForms10.SysListView32.app3 и оба одинакого имени и выше указанный код присваивает значение ENABLEWINDOW(W, true); другому компоненту (WindowsForms10.SysListView32.app3) которая находиться в другой окне программы и даже не в активном состоянии….как мне отлечить компоненты друг от друга?
|
|
|
RE: Работа с чужими окнами... - 2008-10-10 01:03:48.723333
|
|
|
_SaZ_
Сообщений: 4329
Оценки: 398
Присоединился: 2008-01-30 02:18:05.553333
|
По ID… Flier уже писал… GetDlgItem в помощь.
|
|
|
|
|