Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 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
2-1292790210
radiokarazinec
2010-12-19 23:23
2011.03.13
TImage интересный вопрос


3-1254859922
Дмитрий
2009-10-07 00:12
2011.03.13
Нет коннекта с сервером


15-1291034903
И. Павел
2010-11-29 15:48
2011.03.13
Работа с Windows-окнами из страницы, открывшейся в IE


2-1292955150
helluvaname
2010-12-21 21:12
2011.03.13
замена выражения sql


4-1246385316
deplomat
2009-06-30 22:08
2011.03.13
Проблемы с выводом битмапа (выводяться, а потом перестают)





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский