Цитата:
|
Цитата:
И зависимость от движка, установленного в системе, никак не может быть плюсом. Это получается в любом случае нужно ориентироваться на IE6, т.к. неизвестно, когда он исчезнет с подавляющего числа машин. |
Я сам не большой поклонник продуктов Microsoft, но если мы говорим о разработчике, то для отладки ему разумно пользоваться ИЕ8. Он обладает довольно мощными средствами отладки. Сейчас, кстати, ведутся работы по интеграции отладчика в samosat. Цель - получить те же инструменты, что и в полнорежимном браузере IE8.
Для большей совместимости с другими браузерами рекомендуем использовать кроссбраузерные библиотеки. Конечно это не может решить всех проблем, в частности различное понимание стилей CSS разными версиями IE, но все же заметно облегчит разработку. |
Цитата:
|
Пользователи пользуются разными браузерами, и Мозиллой, и ИЕ, и Оперой. Для прогрммы samosat имеет значение лишь версия IE в системе. С windows 7 в комплекте сразу идет ИЕ8. Это в каком-то смысле обнадеживает. Севен набирает обороты и это приятно.
Если вы говорите, что есть проблема для обладателей ИЕ6 и возможных ошибках приложения в нем - да, такая проблема есть. Выхода два: либо разработчику тестировать свое приложение на ИЕ6, либо пользователю обновлять свой браузер. Впрочем как и при разработке сайта. Это решение должен принимать разработчик приложения, в зависимости от целей и предполагаемой аудитории его пользователей. Если вы спросите мое личное мнение, то я убежден то те миллионы человеко-часов потраченные программистами всего мира на оптимизацию под ИЕ6 можно было бы потратить на что-нибудь более полезное. Я для себя выработал такое правило: в ие6 сайт обязан работать, но не обязан быть красивым, не обязан корректно отображаться и не обязан быть удобным. Это компромисс, сохраняющий нервы разработчиков и в тоже время это не геноцид пользователей старых браузеров. |
Цитата:
|
вот, уже кое что готово, первая рабочая ревизия
путь сменился: http://samosat.ru/muml/agentshell.exe.zip работает вызов вин-апи функций из ява-скрипта. Путем вызова метода объекта exe.winapi("имя_dll:имя_апи_function", [ аргумент1,аргумет2,.... ]). вот пример функции, убивающей просесс function kill_process(pname) { var memheap = exe.winapi("kernel32:GetProcessHeap"); if (memheap == 0) { alert('ERROR:' + ash_last_error); return; } var MAX_PATH = 260; var TH32CS_SNAPPROCESS = 2; var PROCESS_TERMINATE = 1; var hSnapshot = exe.winapi("kernel32:CreateToolhelp32Snapshot",[TH32CS_SNAPPROCESS,0]); var PROCESSENTRY32_size = 9*4 + MAX_PATH*2; if (PROCESSENTRY32_size%4 != 0) { PROCESSENTRY32_size /= 4; PROCESSENTRY32_size *= 4; } var pe32 = exe.winapi("kernel32:HeapAlloc",[memheap,8,PROCESSENTRY32_size]); exe.send("mem-set-dword",[pe32,0,PROCESSENTRY32_size]); var ok = exe.winapi("kernel32:Process32FirstW",[hSnapshot, pe32]); while (ok) { var exe_name = exe.send("mem-string-from",[9*4 + pe32]); if (exe_name == pname) { var pid = parseInt(exe.send("mem-get-dword",[pe32,8])); if (pid != 0) { var hPr = exe.winapi("kernel32:OpenProcess",[PROCESS_TERMINATE,0,pid]); if (hPr != 0) { exe.winapi("kernel32:TerminateProcess",[hPr,0]); exe.winapi("kernel32:CloseHandle",[hPr]); } } } ok = exe.winapi("kernel32:Process32NextW",[hSnapshot, pe32]); } exe.winapi("kernel32:CloseHandle",[hSnapshot]); exe.winapi("kernel32:HeapFree",[memheap,0,pe32]); } |
Как-то все сложно. В скриптовом языке должно быть что-то типа:
killProcess: function(pName) { var pm = new ProcessManager(); pm.killProcess(pName); } |
и кое-какие комманды.
Вызываются так: exe.send(комманда, {param1:value1, param2:value2,...}); А вот сами команды: win-set-style caption-btn-img URL color-caption-active color-caption-active-gradient color-caption-active-text color-border-active color-caption-inactive color-caption-inactive-gradient color-caption-inactive-text color-border-inactive caption-gradient-mode 0..4 mode [system|default] border-width 0..20 round-size 0..50 caption-height 0..50 caption-font-size 6..48 caption-font-name string var-local-get [file] [section] key [default] [crypt(bool)] var-global-get [file] [section] key [default] [crypt(bool)] var-local-set [file] [section] key [value] [crypt(bool)] var-global-set [file] [section] key [value] [crypt(bool)] var-local-sections [file] var-global-sections [file] var-local-get-section [file] section var-global-get-section [file] section var-local-set-section [file] section [text] var-global-set-section [file] section [text] clipboard-set [text] clipboard-get panel-name-set [name] panel-name-get win-name-set [name] win-name-get win-close win-clear set-start-page [url] get-exe-version cache-remove [path] windows-version popup-menu items shell-exec file win-set-icon [small] [normal] [tray] refresh [window] [panel] home [window] [panel] navigate [window] [panel] [url] [text] [post] close [window] [panel] win-new [name] [url] [post] [text] [position] [origin] panel-new [name] [url] [post] [text] [position] win-alert [name] [url] [text] [position] [alpha] [time] parent-navigate [url] [post] [text] parent-refresh parent-home url-read url [post] [callback] [param] winapi [...] mem-string-to string ptr mem-string-to-a string ptr mem-string-add string ptr mem-string-add-a string ptr mem-string-from ptr mem-string-from-a ptr mem-set-char ptr offset value mem-set-byte ptr offset value mem-set-short ptr offset value mem-set-ushort ptr offset value mem-set-word ptr offset value mem-set-int ptr offset value mem-set-uint ptr offset value mem-set-dword ptr offset value mem-get-char ptr offset mem-get-byte ptr offset mem-get-short ptr offset mem-get-ushort ptr offset mem-get-word ptr offset mem-get-int ptr offset mem-get-uint ptr offset mem-get-dword ptr offset Параметры, указанные в квадратных скобках - необязательные. (для win-set-style - все необязательные). win-set-style - задает стиль главному окну. От него же стили копируются дочерним, по умолчанию. Но каждое дочернее может задать свои стили. Описание по-позже выложу, руки не доходят, да и меняется все постоянно. Я думаю можно и так догадаться пока, что к чему |
Цитата:
Я просто показываю что можно вызывать сишные функции |
Часовой пояс GMT +3, время: 12:11. |