Что нового

Opera Library - Библиотека для работы с браузером Opera

Автор
CreatoR

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,671
Репутация
2,481
k790 [?]
как мне узнать эту папку
Использовать _OperaGetProfileDir - возращает папку профиля последней запущенной оперы.

она и будет совпадать с названием папки в Programm Files?
Совершенно верно.

Хотя правильнее сделать так:

Код:
#include <Array.au3>
#include "Opera.au3"

$aOperaDirs = _OperaFindDir("C:", 5) ;Возвращает первые найденные 5 установочных путей Opera на диске C:

If Not @error Then
    Dim $aOpProfileDirs[$aOperaDirs[0]+1] = [$aOperaDirs[0]]
    
    For $i = 1 To $aOperaDirs[0]
        $aOpProfileDirs[$i] = _OperaGetProfileDir($aOperaDirs[$i])
    Next
    
   _ArrayDisplay($aOpProfileDirs)
EndIf
 

k790

Новичок
Сообщения
239
Репутация
1
CreatoR [?]
Хотя правильнее сделать так:
У меня снова глюки
Screenshot_38.jpg

Screenshot_39.jpg



Добавлено:
Сообщение автоматически объединено:

а если в первые 5 не попадает опера пользователя? (я так полагаю, что 5 в $aOperaDirs это и обозначает).
+
как скрипт сможет определить то или не то? (может это опера ас).
Всё-таки лучше делать, чтоб юзер сам показывал, где стоит опера или ещё один вариант я нашёл в реестре (чуть позже скажу какой путь)
 
Автор
CreatoR

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,671
Репутация
2,481
k790 [?]
У меня снова глюки
Сколько у тебя папок с установленной Opera на диске «C:»?

[?]
а если в первые 5 не попадает опера пользователя?
Что значит опера пользователя?

Я так понял тебе вообще не нужно заниматься поиском, тебе просто нужно получить путь к профилю папки Opera, это делается обычным вызовом _OperaGetProfileDir(-1) - если оно возвращает ошибку, значит либо профиль ещё не создан (свежая установка, до первого запуска оперы), либо в реестре нет записи о запуске оперы (повторяю - папка откуда в последний раз была запущена опера).

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

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,671
Репутация
2,481
Обновил библиотеку:

v1.03 [16.05.2011]
* Библиотека переименована в Opera.au3.
* Исправлена функция _OperaScreenCapture (теперь совместима с Opera 10.6, но по прежнему имеет проблемы с захватом панелей).
* Исправлены несколько значительных проблем связанных с получением пути к файлу настроек Opera.
* Исправлена функция _OperaGetDir().
* Исправлена функция _OperaGetProfileDir() (ошибка при попытке получить папку профиля в многопользовательском режиме).
* Изменена функция _OperaFindDir.
- Теперь параметр $sInitPath может принимать несколько путей (разделяемых через "|").
- Теперь при использований -1 в качестве второго параметра ($iRetCount), функция возвращает все найденные папки Opera.
- Также функция теперь работает значительно быстрее.
+ Поддержка Opera 10.6.
+ Добавлена функция _OperaToggleMenuItemState.
+ Добавлен опциональный параметр $sStandard_Name в функцию _OperaSetConfigFile:
Если этот параметр указан как строка (по умолчанию -1), тогда он используется как стандартное имя файла
(вместо "standard_" & $sConfig_Prefix & ".ini").
 

k790

Новичок
Сообщения
239
Репутация
1
CreatoR [?]
повторяю - папка откуда в последний раз была запущена опера
Смотри, у меня на компе стоит 13 Опер! из них всего 1-это обычная опера!
Да, я понимаю, что это хлам и надо удалять, но это факт!
Лично я каждый день включаю только оперу ас последняя, которую настроил под себя.
Так что для ИДЕАЛЬНОГО решения-это не то!
Или есть выход?
 
Автор
CreatoR

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,671
Репутация
2,481
k790 [?]
у меня на компе стоит 13 Опер!
У меня больше ;)

из них всего 1-это обычная опера!
Не AC? ну так в чём проблема?

Я тебе уже нарисовал несколько выходов, ты либо невнимательно читаешь то что я пишу, либо неправильно объясняешь свою проблему.

P.S
Библиотеку обновил?
 

k790

Новичок
Сообщения
239
Репутация
1
Теперь заработало, но в первые 5 путей никак не попала папка-programm files\opera, но за то попала папка в документах и настройках-это же показатель, что у кого-нибудь будет так же.

А вот и те ветки, которые я нашёл и обещал показать:

Код:
[HKEY_CLASSES_ROOT\Applications\Opera.exe\shell\open\command]
@="\"C:\\Program Files\\Opera\\Opera.exe\" \"%1\""
Код:
[HKEY_CLASSES_ROOT\CLSID\{42042206-2D85-11D3-8CFF-005004838597}\Old Icon\Opera.HTML\DefaultIcon]
@="\"C:\\Program Files\\Opera\\Opera.exe\",1"
Код:
[HKEY_CLASSES_ROOT\Opera.Extension\DefaultIcon]
@="\"C:\\Program Files\\Opera\\Opera.exe\",5"

Код:
[HKEY_CLASSES_ROOT\Opera.Extension\shell\open\command]
@="\"C:\\Program Files\\Opera\\Opera.exe\" \"%1\""
Код:
[HKEY_CURRENT_USER\Software\Classes\Opera.Extension\DefaultIcon]
@="\"C:\\Program Files\\Opera\\Opera.exe\",5"

Код:
[HKEY_CURRENT_USER\Software\Classes\Opera.Extension\shell\open\command]
@="\"C:\\Program Files\\Opera\\Opera.exe\" \"%1\""

Код:
[HKEY_CURRENT_USER\Software\Microsoft\Windows\ShellNoRoam\MUICache]

"C:\\Program Files\\Opera\\Opera.exe"="Opera Internet Browser"

Код:
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Applications\Opera.exe\shell\open\command]
@="\"C:\\Program Files\\Opera\\Opera.exe\" \"%1\""
 
Автор
CreatoR

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,671
Репутация
2,481
k790 [?]
в первые 5 путей никак не попала папка-pogramm files\opera
И что, значит функция нашла раньше те первые 5 папок :smile:

А вот и те ветки, которые я нашёл
Это показывает путь по которому в последний раз была установлена опера.
 

k790

Новичок
Сообщения
239
Репутация
1
CreatoR [?]
И что, значит функция нашла раньше те первые 5 папок :smile:
Я это понял.
Этот процесс (поиск оперы) занимает много времени, во всяком случае у меня
 
Автор
CreatoR

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,671
Репутация
2,481
Обновил библиотеку:

v1.04 [26.Jun.2011]
* Следующие функций исправлены для улучшения совместимости с Opera 11.x:
_OperaGetProfileDir
_OperaMultiUserModeIsOn
_OperaGetUserJSDir
__Correct_Opera_Path

* Исправлены серьёзные ошибки в распознаваний папки Opera (в случае если параметр $sOpDir передан с неверным путём к папке Opera).
* Исправлена функция _OperaGetUserJSDir (теперь работает лучше с относительными путями).
* Переименована и изменена функция _Opera_Integration_Example. Теперь считается активной (публичной) функцией, именуется как _Opera_Integration_Module.
* Изменена функция _OperaSelectFolder. Добавлен новый опциональный параметр $hParent (дескриптор родительского окна).
* Изменены функций _OperaAddMenuItem и _OperaRemoveMenuItem. Добавлен новй опциональный параметр $iBackup.
* Исправлена функция _OperaAddMenuItem. Проблемы с кодировкой.
+ Добавлена новая функция _OperaGetCacheDir.
+ Добавлен новый опциональный параметр $iGetLastInstallPath в функцию _OperaGetDir.
Если этот параметр равен 1, функция будет пытаться определить путь к последней установленной папке Opera,
вместо того чтобы получать путь откуда в последний раз была запущена Opera (Opera.exe).
 

k790

Новичок
Сообщения
239
Репутация
1
А как мне узнать папку, допустим скинов в опере, если есть путь до установленной оперы, то есть дано
Код:
"C:\Programm Files\Opera"

Надо узнать где находятся скины
 
Автор
CreatoR

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,671
Репутация
2,481
k790 [?]
Надо узнать где находятся скины
Родные скины лежат в Opera\Skins. А путь до текущего скина узнаётся так:
Код:
_OperaGetSkinFile("C:\Programm Files\Opera")
 

k790

Новичок
Сообщения
239
Репутация
1
А с оперой ас работает?


Добавлено:
Сообщение автоматически объединено:

Забыл написать, в слове Program одна буква m - это моя ошибка
 

k790

Новичок
Сообщения
239
Репутация
1
CreatoR [?]
как библиотека узнаёт какая опера, а соответственно и пути файлов оперы


Какими сессиями, что конкретно нужно?
Конкретно,, я пытаюсь перевести свою программу на твою библиотеку, но я не увидел, какой командой узнать путь до contacts.adr, папка sessions
 
Автор
CreatoR

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,671
Репутация
2,481
k790 [?]
как библиотека узнаёт какая опера, а соответственно и пути файлов оперы
Ей не важно какая опера, пути берутся с файлов конфига (profile\opera_prefs.imi).

какой командой узнать путь до contacts.adr, папка sessions
Код:
$sContacts = _OperaGetProfileDir() & "\contacts.adr"
$sSessions = _OperaGetProfileDir() & "\sessions"
 

k790

Новичок
Сообщения
239
Репутация
1
CreatoR [?]
Ей не важно какая опера, пути берутся с файлов конфига (profile\opera_prefs.imi).
Но этот файл лежит в разных местах, в опере ас в одном, а в обычной опере - в другом.
А место положение сессий и контактов в обычной опере не менялся с течением времени и версий?
 
Верх