Jak wykryć Operę?

w dziale Opera
lockoom napisał(a):

Nie chodzi mi tu o Javascript tylko o rejestr Windows smile
Jak wykryć wszystkie zainstalowane Opery w systemie? Jaki klucz rejestru odczytać?
Szukałem na anglojęzycznym forum (w jednym wątku nawet qviri o to pytał smile), ale jednoznacznej odpowiedzi nie znalazłem.
Moje prywatne śledztwo doprowadziło mnie do następujących kluczy:
1). HKCU\Software\Microsoft\Windows\ShellNoRoam\MUICache
Tu jako nazwy wartości siedzą ścieżki do różnych programów m.in. także do Opery.

2). HKCU\Software\Opera Software
Ciekawe wartości to:
a).Last CommandLine v2 - u mnie zawiera trochę dziwną wartość:
C:\Program Files\Opera75\opera.exe C:\Program Files\Opera75\opera.exe"
Dokładnie tak jak napisałem, dwa razy scieżka i tylko na końcu cudzysłów. Wy też tak macie?
b).Last Directory2 - u mnie: C:\Program Files\Opera7
c).Last Directory3 - u mnie: C:\Program Files\Opera75

No i oczywiście podobne klucze w HKEY_CURRENT_USERS.

Który z tych kluczy jest pewny? Tak na wyczucie to ten z pkt. 2.
Czy dla starszych wersji Opery jest tak samo?
Ad. 2b - Dlaczego taka dziwna wartość? To wina 7.5p1 czy wszystkie Opery tak śmiecą?

bazyli napisał(a):

[disklejmer - nie mówię z całą pewnością]
Z tego co wiem, to Opera jako taka słynie z tego, że sama z siebie nie korzysta z rejestru. Wszysto ma w plikach ini. Jedyne, co można znaleźć w rejestrze, to ślady interakcji Windowsa z Operą, czyli
- ustawienie Opery jako domyślnej aplikacji dla różnych plików lub protokołów;
- niedawne używanie folderów/skrótów do/plików Opery
- niedawne wysuzkiwanie pliku Opery;
- itd.

To wszystko są poszlaki, bo można sobie (tak mi się wydaje) mieć świeżo zainstalowaną Operę i ani widu śladu w rejestrze. Ergo: wyszukiwanie Opery po rejestrze to nie najpewniejszy pomysł. Polecam Windows+F, znajdź "opera.exe".

lockoom napisał(a):

No tak, ale ja piszę program i raczej trudno żebym przeszukiwał użytkownikowi cały dysk twardy aby wykryć Operę smile

qviri napisał(a):

Re: Jak wykryć Operę?

2). HKCU\Software\Opera Software
Ciekawe wartości to:
a).Last CommandLine v2 - u mnie zawiera trochę dziwną wartość:
C:\Program Files\Opera75\opera.exe C:\Program Files\Opera75\opera.exe"
Dokładnie tak jak napisałem, dwa razy scieżka i tylko na końcu cudzysłów. Wy też tak macie?
b).Last Directory2 - u mnie: C:\Program Files\Opera7
c).Last Directory3 - u mnie: C:\Program Files\Opera75

No i oczywiście podobne klucze w HKEY_CURRENT_USERS.

Który z tych kluczy jest pewny? Tak na wyczucie to ten z pkt. 2.
Czy dla starszych wersji Opery jest tak samo?
Ad. 2b - Dlaczego taka dziwna wartość? To wina 7.5p1 czy wszystkie Opery tak śmiecą? [/B]



W 7.23 ta ścieżka (Last CommandLine v2) jest poprawna. Więc to bug w 7.50, już im go zgłosiłem.

andol napisał(a):

Mitem jest, że Opera nic nie zapisuje w rejestrze Windows. Prawdą jest jednak, że zapisywane tam informacje to absolutne minimum. Wpisy można podzielić na trzy grupy:

1. Wpisy dokonywane przez instalatora Opery:

Gałąź:
HKEY_CURRENT_USER/Software/Opera Software

Klucz:
Last Directory = <ścieżka> (Opera 6)
Last Directory2 = <ścieżka> (Opera 7.0 - 7.30)
Last Directory3 = <ścieżka> (Opera 7.50 [1])

Zapisywana jest tu ścieżka w której ostatnio instalowano określoną wersję Opery.

Instalator Opery 7.50 zapisuje dodatkowo następujące klucze:
Create Desktop icon
Create Quicklaunch icon
Create Startmenu icons

Ich znaczenia łatwo się domyślić.

Informacje zapisywane przez instalatora wykorzystywane są podczas kolejnych instalacji:
- wykorzystanie ostatnio wybranych opcji dotyczących ikon (tylko Opera 7.50),
- skopiowanie informacji rejestracyjnych z poprzednio zainstalowanej kopii Opery (wszystkie wersje Opery).

2. Wpisy dokonywane przez Operę bez interakcji z użytkownikiem

Gałąź:
HKEY_CURRENT_USER/Software/Opera Software

Klucz:
Last CommandLine = (Opera 6)
Last CommandLine v2 = (Opera 7.x; być może nazwa tego klucza ulegnie zmianie w finalnej wersji Opery 7.50)

W tym kluczu zapisywana jest ścieżka do pliku wykonywalnego opera.exe oraz parametry wykorzystane przez Operę podczas uruchamiania. Tak więc:
- jeśli uruchomimy Operę klikając skrót do Opery (na pulpicie itp.) zapisana zostaje po prostu ścieżka do pliku opera.exe,
- jeśli uruchomimy Operę klikając np. plik HTML -- zapisana zostaje ścieżka do uruchomionego pliku opera.exe oraz przekazany Operze parametr (w tym wypadku ścieżka do otwieranego pliku HTML).

Należy o tym pamiętać "poszukując" Opery.

Bug dotyczący wpisu dokonywanego tu przez Operę 7.50 spowodowany jest najprawdopodobniej tym, że cała Opera 7.50 umieszczona jest teraz w bibliotece DLL.

3. Wpisy dokonywane przez Operę w wyniku działań użytkownika

Są to wpisy niezbędne do prawidłowego działania Opery w systemie Windows, a więc informacje dotyczące skojarzeń Opery z wybranymi przez użytkownika typami plików oraz protokołami.


Jak widać, nie jest możliwe odnalezienie wszystkich zainstalowanych w systemie kopii Opery (pomijam oczywiście przeszukiwanie przez program wszystkich dysków). Możemy wykryć:
1. Ostatnio zainstalowaną kopię Opery 6,
2. Ostatnio zainstalowaną kopię Opery 70 - 7.30,
3. Ostatnio zainstalowaną kopię Opery 7.50,
4. Ostatnio uruchomioną kopię Opery 6.
5. Ostatnio uruchomioną kopię Opery 7.x.

Niestety, jeśli użytkownik zainstaluje kilka kopii Opery 7 -- nie mamy szans na wykrycie wszystkich.

Jednak kilka kopii tej samej wersji Opery instalują zwykle jedynie użytkownicy zaawansowani, a tacy sami poradzą sobie z konfiguracją Twojego programu.

***
[1]. Mówiąc o Operze 7.50 mam oczywiście na myśli wersję Preview 1.

lockoom napisał(a):

Wielkie dzięki, andol!

Nasty napisał(a):

Originally posted by andol
Bug dotyczący wpisu dokonywanego tu przez Operę 7.50 spowodowany jest najprawdopodobniej tym, że cała Opera 7.50 umieszczona jest teraz w bibliotece DLL.


yikes Czyli... pssst jak dla mnie to przygotowanie, aby począwszy od O7.50 umożliwić wykorzystanie silnika renderowania Opery tak, jak jest to możliwe w przypadku silnika IE.
Chyba, że nie. confused No ale jakiś powód tego ruchu musiał być. Zwykłe przeprojektowanie programu? Może.. ale może nie tylko.. Zobaczymy..

BTW - super przewodnik andol! Wow! up

quiris napisał(a):

Originally posted by Nasty
yikes Czyli... pssst jak dla mnie to przygotowanie, aby począwszy od O7.50 umożliwić wykorzystanie silnika renderowania Opery tak, jak jest to możliwe w przypadku silnika IE.


Dokładnie o to chodzi.
Borg napisał na http://my.opera.com/forums/showthread.php?s=&threadid=39838 :
The DLL thing:
- It's a C interface, but thought for C++ use
- It will be possible to use the rendering engine with any registered copy of Opera and a host application can autodetect the most recent installation of Opera to use for rendering (Macromedia and Adobe does this today with Opera 6 for Mac)

Nasty napisał(a):

Originally posted by quiris
Dokładnie o to chodzi.


Haha, bingo! sherlock cheers

Originally posted by quiris
- It will be possible to use the rendering engine with any registered copy of Opera


Oh oh. No to nie każdemu użytkownikowi będzie to dane... Hm.. Więc na zastosowanie masowe się nie nastawiają.. Czyli kierują tą funkcjonalność pod rozwiązania dedykowane, dla wąskiej grupy użytkowników lub ewentualnie bundle - jakiś drogi produkt pudełkowy + licencja/kupon na Operę (jeśli wolno tak sprzedawać).

EDIT: Ciekawe kiedy pojawią się narzędzia do tworzenia HTML, które pozwolą testować strony w swoim interfejsie korzystając z silnika Opery. Ponieważ szkoły i instytucje (także firmy i chyba osoby fizyczne) tworzące strony web mogą się ubiegać o darmowe licencje, odbiorców by raczej nie brakowało twórcom takich narzędzi. A być pierwszym na rynku w jakimś względzie to też duży plus, napędzający popularność. No to zobaczymy, kto się pokwapi.

A, i ciekawe kiedy pojawią się... nakładki na Operę. wink

porneL napisał(a):

kiedy pojawią się... nakładki na Operę
mozliwe ze nigdy jesli operasoftware zechce zablokowac 'nieupowazniony' dostep do ich silnika (metodami kryptograficznymi, np. aplikacja otwierajaca dll bedzie musiala sie 'zalogowac')

quiris napisał(a):

Originally posted by porneL
kiedy pojawią się... nakładki na Operę

mozliwe ze nigdy jesli operasoftware zechce zablokowac 'nieupowazniony' dostep do ich silnika (metodami kryptograficznymi, np. aplikacja otwierajaca dll bedzie musiala sie 'zalogowac')


Dlaczego? Ja nie widzę przeszkód. Przecież Borg napisał, że to dotyczy Opery zarejestrowanej. Wystarczy, że opera.dll będzie badała, czy ma do czynienia z właściwym plikiem OUsr600.dat. Jeśli tak, to nakładka odpali silnik, jeśli nie, to nieodpali. Oczywiście najbardziej sensowne byłoby upublicznienie API tego silnika, bo w tej chwili to trzeba najpierw jakieś umowy podpisywać pomiędzy zaintersowanymi firmami, a OS ASA.