-
Здравствуйте!
сделал небольшую программу, которая управляет другим приложением.Она, при появлении определенного окна, находит на нем кнопку и нажимает на неё, все работает.
Переделал свою программу в сервис.
Но теперь я не могу функцией EnumWindows и EnumChildWindows
найти требуемого окна. Скинул результат работы этих функций в файл и оказалось что они собирают всего несколько окон. т.е. все задачи которые запущены из эксплорера не попадают в эти пречисления.
Подскажите, как можно получить список всех окон всех процессов из сервиса?
-
> [0] 9899100 (19.04.09 23:58)
сервис не годится для таких задач, если ддя xp это вполне решаемо, то в висте и выше - никак. без доп. процесса в каждой терм. сессии не обойтись.
-
жаль, было бы красиво :)
-
а функция CreateToolHelp32Snapshot ни как не поможет??
ведь она позволяет получить список задач и нитей
и выдет все что запущенно в данный момент
только до окон добраться не получается :(
-
> 9899100 (19.04.09 23:58)
>
> Здравствуйте!
> сделал небольшую программу, которая управляет другим приложением.
> Она, при появлении определенного окна, находит на нем кнопку
> и нажимает на неё, все работает.
> Переделал свою программу в сервис.
> Но теперь я не могу
> жаль, было бы красиво :)
Странный однако сервис должен был бы быть красивым :)
-
> Странный однако сервис должен был бы быть красивым :)
ничего странного я в этом не вижу
но могу для Вас заменить слово "красивый" на удобный
красивый, это когда нет ничего лишнего, как например иконка торчащая в трее, который и так замусорен
а так работает себе сервис никому не мешает
-
> 9899100 (20.04.09 01:43) [5]
>
>
> > Странный однако сервис должен был бы быть красивым :)
>
> ничего странного я в этом не вижу
Странным мне показалось желание сделать службу, которая только и делает, что отыскивает окно некоего приложения с некоей кнопкой и эмулирует нажатие на ту кнопку.
Может реальный пример представишь, в котором нет ничего "странного".
-
реальный пример
если ты работал когданибудь в банке, отправлял платежи в ЦБ
то реальный пример видел не однократно, когда надо нажать на "100" кнопок в "20" программах причем на разных компах, а делать каждые 20 минут
хотябы на 10 "телодвижений меньше" это очень удобно
реальный на 100%
-
Не хотел бы я держать деньги в этом банке.
-
> Не хотел бы я держать деньги в этом банке.
Если бы ты видел программы которые делает ЦБ (центральный банк) ты бы ужаснулся так, что неделю не мог бы прийти в себя от шока
типа "под каким градусом и какой ногой можно было писать такие программы"
а вот автоматизация процессов производства, пусть это банк или еще что-то
тут я полностью с тобой не согласен
ну если поставленны такие условия работы
1. выгрузить документы на машине №1
2. подписать документы на машине №2
3. отправить документы в ЦБ машина №3
и пр этом они не могут быть в сети (правила ЦБ)
чтобы например подписать и зашифровать файл, надо открыть три окна и в каждом тупо нажать на пару кнопок
понимаешь?? "ТУПО" нажать на кнопку!!!
и что тут криминального или плохого если я нажму на кнопку не сам а программа???!!!
ведь компьютеры для того и создавались чтобы автоматизировать рутинные процессы
но ЦБ этого не знает ;)
но это лирика :)
вот лучше бы подсказал как все таки получить окошки из сервиса
-
> ford (20.04.2009 9:59:09) [9]
> вот лучше бы подсказал как
Что бы меня прокляли другие пользователи вашего банка.
-
> Подскажите, как можно получить список всех окон всех процессов
> из сервиса?
1. настроить сервис на взаимодействие с рабочим столом.
2. отказаться от сервиса
-
> как все таки получить окошки из сервиса
EnumDesktopWindows ?
-
clickmaker © (20.04.09 15:57) [12]
Фигу. У сервисов мало того, что свой Desktop, он еще и в своей WindowStation
-
> [13] Игорь Шевченко © (20.04.09 17:38)
> clickmaker © (20.04.09 15:57) [12]
>
> Фигу. У сервисов мало того, что свой Desktop, он еще и в
> своей WindowStation
в курсе. Но чужой десктоп можно открыть.
Правда, не в курсе, нужна ли для этого сервису интерактивность
-
> Но чужой десктоп можно открыть.
предварительно присоединив к себе чужой WindowStation...
-
> [13] Игорь Шевченко © (20.04.09 17:38)
> У сервисов мало того, что свой Desktop, он еще и в своей
> WindowStation
у сервисов мало того, что своя WindowStation, еще и своя терм. сессия.
-
> еще и своя терм. сессия.
Разве не консольная ?
-
> [17] Игорь Шевченко © (20.04.09 19:02)
> Разве не консольная ?
нулевая. в xp - та же, что и у первого залогиневшегося юзера. в висте даже для первого залогиневшегося юзера создается отдельная терм. сессия.
-
> нулевая.
в XP она же консольная, про Висту ничего не могу сказать - не видел, не знаю, не устанавливал, не испытываю желание устанавливать