Browser Informationen auslesen...

Für allgemeine Fragen zur Programmierung mit PureBasic.
Benutzeravatar
Eisbaer
Beiträge: 9
Registriert: 11.02.2005 22:52
Wohnort: Deutschland
Kontaktdaten:

Browser Informationen auslesen...

Beitrag 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
Benutzeravatar
Hroudtwolf
Beiträge: 1416
Registriert: 30.10.2004 23:33
Kontaktdaten:

Beitrag von Hroudtwolf »

am besten du schaust mal mit REGEDIT nach einem Eintrag vom InternetExplorer. Nach diesem Key lässt du dann dein Programm suchen.
Benutzeravatar
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

Beitrag 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
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.
Bild
Benutzeravatar
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

Beitrag 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 :mrgreen:
Bild
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.
Bild
Benutzeravatar
Hroudtwolf
Beiträge: 1416
Registriert: 30.10.2004 23:33
Kontaktdaten:

Beitrag von Hroudtwolf »

Oh Sorry.... :D

Aber diese Prüfung ist am besten geeignet für Leute die das Webgadget einbauen wollen. Denn das braucht den IE.
Benutzeravatar
Eisbaer
Beiträge: 9
Registriert: 11.02.2005 22:52
Wohnort: Deutschland
Kontaktdaten:

Re: Internet

Beitrag 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...
Bild
Bild

Die drei größten Feinde eines Programmierers sind Frischluft, Sonnenlicht und das unerträgliche Gebrüll der Vögel.
Benutzeravatar
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

Beitrag 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")
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.
Bild
Benutzeravatar
freedimension
Admin
Beiträge: 1987
Registriert: 08.09.2004 13:19
Wohnort: Ludwigsburg
Kontaktdaten:

Beitrag 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
Beginne jeden Tag als ob es Absicht wäre!
Bild
BILDblog
Benutzeravatar
Eisbaer
Beiträge: 9
Registriert: 11.02.2005 22:52
Wohnort: Deutschland
Kontaktdaten:

Re: Infos

Beitrag 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 :D
Bild
Bild

Die drei größten Feinde eines Programmierers sind Frischluft, Sonnenlicht und das unerträgliche Gebrüll der Vögel.
Benutzeravatar
Kiffi
Beiträge: 10711
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Re: Infos

Beitrag 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
a²+b²=mc²
Antworten