<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>AB-WebLog.com&#187; Inno Setup</title>
	<atom:link href="http://www.ab-weblog.com/de/schlagwort/inno-setup/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.ab-weblog.com/de</link>
	<description>Andreas Breitschopp</description>
	<lastBuildDate>Mon, 23 Nov 2015 08:51:46 +0000</lastBuildDate>
	<language>de</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Entwicklung einer Browser-Toolbar: Installationssystem (4/5)</title>
		<link>http://www.ab-weblog.com/de/entwicklung-einer-browser-toolbar-installationssystem/</link>
		<comments>http://www.ab-weblog.com/de/entwicklung-einer-browser-toolbar-installationssystem/#comments</comments>
		<pubDate>Thu, 01 Apr 2010 14:00:38 +0000</pubDate>
		<dc:creator>Andreas Breitschopp</dc:creator>
				<category><![CDATA[Softwareentwicklung]]></category>
		<category><![CDATA[ASPects]]></category>
		<category><![CDATA[Browser]]></category>
		<category><![CDATA[Inno Setup]]></category>
		<category><![CDATA[Installation]]></category>
		<category><![CDATA[Toolbar]]></category>
		<category><![CDATA[Veröffentlichung]]></category>

		<guid isPermaLink="false">http://www.ab-weblog.com/de/?p=297</guid>
		<description><![CDATA[Diese Artikelserie ist die deutsche Übersetzung meines Artikels &#8220;Developing a Browser Toolbar&#8221;, der in den ASPects (Englisch) im Januar 2010 (Jahrgang 23, Ausgabe 1), ein Magazin der Association of Shareware Professionals (ASP; Englisch), veröffentlicht wurde. Jetzt haben wir eine Toolbar &#8230; <a href="http://www.ab-weblog.com/de/entwicklung-einer-browser-toolbar-installationssystem/">Weiterlesen <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><em><em>Diese Artikelserie ist die deutsche Übersetzung meines Artikels &#8220;Developing a Browser Toolbar&#8221;, der in den <a title="Webseite von ASPects" href="http://www.asp-shareware.org/about/aspects.asp" target="_blank">ASPects</a> (Englisch) im Januar 2010 (Jahrgang 23, Ausgabe 1), ein Magazin der <a title="Webseite der Association of Shareware Professionals" href="http://www.asp-shareware.org/" target="_blank">Association of Shareware Professionals</a> (ASP; Englisch), veröffentlicht wurde.</em></em></p>
<p>Jetzt haben wir eine Toolbar für Internet Explorer und Firefox, aber wie bekommen wir diese installiert? Es gibt nur ein Installationstool, das ich auch für sämtliche meiner anderen Produkte verwende und dass so ziemlich alles kann: <a title="Webseite von Inno Setup" href="http://www.jrsoftware.org/isinfo.php" target="_blank">Inno Setup</a> (Englisch). Im Folgenden lesen Sie, was Sie für die Installation der beiden Toolbar-Versionen benötigen.</p>
<h2>Toolbar-Installation im Mozilla Firefox</h2>
<p>Wieder ist es sehr viel einfacher eine neue Toolbar im Firefox-Browser zu installieren. Sie müssen Ihre XPI-Datei lediglich in das Firefox-Erweiterungsverzeichnis kopieren. Die Toolbar wird dann beim nächsten Browser-Start installiert. Somit benötigen wir lediglich eine Pascal-Funktion in unserem Inno-Setup-Quelltext, die uns das Erweiterungsverzeichnis des Firefox‘ zurückgibt:</p>
<pre class="brush: pascal; gutter: true">function GetFirefoxExtensionsPath(Param: String): String;
var
    FirefoxVersion, FirefoxInstallPath: string;
begin
    if (RegQueryStringValue(HKLM, 'SOFTWARE\Mozilla\Mozilla Firefox',
            'CurrentVersion', FirefoxVersion)) then begin
        if (RegQueryStringValue(HKLM, 'SOFTWARE\Mozilla\Mozilla Firefox\' + FirefoxVersion +
                '\Main', 'Install Directory', FirefoxInstallPath)) then begin
            if (not DirExists(FirefoxInstallPath +
                   '\extensions\toolbarebay@ab-tools.com')) then begin
                Result := FirefoxInstallPath + '\extensions';
            end;
        end;
    end;
end;</pre>
<h2>Toolbar-Installation im Microsoft Internet Explorer</h2>
<p>Um die Toolbar im Internet Explorer zu installieren, müssten wir zunächst die s<em>trongly-named Assembly</em> im <em>Global Assembly Cache</em> (GAC) mittels des <em>gacinstall</em>-Kennzeichens, verfügbar in der aktuellen Inno-Setup-Version, im <em>file</em>-Bereich registrieren. Zusätzlich müssen wir einige Registry-Änderungen durchführen. Sie können den folgenden Quelltext in den <em>registry</em>-Bereich Ihres Inno-Setup-Skriptes kopieren und sämtliche Variablen durch Ihre eigenen ersetzen (ich habe den Inno-Setup-Syntax ein wenig verkürzt, um es etwas kompakter zu bekommen):</p>
<pre class="brush: text; gutter: true">HKCR: CLSID\{{%GUID%}; Flags: uninsdeletekey
HKCR: CLSID\{{%GUID%}; ValueType: string; ValueName: ; ValueData: %LONG_NAME%
HKCR: CLSID\{{%GUID%}; ValueType: string; ValueName: MenuText; ValueData: %LONG_NAME%
HKCR: CLSID\{{%GUID%}; ValueType: string; ValueName: HelpText; ValueData: %DESCRIPTION%
HKCR: CLSID\{{%GUID%}\Implemented Categories\{{00021494-0000-0000-C000-000000000046}
HKCR: CLSID\{{%GUID%}\InprocServer32; ValueType: string; ValueName: ; ValueData: mscoree.dll
HKCR: CLSID\{{%GUID%}\InprocServer32; ValueType: string; ValueName: ThreadingModel; ValueData: Both
HKCR: CLSID\{{%GUID%}\InprocServer32; ValueType: string; ValueName: Class; ValueData: %CLASS%
HKCR: CLSID\{{%GUID%}\InprocServer32; ValueType: string; ValueName: Assembly; ValueData: %NAMESPACE%, Version=%VERSION%, Culture=neutral, PublicKeyToken=%PUBLIC_KEY%
HKCR: CLSID\{{%GUID%}\InprocServer32; ValueType: string; ValueName: RuntimeVersion; ValueData: v2.0.50727
HKLM: Software\Classes\CLSID\{{%GUID%}; Flags: uninsdeletekey
HKLM: Software\Classes\CLSID\{{%GUID%}; ValueType: string; ValueName: ; ValueData: %LONG_NAME%
HKLM: Software\Classes\CLSID\{{%GUID%}; ValueType: string; ValueName: MenuText; ValueData: %LONG_NAME%
HKLM: Software\Classes\CLSID\{{%GUID%}; ValueType: string; ValueName: HelpText; ValueData: %DESCRIPTION%
HKLM: Software\Classes\CLSID\{{%GUID%}\Implemented Categories\{{00021494-0000-0000-C000-000000000046}
HKLM: Software\Classes\CLSID\{{%GUID%}\InprocServer32; ValueType: string; ValueName: ; ValueData: mscoree.dll
HKLM: Software\Classes\CLSID\{{%GUID%}\InprocServer32; ValueType: string; ValueName: ThreadingModel; ValueData: Both
HKLM: Software\Classes\CLSID\{{%GUID%}\InprocServer32; ValueType: string; ValueName: Class; ValueData: %CLASS%
HKLM: Software\Classes\CLSID\{{%GUID%}\InprocServer32; ValueType: string; ValueName: Assembly; ValueData: %NAMESPACE%, Version=%VERSION%, Culture=neutral, PublicKeyToken=%PUBLIC_KEY%
HKLM: Software\Classes\CLSID\{{%GUID%}\InprocServer32; ValueType: string; ValueName: RuntimeVersion; ValueData: v2.0.50727
HKLM: SOFTWARE\Microsoft\Internet Explorer\Toolbar; ValueType: string; ValueName: {{%GUID%}; ValueData: %LONG_NAME%
HKLM: SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Browser Helper Objects\{{%GUID%}; Flags: uninsdeletekey
HKLM: SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Browser Helper Objects\{{%GUID%}; ValueType: dword; ValueName: NoExplorer; ValueData: 1</pre>
<p>Um keinen unnötigen Müll auf den Computer des Benutzers zu schreiben, sollten die Registry-Änderungen nur durchgeführt und die Dateien nur kopiert werden, wenn das .NET-Framework 2.0 (oder neuer) auf dem System installiert ist, da dieses – wie bereits weiter oben geschrieben – für die Internet-Explorer-Toolbar benötigt wird. Sie können die Verfügbarkeit des .NET-Framework 2.0 relativ einfach mit folgender Pascal-Funktion überprüfen:</p>
<pre class="brush: pascal; gutter: true">function CheckForDotNet(): Boolean;
begin
    Result := RegKeyExists(HKLM, 'SOFTWARE\Microsoft\NET Framework Setup\NDP\v2.0.50727');
end;</pre>
<p>Dies waren die Schritte, um ein Inno-Setup-Installationsprogramm für beide Toolbar-Versionen zu erstellen. Natürlich können Sie diese in einer einzigen Setup-Datei, welche die Internet-Explorer- sowie die Firefox-Version – je nachdem welcher Browser auf dem System vorhanden ist – installiert, zusammenfassen.</p>
<p>Der <a title="Entwicklung einer Browser-Toolbar: Zusammenfassung (5/5)" href="http://www.ab-weblog.com/de/entwicklung-einer-browser-toolbar-zusammenfassung/">letzte Artikel</a> wird eine kurze Zusammenfassung sein.</p>
<h2>Inhalt der Artikelserie &#8220;Entwicklung einer Browser-Toolbar&#8221;:</h2>
<ul>
<li><a title="Entwicklung einer Browser-Toolbar: Einführung (1/5)" href="http://www.ab-weblog.com/de/entwicklung-einer-browser-toolbar-einfuehrung/">Einführung</a></li>
<li><a title="Entwicklung einer Browser-Toolbar: Mozilla Firefox (2/5)" href="http://www.ab-weblog.com/de/entwicklung-einer-browser-toolbar-mozilla-firefox/">Mozilla Firefox</a></li>
<li><a title="Entwicklung einer Browser-Toolbar: Microsoft Internet Explorer (3/5)" href="http://www.ab-weblog.com/de/entwicklung-einer-browser-toolbar-microsoft-internet-explorer/">Microsoft Internet Explorer</a></li>
<li>Installationssystem</li>
<li><a title="Entwicklung einer Browser-Toolbar: Zusammenfassung (5/5)" href="http://www.ab-weblog.com/de/entwicklung-einer-browser-toolbar-zusammenfassung/">Zusammenfassung</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.ab-weblog.com/de/entwicklung-einer-browser-toolbar-installationssystem/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
<!-- WP Super Cache is installed but broken. The path to wp-cache-phase1.php in wp-content/advanced-cache.php must be fixed! -->