Страница 2 из 5

Добавлено: Чт ноя 25, 2010 16:05
Loopback
Универсального решения не будет все равно. У каждого браузера свои классы окон, и не факт еще, что вообще удастся различить окна вкладок, а если и удастся, то получится ли получить из них текст URL.

С файлами, имхо, все же надежнее.

Добавлено: Чт ноя 25, 2010 16:11
Flasher
Серёжа, не трудись. Я тебя понял.
Портативность не равно портабельность, так, на всякий случай. :wink:
MVV писал(а):Flasher, список браузеров фиксированный, или надо для всех?
Если так необходимо - сократим. :)
MVV писал(а):большинство браузеров переключают вкладки не в порядке создания, а в порядке последнего использования - в таком случае последовательные Ctrl+Tab будут переключаться лишь между двумя последними открытыми вкладками.
Боюсь, ты ошибся. Не большинство, а некоторые. Из мною используемых - только Opera. Но я сразу этот вариант отмёл, как ты мог заметить. :wink:
MVV писал(а):ИМХО, проще будет для конкретного списка браузеров из сохраненных сеансов выдирать список вкладок. А уже открывать их в любом браузере проще простого - последовательно запускать этот браузер с очередной ссылкой.
Ух, нравится мне это "проще простого", ну коли сможешь, то меня и такой вариант устроит пока что. :)
Loopback писал(а):У каждого браузера свои классы окон, и не факт еще, что вообще удастся различить окна вкладок, а если и удастся, то получится ли получить из них текст URL.
Так я тебе и написал, что для класса окна каждого браузера. Логично. Насчёт "различать окна вкладок" - надо посмотреть, про вычленять, думаю, не такая проблема, если адреса уже будут заложены в каждом дескрипторе.

Добавлено: Чт ноя 25, 2010 21:40
Loopback
Flasher писал(а):надо посмотреть, про вычленять, думаю, не такая проблема, если адреса уже будут заложены в каждом дескрипторе.
Вот именно - если... Хорошо если поле с адресом - стандартный контрол, или его наследник. Тогда текст можно получить стандартными средствами. Но это далеко не факт, контрол может быть полностью отрисованный. Попробуй, например, получить текст из дельфийского грида...

Посмотрел дерево окон Оперы - окон, откуда можно получить URL, не видно.

Добавлено: Чт ноя 25, 2010 23:18
480499497
Когда то я работал сисадмином в клубе, поднимал там вопросы организации Домена народными средствами.
Ну и однажды проходил подобный вопрос.
Решил его след путем.
В сети были созданы каталоги разные, для моих док. для темпа, для темпорари интернет, для апликейшенов.
Все параметры приходилось внедрять вручную, так как ядро НТ не позволяло создавать удаленные системные каталоги без использования домена.

вообщем после того как это было создано, я заметил одну интересную особенность.
Все браузеры при открытии имели как вы понимаете одну и туже историю, память о сеансах, закладки и тому прочую хрень.

Каждый браузер имеет (не всегда настраиваемую) опцию пути кеша и локального профиля. Вам не составит труда применить параметр в ярлыке или при помощи аддона или патча, что бы загружать браузер с удаленными пофайлами. И таким образом с любой точки локальной сети вы можете работать с удобными для вас настройками.

Добавлено: Чт ноя 25, 2010 23:43
480499497
еще вам идея на заметку, существует плагин в ТС который систематизирует КЕШ двига IE, и может работать с ними по доменам (помоему MSIE Cache). Все браузеры построеные на использовании двига IE, будут оставлять следы в кеше, и по принципу плагина можно построить список посещенных сайтов и открытых адресов, используя время создания или изменения файлов. Изменеия файлов происходят в момент открытия, загрузки, изменения содержания и закрытия, так что ошибиться не получиться. Таким образом создать скрипт некой истории для браузера - можно, и не нада работать ни с обьектами ни с загаловками.
Но для браузеров не IE немного сложнее будет, и я вообще как то даже не задавался ни разу вопросом по какому принципу они создают кеш. Но тоже по доменам- однозначно, иначе бы Хистори не работал бы.
Ктото там в теме сказал что Хромоподобные работают с движком IE - ЭпикФейлд, они работают с своим кешем никак не касаясь MSIE. Свой кеш и у Оперы, и у Фокса.
Можете почитать документацию про то как устроено хранение данных в кеше для каждого браузера и писать скрипт экспорта и импотра текущих страниц.

З.Ы. Хотя ябы пользовался портированой версией браузера, ведь в любом случае его нада ЗАПУСКАТЬ, и хранил бы просто на сервере где то в расшареной папке. Ну если не весь браузер то хотя бы его профайл и кеш.

Добавлено: Пт ноя 26, 2010 02:07
Flasher
Loopback
Попробуй в gecko-образных, хромообразных ещё. K-Meleon, например, с открытым кодом, может, в нём что получится изъять. Так же интересует Orca и SRWare Iron. Остальные не буду называть, а то сразу желание отпадёт ковыряться. Этого будет достаточно. :wink:

480499497
О локальных сетях речь не шла. В любом случае, как можно из профайла, скажем, gecko-браузера запустить ссылки в Опере, и наоборот? Что'ж так ТЗ читать не хотим..
480499497 писал(а):Ктото там в теме сказал что Хромоподобные работают с движком IE - ЭпикФейлд, они работают с своим кешем никак не касаясь MSIE. Свой кеш и у Оперы, и у Фокса.
Этот кто-то, надо полагать, я. И про кэш я не сказал ни слова, я сказал про свойства. Читай внимательней.
480499497 писал(а):З.Ы. Хотя ябы пользовался портированой версией браузера, ведь в любом случае его нада ЗАПУСКАТЬ, и хранил бы просто на сервере где то в расшареной папке. Ну если не весь браузер то хотя бы его профайл и кеш.
Вот представь себе, есть на белом свете люди, которым необходимо пользоваться разными браузерами с учётом их различного функционала, сохранённых закладок, сессий и т.п. И на флешке мне хватает одного браузера, он у меня под определённые нужды заточен. Рассказывать чем отличается скорость работы браузеров с харда и USB2.0-флешки, надеюсь, не надо. Просил же в холивар не превращать..

Добавлено: Пт ноя 26, 2010 02:30
480499497
О локальных сетях речь не шла. В любом случае, как можно из профайла, скажем, gecko-браузера запустить ссылки в Опере, и наоборот? Что'ж так ТЗ читать не хотим..
Ты всегда так предвзято относишся к попыткам помочь тебе решить проблему? Или ты просто привык что бы тебе давали всё так как ты хочеш.
Я твоё тз прочитал, и попробовал предложить тебе АЛЬТЕРНАТИВНЫЙ вариант облегчения тебе работы, который может быть подходящим, и не прийдется ломать голову а
Хромообразные браузеры, в принципе, используют свойства IE. Я одним таким пользуюсь.
а я только на прошлой неделе разбирал этот вопрос потому что решил перейти на хром, весь их форум уже облазил и зделал хром портированый. Вот я и решил поправить тебя по поводу юзаний свойст IE. Мне же известно что хром от IE никакие свойства не берет. Да и вообще это всем известно.
Вот представь себе, есть на белом свете люди, ..... Просил же в холивар не превращать..
я тебе дал два варианта, второй даже очень дельный, построить твой скрипт не на заголовках и парсинге обьектов процесов, а на кеше движков, работы между прочим меньше было бы. Ктомуже вся нужная информация что тебе нада, там есть и получить её легко. И еще даже подсказку дал про то как её получить.

Добавлено: Пт ноя 26, 2010 02:42
Flasher
480499497 писал(а):Ты всегда так предвзято относишся к попыткам помочь тебе решить проблему? Или ты просто привык что бы тебе давали всё так как ты хочеш.
Я не привык к тому, чтобы мне что-то сразу давали. Есть ТЗ, всё остальное меня не интересует. Так понятно?
480499497 писал(а):. Мне же известно что хром от IE никакие свойства не берет. Да и вообще это всем известно.
Без комментариев. Значит я знаю то, чего не знаешь ты. За остальных не говорим..
480499497 писал(а): я тебе дал два варианта, второй даже очень дельный, построить твой скрипт не на заголовках и парсинге обьектов процесов, а на кеше движков, работы между прочим меньше было бы. Ктомуже вся нужная информация что тебе нада, там есть и получить её легко.
Спасибо за подсказку о кэше. Но насчёт "просто" соглашусь тогда, когда ты мне покажешь хотя бы, как из кэша K-Meleon получить все ссылки, где он располагается, я и так прекрасно знаю.

Добавлено: Пт ноя 26, 2010 02:42
480499497
кстати, вот тебе еще вариант. Конкретно по твоему ТЗ а не по тому неочень удачному методу которым ты хотел его реализовать.

В браузерах (ну насколько я помню) есть такая функция как Добавить в избранные. Делай себе скрипт, ктороый просто в избранные будет создавать каталог с страницами текущих вкладок.
в папку будут сохранены и созданы нужные тебе адреса.

Уж как вытащить ИЗБРАННЫЕ из браузеров и как их туда засунуть...

Добавлено: Пт ноя 26, 2010 08:41
Avada
Предыдущие посты частично удалены, частично отредактированы. Оставлена существенная часть, убран ненужный флейм, включая переходы на личности.
480499497 — предупреждение за нарушение п. 3 правил форума.

Добавлено: Пт ноя 26, 2010 10:56
Loopback
Flasher писал(а):Попробуй в gecko-образных, хромообразных ещё. K-Meleon, например, с открытым кодом, может, в нём что получится изъять. Так же интересует Orca и SRWare Iron. Остальные не буду называть, а то сразу желание отпадёт ковыряться. Этого будет достаточно.
Гм, честно говоря, уже отпадает :) Не очень хочется возиться со всякой экзотикой. Про последние два даже не слышал. Правда, быстрый поиск по гуглу показал, что Orca на движке Gecko, а Iron - на движке хрома. Возможно, и данные они хранят одинаково.

Если смотреть по фоксу, у него вкладки сохраняются в файле sessionstore.js, в формате JSON. Его прочитать не так уж сложно. Подозреваю, другие Gecko-образные браузеры используют тот же механизм.

Как с этим обстоит у хрома - посмотрю, заодно и посмотрю его новую версию, я его ставил последний раз год назад.

Добавлено: Пт ноя 26, 2010 11:06
Flasher
Loopback писал(а):Правда, быстрый поиск по гуглу показал, что Orca на движке Gecko, а Iron - на движке хрома.
Это ты верно подметил.
Loopback писал(а):Возможно, и данные они хранят одинаково.
К сожалению нет. У хромированных похоже последние вкладки кэшируются в бинарники. Как таковых сессий у него нет. Есть только специальное расширение, только оно похоже в Iron не работает.
Loopback писал(а):Если смотреть по фоксу, у него вкладки сохраняются в файле sessionstore.js, в формате JSON. Его прочитать не так уж сложно. Подозреваю, другие Gecko-образные браузеры используют тот же механизм.
Это верно. Но у K-Meleon сделано через .., пихается всё в общий файл настроек prefs.js.

Добавлено: Пт ноя 26, 2010 14:51
MVV
Как уже говорилось неоднократно, получить список открытых в данный момент в браузерах ссылок далеко не всегда возможно. Поэтому наиболее доступный вариант - анализ файлов сессий.

Ну по Опере я писал в приват:
MVV писал(а):Глянул щас, у Оперы в принципе несложно найти последние вкладки: в папке профиля подпапка sessions, там INI-файл autosave.win. И в нем в блоке [session] параметр window count отвечает за число окон. А далее от 1 до этого числа перебираешь секции с именами [1history url], [2history url] и т.д. и берешь из этих секций значение параметра с именем 0. Осталось составить скрипт. :) Но юзер может использовать и не сеанс по умолчанию, тогда имя файла может быть не autosave.win.
С Оркой все оказалось куда проще, чем с Оперой. Зашел в папку профиля (C:\Documents and Settings\<Юзер>\Application Data\Orca Profiles\.default), там "эфтрикнул" первый файл, название которого мне понравилось - это был reopen.dat. Оно. Файл в кодировке UTF-8, состоит из пар строк: первая - заголовок вкладки, вторая - URL, и т.д. Т.е. просто берешь каждую вторую строку файла.

А с Айроном сложнее - в профиле несколько файлов с бинарным содержимым, которые могут содержать нужную информацию. Например, файлы Current Session, Current Tabs, Last Session, Last Tabs.

Добавлено: Пт ноя 26, 2010 14:55
Flasher
Таак, есть контакт, процесс пошёл. :)

Добавлено: Пт ноя 26, 2010 15:24
MVV
Ну а у Хамелеона нужно парсить prefs.js. Есть предыдущая сессия, её браузер предлагает открыть при запуске. Далее читаем строку, начинающуюся с user_pref("kmeleon.plugins.sessions2.Last Session.window0.count", - в ней после запятой указано число открытых вкладок. Потом берем строки, начинающиеся с user_pref("kmeleon.plugins.sessions2.Previous Session.window0.tab0", - выделен номер вкладки (от 0 до N-1, где N - число вкладок), а после запятой идет в кавычках строка, содержащая ряд полей, разделенных табами - после 4-го таба идет адрес страницы, после пятого - текст заголовка вкладки. Нужно лишь взять эти строки между кавычками и разделить на подстроки, учитывая символы табуляции, затем взять соответствующие элементы.