Fundstück: Diskette

Mittwoch, 19. Februar, 2014

Es ist sooo lange her, dass ich meine ersten Programmzeilen geschrieben habe. Das war zu meinen Schulzeiten an einem 8 Bit Computer namens Z9001 und muss so 1987 herum gewesen sein.

Nach der Wende war mein erster Computer ein C-64 … im Studium mein zweiter ein PC. Nicht zuletzt wg. des Informatikkurses bin ich auf Turbo Pascal umgeswitcht und habe unter DOS programmiert. Mein DOS-Highlight war damals ein Freeware-Menüprogramm, das bei einem Programmaufruf aus dem Speicher verschwand - mit Mausunterstützung und Drag and Drop.

Und irgendwann begann MS Windows, sich durchzusetzen. Mein erstes Windows-Programm, was ich mit Delphi zu einem kompletten Projekt gemacht habe - das heisst: mit Installer und Hilfedatei und derlei Drumherum - war jenes auf diesem Plastik-Dings im Bild unten, Diskette genannt. Tja, damals hatte man an an einem Rechner diverse Schlitze, um um dieses Etwas einschieben zu können. Hach damals … *seufz*

2014-02-19-diskette.jpg

Weiterführende Links:

TWebbrowser meldet sich mit Trident Version 4

Donnerstag, 14. November, 2013

… obwohl der IE 10 installiert ist.

Aber mal von vorn: ich schreibe an einer Windows-Anwendung, in die ich die Komponente des Internet Explorer - eben TWebbrowser - einbinde, um Inhalte anzuzeigen. So kann man HTML und CSS zum Layouten verwenden. Klicks kann man mit seinem Programm abfangen und auswerten und so z.B. Klicks auf Links auf Routinen seiner Anwendung umbiegen.

Bei den Experimenten verhielt sich der Browser merkwürdig … bis ich per Javascript navigator.appVersion habe ausgeben lassen, was mir eine (uralte) Version 4 zum Vorschein brachte.

Natürlich war ich nicht der Erste auf der Welt, der auf dieses Problem stösst und die Suche in der unendlichen Müllhalde lies mich die Lösung finden. Welche da wäre: man muss in der Registry den Namen seiner Exe-Datei mit einer IE Version verknüpfen. Das kann man entweder in den Installer packen - oder falls es als portable Version funktionieren muss - beim Start der Anwendung ausführen.

Der Codeschnipsel, den ich in meine Anwendung gesetzt habe, sieht in Delphi so aus:

var 
    Reg: TRegistry;
begin
     Reg := TRegistry.Create;
     try
        Reg.RootKey := HKEY_CURRENT_USER;
        if Reg.OpenKey('Software\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BROWSER_EMULATION', True) then
        begin
             Reg.WriteInteger(ExtractFileName(paramstr(0)), 9999);
             Reg.CloseKey;
        end;
     finally
        Reg.Free
     end;
    (...)

Weiterführende Links