Форум: "Прочее";
Текущий архив: 2011.03.13;
Скачать: [xml.tar.bz2];
ВнизРабота с Windows-окнами из страницы, открывшейся в IE Найти похожие ветки
← →
И. Павел © (2010-11-29 15:48) [0]Здравствуйте.
У нас на предприятии есть САП-портал. Сейчас мне нужно сделать в нем iView (страницу, другими словами), которая будет содержать иконки - ссылки. При нажатии на такую иконку, должно запуститься определенное приложение на машине клиента. Но кроме этого требуется также ввести логин и пароль за пользователя, так, чтобы пользователь сразу попал в главное окно приложения уже зарегистрированным.
Для своих программ я просто создам записи в реестре (чтобы можно было определить их местонахождение) и добавлю возможность авторизации через командную строку. Учитывая то, что JavaScript, вроде бы, может работать с реестром, этого должно хватить, чтобы нормально вызывать мои программы.
Но с чужими программами такого не выйдет: их нужно открыть, подождать и найти появившееся окно авторизации, ввести в окна пароля и логина нужные величины (SetText в WinAPI) а потом нажать на кнопку "Ввод".
Конечно, можно сделать exe файл, который будет запускаться с помощью JavaScript и выполнять все нужные действия, но тогда этот файл должен бeдет лежать на компьютере пользователя, а мне хотелось бы, чтобы вся программа располагалась на сервере, и работала просто как часть портала.
Подскажите, пожалуйста, можно ли работать с Windows окнами спомощью JavaScript, и, если можно, то как?
Может быть, есть какие-нибудь другие варианты запуска чужих программ, при этом не прибегая к помощи локальной программы, написанной на Delphi и лежащей на компьютере клиента?
PS: у всех сотрудников стоит IE, т.е. различия JavaScript для разных браузеров в моей задаче не важны.
Заранее спасибо.
← →
clickmaker © (2010-11-29 15:56) [1]> JavaScript, вроде бы, может работать с реестром
да ну? и давно?
← →
И. Павел © (2010-11-29 16:03) [2]> да ну? и давно?
Черех ActiveX, кажется может:
http://forum.codenet.ru/archive/index.php/t-3055.html
← →
clickmaker © (2010-11-29 16:06) [3]а, ну через активикс все можно
главное - его установить )
← →
И. Павел © (2010-11-29 16:08) [4]> а, ну через активикс все можно
А можно через него работать с WinAPI?
Было бы здорово, но все, что удается найти в поиске - это как через JavaScript работать с окнами браузера :)
← →
ZukZuk (2010-11-29 16:08) [5]>Подскажите, пожалуйста, можно ли работать с Windows окнами спомощью JavaScript,
Дельфийский взгляд на вещи, такой дельфийский. Ну предназначен Javascript только для работы с объектной моделью браузера и DOM, а ActiveX в Javascript так это отдельное Майкросовтовое расширение.
Сейчас модет Сильверлайт, уж он предоставляет доступ к COM API, делай кнопочки на нем.
← →
clickmaker © (2010-11-29 16:10) [6]> [4] И. Павел © (29.11.10 16:08)
> > а, ну через активикс все можно
>
> А можно через него работать с WinAPI?
ActiveX по сути - это обычное приложение, COM-сервер. Все упирается в настройки безопасности браузера и степень тупости пользователя.
← →
clickmaker © (2010-11-29 16:13) [7]вернее, даже не тупости, а доверчивости )
← →
Anatoly Podgoretsky © (2010-11-29 16:15) [8]> clickmaker (29.11.2010 16:13:07) [7]
Социальная инженерия.
← →
И. Павел © (2010-11-29 16:58) [9]> вернее, даже не тупости, а доверчивости )
Ну у нас портал закрытый. А сотрудникам можно выставить соответствующие права в IE, а на странице написать, чтобы не отклоняли объекты ActiveX.
Подскажите, пожалуйста, есть ли готовый ActiveX для работы с API? Ну а точнее для вызова FindWindows, SetText, отсылки сообщений, ну и всего прочего, что нужно для того, чтобы автоматически пройти процесс авторизации?
← →
ZukZuk (2010-11-29 17:11) [10]И. Павел © (29.11.10 16:58) [9]
Нет, ну вы видели? Поймите же, что то, чем вы занимаетесь - извращенское извращение. Понятно, если бы авторизоваться на смежный сайтах или вебсервисах, но запускать авторизованно приложения с веб странички, да еще не предназначенные для автоматической авторизации, это какая-то блажь, прости Господи. Вы хотите прямо для такой экзотики найти готовый да еще и ActiveX?
← →
И. Павел © (2010-11-29 19:03) [11]
> ZukZuk (29.11.10 17:11) [10]
Знаю я, что ничего хорошего в этом нет. Но передо мной поставили задачу, а значит придется ее решать. До меня вообще пароли в куки хотели хранить ;)
Меня интересует не ActiveX, выполнящий авторизацию, а ActiveX, позволяющий вызывать системные функции.
← →
И. Павел © (2010-11-29 19:08) [12]
> Сильверлайт
Кажется, он ориентирован на .net? Или его можно как-нибудь прикрутить к ява-порталу без лишних проблем (установок) для клиента?
← →
Дмитрий С © (2010-11-29 19:55) [13]Через ГП домена можно распространить сертификат, которым подписать свой внешний activex контрол + придется реализовать какой то интерфейс (не помню какой), чтобы IE считал твой контрол безопасным для использования на странице.
Такой будет автоматически качаться из сети и ставится (примерно как adobe flash player). И делай уже что вздумается.
← →
И. Павел © (2010-11-29 21:33) [14]Тогда попробую оформить программу в виде ActiveX.
Пожалуйста, порекомендуйте статью(и), где описывается, как их создавать, прикреплять к странице и использовать? Лучше всего на Delphi, но в принципе WinAPI везде один. (поиск, конечно, выдает массу ссылок, но буду рад, если кто-нибудь порекомендует материал, т.к. раньше с созданием этих объектов я не сталкивался, а хотелось бы начать сразу с хорошего описания)
← →
И. Павел © (2010-11-30 08:28) [15]И кроме [14] у меня еще один вопрос:
Подскажите, пожалуйста, есть ли у IE какое-нибудь место, куда можно было бы поместить файл (с паролем пользователя) и не опасаться, что он там останется в случае, если в скрипте произойдет ошибка и моя программа сама этот файл не удалит?
← →
И. Павел © (2010-11-30 08:30) [16]Именно файл нужного мне формата. Т.е. речь, конечно, идет не о куки.
← →
Иксик © (2010-11-30 13:13) [17]http://www.iopus.com/imacros/
← →
И. Павел © (2010-11-30 14:27) [18]Кажется, получилось подцепить ActiveX к странице. В HTML пишу:
<BODY>
<OBJECT ID="ActiveFormX1" WIDTH=871 HEIGHT=640
CLASSID="CLSID:19786E00-E056-47B8-8ABF-52148CA6573F">
CODEBASE="C:\OCX\ActiveFormProj1.ocx"
<PARAM NAME="Login" VALUE="Edit1">
...
</OBJECT>
</BODY>
Но у меня возникло 2 вопроса:
1. Я генерирую CLASSID спомощью ActiveX Control Pad. Он его случайным образом генерирует, или исходя из имени ActiveX? А может возникнуть такая ситуация, что на момент первого вызова моей страницы у пользователя уже есть объект с данным CLASSID? Что тогда будет? Вместо моего ActiveX объекта вызовется какой-то другой?
2. Как можно указать версию моего ActiveX? Так чтобы, если у пользователя стоит мой ActiveX, но более старой версии, произошло обновление из CODEBASE?
Заранее спасибо.
> Иксик ©
Действительно классная штука. Спасибо. Пока что покупать не будем, т.к. кажется, начал с ActiveX разбираться, но на будущее ссылку сохраню.
← →
ZukZuk (2010-11-30 15:54) [19]>Он его случайным образом генерирует, или исходя из имени ActiveX?
RTFM: http://en.wikipedia.org/wiki/Globally_unique_identifier (глобально уникальный!)
>Как можно указать версию моего ActiveX?
GUID и определяет версию. Для того, чтобы браузер качал из Codebase нужно либо менять имя файла, либо чистить кэш.
← →
И. Павел © (2010-12-01 08:01) [20]Большое вам спасибо, ZukZuk!
Получается, что CLASSID - это настолько большое число, генерируемое особым методом, что вероятностью его совпадения в компьютерной технике просто пренебрегают (если я что-то недопонял - поправьте меня, пожалуйста).
Сертификат пока делать не буду - просто настроим IE так, чтобы он не ругался на ActiveX с нашего портала.
Кажется, со всеми подробностями я разобрался, и все таки задача оказалась не такой уж и нерешаемой :)
← →
icelex © (2010-12-01 14:44) [21]хозяйке на заметку
http://ithappens.ru/story/4836
← →
И. Павел © (2010-12-01 14:52) [22]> [21] icelex © (01.12.10 14:44)
Значит, не один я тружусь на рынке Российского велосипедостроения :)
Страницы: 1 вся ветка
Форум: "Прочее";
Текущий архив: 2011.03.13;
Скачать: [xml.tar.bz2];
Память: 0.51 MB
Время: 0.004 c