Seite 1 von 2
Browser Informationen auslesen...
Verfasst: 11.02.2005 23:04
von Eisbaer
Hi,
Ich würde in mein Programm gerne eine Hilfe mit HTML Seiten einbauen,
aber vorher gerne Wissen ob auf dem System ein Browser (die gänigesten) installiert ist oder ob ich von meiner Programm CD noch eine
Browser Installationssoftware laden muss.
Kennt jemand ne Möglichkeit Registery, DLL Datei ect. Informationen über den Namen des Installierten Browsers und dessen Versionsnummer herauszufinden ?
danke schon mal im voraus.
mfg Eisbaer
Verfasst: 11.02.2005 23:07
von Hroudtwolf
am besten du schaust mal mit REGEDIT nach einem Eintrag vom InternetExplorer. Nach diesem Key lässt du dann dein Programm suchen.
Verfasst: 11.02.2005 23:15
von ts-soft
Mit dieser Prozedure erhältste Auskunft über den Pfad des standard-browsers
Code: Alles auswählen
Procedure.s GetAssociatedProgram(Extension.s)
Global AssociatedProgram$
hKey.l = 0
KeyValue.s = Space(255)
datasize.l = 255
AssociatedProgram$ = ""
If RegOpenKeyEx_(#HKEY_CLASSES_ROOT, "." + Extension, 0, #KEY_READ, @hKey) = #ERROR_SUCCESS
If RegQueryValueEx_(hKey, "", 0, 0, @KeyValue, @datasize) = #ERROR_SUCCESS
KeyNext.s = Left(KeyValue, datasize-1)
hKey.l = 0
KeyValue.s = Space(255)
datasize.l = 255
If RegOpenKeyEx_(#HKEY_CLASSES_ROOT, KeyNext + "\Shell\Open\Command", 0, #KEY_READ, @hKey) = #ERROR_SUCCESS
If RegQueryValueEx_(hKey, "", 0, 0, @KeyValue, @datasize) = #ERROR_SUCCESS
AssociatedProgram$ = Left(KeyValue, datasize-1)
EndIf
EndIf
EndIf
EndIf
Pos = FindString(LCase(AssociatedProgram$), ".exe", 1)
If Pos <> 0
AssociatedProgram$ = Left(AssociatedProgram$, Pos + 4)
AssociatedProgram$ = RemoveString(AssociatedProgram$, Chr(34), 1)
EndIf
ProcedureReturn AssociatedProgram$
EndProcedure
Debug GetAssociatedProgram("html")
Den Autoren dieser Prozedur hab ich leider nicht notiert

man möge mir verzeihen
Verfasst: 11.02.2005 23:19
von ts-soft
Hroudtwolf hat geschrieben:am besten du schaust mal mit REGEDIT nach einem Eintrag vom InternetExplorer.
So kann man benutzer alternativer Browser auch verärgern

Verfasst: 12.02.2005 01:27
von Hroudtwolf
Oh Sorry....
Aber diese Prüfung ist am besten geeignet für Leute die das Webgadget einbauen wollen. Denn das braucht den IE.
Re: Internet
Verfasst: 12.02.2005 19:51
von Eisbaer
Hi,
Ok der Code ist super und es wird auch der Internet Explorer bei mir korrekt gefunden.
Das wäre ja soweit schon alles super nur ich hätte auch noch gerne die Versionsinformation der jeweilige *.exe Datei ausgelesen um ihm nach Überprüfung des auf meiner CD zur Ferfügungstehende Version auch gegebenenfalls ein Update anbieten zu können.
Ich hab auch schon ein Script in C++ gefunden, das aber ohne DLL auskommt, und deshalb nicht nutzbar ist für PureBasic.
Wen es aber trotzdem Interessiert:
http://www.bytesandmore.de/rad/cpp/snipp/sc06001.php
mfg Eisbaer...
Verfasst: 12.02.2005 20:00
von ts-soft
Eine Passende Procedure findest Du unter:
http://purebasic.myforums.net/viewtopic ... ileversion
falls das englische Forum mal wieder down ist, hier der Code von ebs:
Code: Alles auswählen
;- get version of specified file as string
Procedure.s GetFileVersion(FileSpec.s)
Dummy.l
*Buffer
BufferLen.l
VerBuffer.VS_FIXEDFILEINFO
VerPointer.l
VerBufferLen.l
FileVersion.s
If OpenLibrary(0, "version.dll")
*GFI_Size = IsFunction(0, "GetFileVersionInfoSizeA")
*GFI_Info = IsFunction(0, "GetFileVersionInfoA")
*GFI_Value = IsFunction(0, "VerQueryValueA")
If *GFI_Size And *GFI_Info And *GFI_Value
; get size of version information buffer
BufferLen = CallFunctionFast(*GFI_Size, FileSpec, @Dummy)
If BufferLen
; allocate buffer and get version information
*Buffer = AllocateMemory(BufferLen)
CallFunctionFast(*GFI_Info, FileSpec, 0, BufferLen, *Buffer)
; find file version and copy into structure
CallFunctionFast(*GFI_Value, *Buffer, "\", @VerPointer, @VerBufferLen)
CopyMemory(VerPointer, VerBuffer, VerBufferLen)
; build file version string "x.x.x.x"
FileVersion = Str((VerBuffer\dwFileVersionMS & $FFFF0000) >> 16) + "." + Str(VerBuffer\dwFileVersionMS & $0000FFFF) + "." + Str((VerBuffer\dwFileVersionLS & $FFFF0000) >> 16) + "." + Str(VerBuffer\dwFileVersionLS & $0000FFFF)
EndIf
EndIf
CloseLibrary(0)
EndIf
; return file version string
ProcedureReturn FileVersion
EndProcedure
Debug GetFileVersion("C:\Programme\Internet Explorer\iexplore.exe")
Verfasst: 12.02.2005 20:01
von freedimension
Rein interessehalber und um vielleicht auch später besser helfen zu können sei mir eine Frage gestattet: Wozu benötigst du diese Informationen, bzw. wieso bist du auf einen bestimmten Browser angewiesen?
Gruß
Mirko
Re: Infos
Verfasst: 12.02.2005 21:00
von Eisbaer
Hi,
Ich bin ja gar nicht auf einen Bestimmten Browser angewießen siehe Topic 1 von mir.
Es ist nur so das ich gerne Überürüfen möchte Welche Version des Browsers (IE,Opera,Mozilla,Netscape,ect.) installiert sind um dann zu schauen ob auf meiner Programm CD nicht ne aktuellere Version drauf ist und ihm dann gegebenenfalls ein Update zur Verfügung zu stellen.
Dazu muss ich aber Informationen über selbiges Erlangen.
Ich bin wohl noch einer der wenigen die auch für DAU (Dümmster anzunehmender User) Programmieren.
Und nicht wissen wie sie die HTML Seiten anzeigen können oder warum fehler bei der Darstellung auftreten.
mfg Eisbaer

Re: Infos
Verfasst: 12.02.2005 23:15
von Kiffi
Eisbaer hat geschrieben:Es ist nur so das ich gerne Überürüfen möchte Welche
Version des Browsers (IE,Opera,Mozilla,Netscape,ect.) installiert sind um
dann zu schauen ob auf meiner Programm CD nicht ne aktuellere Version
drauf ist und ihm dann gegebenenfalls ein Update zur Verfügung zu
stellen.
ist ja wohl ein wenig oversized, für ein Hilfe-System beispielsweise die
Installation des aktuellen IE anzubieten.
Ich würde mich z.B. sehr freuen, wenn Dein Programm mir meinen Firefox
plattbügelt und danach plötzlich bestimmte PlugIns nicht mehr
funktionieren würden.
Eisbaer hat geschrieben:Ich bin wohl noch einer der wenigen die auch für DAU (Dümmster anzunehmender User) Programmieren.
dann würdest Du für ein Hilfesystem verwenden, welches auf jedem
Windows-BS ohne überflüssige Installation von Browsern funktionieren würde.
Grüße ... Kiffi