Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 17.03.2010, 15:18
Интересующийся
Отправить личное сообщение для Дубров Олег Посмотреть профиль Найти все сообщения от Дубров Олег
 
Регистрация: 17.03.2010
Сообщений: 12

Цитата:
С интерпретатором IE замучаешься ошибки отлаживать.
Если вы говорите о IE6, да согласен, ошибок у него хватает. В современных же версиях IE все уже по-человечески. Я надеюсь, пройдет время и не останется больше пользователей IE6
Ответить с цитированием
  #12 (permalink)  
Старый 17.03.2010, 15:23
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

Сообщение от Дубров Олег
Если вы говорите о IE6, да согласен, ошибок у него хватает.
Я имею в виду не ошибки самого IE, а то, как он сообщает об ошибках в пользовательских скриптах.
И зависимость от движка, установленного в системе, никак не может быть плюсом. Это получается в любом случае нужно ориентироваться на IE6, т.к. неизвестно, когда он исчезнет с подавляющего числа машин.
Ответить с цитированием
  #13 (permalink)  
Старый 17.03.2010, 15:52
Интересующийся
Отправить личное сообщение для Дубров Олег Посмотреть профиль Найти все сообщения от Дубров Олег
 
Регистрация: 17.03.2010
Сообщений: 12

Я сам не большой поклонник продуктов Microsoft, но если мы говорим о разработчике, то для отладки ему разумно пользоваться ИЕ8. Он обладает довольно мощными средствами отладки. Сейчас, кстати, ведутся работы по интеграции отладчика в samosat. Цель - получить те же инструменты, что и в полнорежимном браузере IE8.

Для большей совместимости с другими браузерами рекомендуем использовать кроссбраузерные библиотеки. Конечно это не может решить всех проблем, в частности различное понимание стилей CSS разными версиями IE, но все же заметно облегчит разработку.
Ответить с цитированием
  #14 (permalink)  
Старый 17.03.2010, 16:19
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

Сообщение от Дубров Олег
Я сам не большой поклонник продуктов Microsoft, но если мы говорим о разработчике, то для отладки ему разумно пользоваться ИЕ8.
Вопрос не в том, чем будет пользоваться разработчик, а в том, чем будет пользоваться пользователь.
Ответить с цитированием
  #15 (permalink)  
Старый 17.03.2010, 17:56
Интересующийся
Отправить личное сообщение для Дубров Олег Посмотреть профиль Найти все сообщения от Дубров Олег
 
Регистрация: 17.03.2010
Сообщений: 12

Пользователи пользуются разными браузерами, и Мозиллой, и ИЕ, и Оперой. Для прогрммы samosat имеет значение лишь версия IE в системе. С windows 7 в комплекте сразу идет ИЕ8. Это в каком-то смысле обнадеживает. Севен набирает обороты и это приятно.

Если вы говорите, что есть проблема для обладателей ИЕ6 и возможных ошибках приложения в нем - да, такая проблема есть. Выхода два: либо разработчику тестировать свое приложение на ИЕ6, либо пользователю обновлять свой браузер.
Впрочем как и при разработке сайта.
Это решение должен принимать разработчик приложения, в зависимости от целей и предполагаемой аудитории его пользователей.

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

Я для себя выработал такое правило: в ие6 сайт обязан работать, но не обязан быть красивым, не обязан корректно отображаться и не обязан быть удобным. Это компромисс, сохраняющий нервы разработчиков и в тоже время это не геноцид пользователей старых браузеров.
Ответить с цитированием
  #16 (permalink)  
Старый 17.03.2010, 20:14
Аватар для subzey
Пионэр
Отправить личное сообщение для subzey Посмотреть профиль Найти все сообщения от subzey
 
Регистрация: 16.11.2009
Сообщений: 1,322

Сообщение от Дубров Олег
Я для себя выработал такое правило: в ие6 сайт обязан работать, но не обязан быть красивым, не обязан корректно отображаться и не обязан быть удобным.
Ну, как сказать. Сайт всегда должен быть юзабельным, иначе зачем он?
Ответить с цитированием
  #17 (permalink)  
Старый 23.03.2010, 23:56
Интересующийся
Отправить личное сообщение для Дубров Олег Посмотреть профиль Найти все сообщения от Дубров Олег
 
Регистрация: 17.03.2010
Сообщений: 12

вот, уже кое что готово, первая рабочая ревизия
путь сменился:
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]);
}

Последний раз редактировалось Дубров Олег, 23.03.2010 в 23:59.
Ответить с цитированием
  #18 (permalink)  
Старый 24.03.2010, 00:03
Отправить личное сообщение для Octane Посмотреть профиль Найти все сообщения от Octane  
Регистрация: 10.07.2008
Сообщений: 3,873

Как-то все сложно. В скриптовом языке должно быть что-то типа:
killProcess: function(pName) {
    var pm = new ProcessManager();
    pm.killProcess(pName);
}

Последний раз редактировалось Octane, 24.03.2010 в 00:07.
Ответить с цитированием
  #19 (permalink)  
Старый 24.03.2010, 00:05
Интересующийся
Отправить личное сообщение для Дубров Олег Посмотреть профиль Найти все сообщения от Дубров Олег
 
Регистрация: 17.03.2010
Сообщений: 12

и кое-какие комманды.
Вызываются так:
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 - задает стиль главному окну. От него же стили копируются дочерним, по умолчанию. Но каждое дочернее может задать свои стили.

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

Последний раз редактировалось Дубров Олег, 24.03.2010 в 00:15.
Ответить с цитированием
  #20 (permalink)  
Старый 24.03.2010, 00:13
Интересующийся
Отправить личное сообщение для Дубров Олег Посмотреть профиль Найти все сообщения от Дубров Олег
 
Регистрация: 17.03.2010
Сообщений: 12

Сообщение от Octane Посмотреть сообщение
Как-то все сложно. В скриптовом языке должно быть что-то типа:
killProcess: function(pName) {
    var pm = new ProcessManager();
    pm.killProcess(pName);
}
Да да, конечно. В итоге так и будет . Мы сделаем библиотечку, чтото-типа winapi.js и там все человеку понятные методы. Будете писать как король!

Я просто показываю что можно вызывать сишные функции
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите с javascript andruhin Общие вопросы Javascript 12 04.05.2012 10:05
Регулярка не должна воспринимать текст JavaScript в теге Script alexKniaz Общие вопросы Javascript 5 30.10.2009 21:59
JavaScript на Яндекс.Фотки - почему тормозит браузеры? ZavFirefox Javascript под браузер 23 27.09.2009 19:24
Программист на JavaScript (удалённо) Vadym Работа 1 28.01.2009 13:57
Нужен Старший разработчик JavaScript Yandex Работа 17 19.08.2008 16:43