Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.06.26;
Скачать: CL | DM;

Вниз

Возвращаясь к вопросу об уникальности окон   Найти похожие ветки 

 
Akvilon   (2003-04-24 18:34) [0]

И все же, Господа, неужели нету способа отличить друг от друга два запущенных калькулятора. Без хендла, конечно.


 
DVM ©   (2003-04-24 18:44) [1]

А ID процесса не сгодится?


 
Akvilon   (2003-04-24 19:07) [2]

надо чтобы записать, а потом использовать, временные сведения не годятся, то то и оно, может кто какую идейку всеж подкинет, на примере калькуляторов.


 
DVM ©   (2003-04-24 19:19) [3]

Вообще то странно Вы рассуждаете. Разница между двумя запущенными калькуляторами имеет смысл только когда они работают. Записать какую либо инфу о них можно, но лишено смысла, т.к. при следующем запуске это будут ДРУГИЕ ОКНА, ДРУГИЕ ПРОЦЕССЫ, ДРУГИЕ КАЛЬКУЛЯТОРЫ. ТАКИХ ЖЕ ТОЧНО СКОРЕЕ ВСЕГО БОЛЬШЕ НЕ БУДЕТ! А пока они запущены их ОДНОЗНАЧНО идентифицирует хэндл окна. И с чего Вы взяли, что хэндл - это временное. Пока окно существует - очень даже постоянная весч.


 
Scorp   (2003-04-24 19:28) [4]

Очень интересный вопрос, а можно спросить, для чего это?
Мне кажется, что я уловил как это говорится "корень", и думаю, что можно придумать лучшее решение!
Так очень часто бывает - задают вопросы как бы не по теме, а потом оказывается, что это только из-за того, что все знания оканчиваются на хендлах окон (извините, если это вас не косается). Так что - проблемма интересная, задавайте вопрос, от которого ноги ростут, и подумаем вместе ...


 
Akvilon ©   (2003-04-24 19:58) [5]

>Scorp
Действительно в корень попали. А надо вот что. Беру прогу и делаю показ как с ней работать. Т.е. беру мышь, двигаю к кнопке через SetCursorPos, нажимаю (mouse_event), появляется чего-нибудь для ввода данных, имитирую нажатие клавиш (Keybd_event). Очень наглядно. Вся проблема в координатах. Куда мышь двигать, где имитировать клики? А надо, по-моему, знать об окне чего-нибудь такое, по чему его сразу найти можно.
Подкинте идейку, Господа, может я иду куда ни туда?
В общем то у меня уже работает все, использую WindowText и ClassName, запоминаю, а потом нахожу, но бывает как с калькуляторами: нет Windowtext, а Classname одинаковые.
Я сам запускаю "калькулятор" и на нем показываю.


 
Style ©   (2003-04-24 20:05) [6]

А убить другие калькуляторы нельзя??? Ну хоть свернуть их,чтобы Юзеров не пугали.


 
Scorp   (2003-04-24 20:06) [7]

Озадачили, понимаешь :))
Сейчас будеи думать .......


 
Scorp   (2003-04-24 20:08) [8]

>Style © (24.04.03 20:05)
>А убить другие калькуляторы нельзя??? Ну хоть свернуть их,чтобы >Юзеров не пугали.

Єто - и есть что как говорится программерский ИЗВРАТ. Вот такого пожалуйста не советуйте, єто - через за***цу!


 
Scorp   (2003-04-24 20:49) [9]

Насколько я понял - ваша программа имитирует работу с каким-либо окном за каким-то заданым скриптом. Вот тут есть подвох - у вас нету никаких гарантий, что ведется работа с нужным окном. Нету защиты от его "подмены", или вобще ищезновения (тоесть завершения процесса), как я понимаю. Я не знаю всех подробностей, но мне кажется, что идея с самого начала обречена на провал, она не пересекается с особеностями построения Windows-приложений и самой Windows. Есть уже готовые проги, которые демонстрируют работу с программами, записывая скрипт для клавиатуры и мыши, а потом запуская нужний процесс как дочерний, отображают это все на нем.
К сожалению, у меня пока нет каких-либо умных идей. Будут - напишу.


 
Akvilon ©   (2003-04-24 21:19) [10]

>Scorp
Программу я запускаю сам и имитирую работу только с ней. Используя WindoText и ClassName я вобщем-то неплохо справлялся, если не хватает этого использовал информацию о родителе, в предположении, что дети к нему привязаны (нельзя переместить) и ориентировался по координатам родителя, в принципе можно добраться и до главного окна, оно у меня уж точно уникально. Проблема только в дочерних окнах, которые можно перемещать. И вот как их найти, если ClassName и Windowtext одинаковы. Может есть еще что-нибудь, типа ClassName, а то всё хендлы одни? Или хендел как-нито упорядоченно выделяется между детьми?
А где такие проги?


 
Akvilon ©   (2003-04-24 21:52) [11]

>Scorp
Программу я запускаю сам и имитирую работу только с ней. Используя WindoText и ClassName я вобщем-то неплохо справлялся, если не хватает этого использовал информацию о родителе, в предположении, что дети к нему привязаны (нельзя переместить) и ориентировался по координатам родителя, в принципе можно добраться и до главного окна, оно у меня уж точно уникально. Проблема только в дочерних окнах, которые можно перемещать. И вот как их найти, если ClassName и Windowtext одинаковы. Может есть еще что-нибудь, типа ClassName, а то всё хендлы одни? Или хендел как-нито упорядоченно выделяется между детьми?
А где такие проги?


 
Style ©   (2003-04-24 22:15) [12]

Ну это же демонстрационная программа.. Когда она работает
нужно вообще все блокировать. Т.е.

1. Перед ее запуском свернуть все окна
2. Заблокировать нажатие клавы и мышь (кроме Кнопки ESC к примеру)
3. Показать демонстрацию.
4. Востановить окна.



 
Scorp   (2003-04-24 22:44) [13]

Style прав. Если вы делаете программу-демо, то нужно как-то отключить клаву и мышь в этом процессе. Далее - как быть с другими программами, их то тоже надо "отключить", авось какой-то месседж-бокс выскочит!
Что-то вы тут не додумали. Не такое оно простое дело. Есть программы (даже использовал одну, только забыл, как называется), которые генерят авишки с GUI и всего в нем происходящего. Вот тут - не придерешся, все работает. Но это уже совсем другая история.


 
panov ©   (2003-04-24 22:54) [14]

Странно, что такая проблема возникла, если ты сам запускаешь калькулятор.

Запускай внешнюю программу CreateProcess, получай Handle и спокойно используй его.



Страницы: 1 вся ветка

Текущий архив: 2003.06.26;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.032 c
1-84318
Unknown007
2003-06-14 17:23
2003.06.26
Tmemo, изменение цвета в одной строке.


1-84093
Doc
2003-06-10 14:21
2003.06.26
Имею C: path file.exe, надо получить C: path


1-84340
yaJohn
2003-06-16 12:08
2003.06.26
_быстрый_ TMemo с раскраской отдельных строк


14-84585
Hacker.
2003-06-05 17:19
2003.06.26
Шифрация.


3-83981
sergei12r
2003-05-30 06:50
2003.06.26
помогите нужно пекинуть данные с dbase на parabox