Browser Informationen auslesen...
Browser Informationen auslesen...
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
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
- Hroudtwolf
- Beiträge: 1416
- Registriert: 30.10.2004 23:33
- Kontaktdaten:
- ts-soft
- Beiträge: 22292
- Registriert: 08.09.2004 00:57
- Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel - Wohnort: Berlin
Mit dieser Prozedure erhältste Auskunft über den Pfad des standard-browsers
Den Autoren dieser Prozedur hab ich leider nicht notiert 
man möge mir verzeihen
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")

man möge mir verzeihen
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

- ts-soft
- Beiträge: 22292
- Registriert: 08.09.2004 00:57
- Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel - Wohnort: Berlin
So kann man benutzer alternativer Browser auch verärgernHroudtwolf hat geschrieben:am besten du schaust mal mit REGEDIT nach einem Eintrag vom InternetExplorer.


PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

- Hroudtwolf
- Beiträge: 1416
- Registriert: 30.10.2004 23:33
- Kontaktdaten:
Re: Internet
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...
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...


Die drei größten Feinde eines Programmierers sind Frischluft, Sonnenlicht und das unerträgliche Gebrüll der Vögel.
- ts-soft
- Beiträge: 22292
- Registriert: 08.09.2004 00:57
- Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel - Wohnort: Berlin
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:
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")
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

- freedimension
- Admin
- Beiträge: 1987
- Registriert: 08.09.2004 13:19
- Wohnort: Ludwigsburg
- Kontaktdaten:
Re: Infos
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
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



Die drei größten Feinde eines Programmierers sind Frischluft, Sonnenlicht und das unerträgliche Gebrüll der Vögel.
Re: Infos
ist ja wohl ein wenig oversized, für ein Hilfe-System beispielsweise dieEisbaer 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.
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.
dann würdest Du für ein Hilfesystem verwenden, welches auf jedemEisbaer hat geschrieben:Ich bin wohl noch einer der wenigen die auch für DAU (Dümmster anzunehmender User) Programmieren.
Windows-BS ohne überflüssige Installation von Browsern funktionieren würde.
Grüße ... Kiffi
a²+b²=mc²