VORGEHENSWEISE: Starten von Internet Explorer aus einer Java-Anwendung

Dieser Artikel ist eine Übersetzung des folgenden englischsprachigen Artikels der Microsoft Knowledge Base:
283225 HOWTO: Start Internet Explorer from a Java Application

Zusammenfassung

Im Internet wurde bereits umfassend darauf hingewiesen, dass Sie Ihren Standardbrowser mithilfe des folgenden Codes aus einer Java-Anwendung heraus starten sollten:
   rundll32 url.dll,FileProtocolHandler http://www.microsoft.com/ms.htm
Wenn Internet Explorer jedoch als Ihr Standardbrowser identifiziert wird, erhalten Sie die folgende Fehlermeldung:
"http://www.microsoft.com/ms.htm" konnte nicht geöffnet werden.
Dieser Code ist funktionsfähig, sofern Sie die Seite nicht wie folgt angeben:
   rundll32 url.dll,FileProtocolHandler http://www.microsoft.com/
Hinweis: Diese Lösung ist veraltet. Mittlerweile wird empfohlen, dass Sie die ShellExecute-Funktion verwenden.

Weitere Informationen

Die folgenden Codebeispiele veranschaulichen zwei mögliche Lösungen für das oben genannte Verfahren.

Lösung mithilfe der ShellExecute-Funktion:

Im folgenden Code wird die ShellExecute-Funktion verwendet:
   import com.ms.com.*;
import com.ms.win32.*;
import java.io.*;
import com.ms.lang.*;
import com.ms.wfc.html.om.shdocvw.*;

/**
* @com.register ( clsid=A1902ECA-A3B2-4DD5-840B-648CE61D48E6,
typelib=631CF9B2-7570-4119-8703-634B4F847897 )
*/
public class BrowserLaunch
{
public static void main (String[] args)
{
try
{
BrowserLaunch app = new BrowserLaunch();
String defBrowser = app.checkDefaultBrowser();
app.launchDefault("http://www.microsoft.com/ms.htm");
}
catch(Exception e)
{
System.out.println(e.getMessage());
}
}

public String checkDefaultBrowser() throws Exception
{
//HKEY_CLASSES_ROOT\http\shell\open\ddeexec\Application
RegKey rkey = new RegKey(RegKey.CLASSES_ROOT,
http\\shell\\open\\ddeexec\\Application", RegKey.KEYOPEN_READ);

return rkey.getStringValue("");
}

public void launchDefault(String file) throws Exception<Code><![CDATA[
{
int retval;
retval = Shell32.ShellExecute(0,"open",file,null,null,wins.SW_SHOWNORMAL);

if (retval &lt;= 32)<Code><![CDATA[
alert("Problem with URL.");
}

private void alert(String msg)
{
User32.MessageBox(0,msg,"Alert!",winm.MB_OK);
}
}

Lösung mithilfe der Laufzeitklasse:

Im folgenden Code wird die Laufzeitklasse verwendet:
   import java.io.IOException;
import com.ms.com.*;
import com.ms.lang.*;

public class Class1
{
/**
* Dies ist der Haupteinsprungpunkt für die Anwendung.
*
* Ein @param args-Array aus Parametern wird an die Anwendung
* über die Befehlszeile übergeben.
*/
public static void main (String[] args) throws Exception
{
Class1 app = new Class1();
String defBrowser = app.checkDefaultBrowser();
if (defBrowser.equalsIgnoreCase("IExplore"))
try
{
Runtime rt = Runtime.getRuntime();
String path = app.getBrowserExecutablePath();
//Process a = rt.exec("c:\\Program Files\\Internet
Explorer\\iexplore http://www.microsoft.com/ms.htm");
Process a = rt.exec(path + "http://www.microsoft.com/ms.htm");
}
catch(Exception e)
{
System.out.println(e);
}
}

public String checkDefaultBrowser() throws Exception
{
//HKEY_CLASSES_ROOT\http\shell\open\ddeexec\Application
RegKey rkey = new RegKey(RegKey.CLASSES_ROOT,
"http\\shell\\open\\ddeexec\\Application", RegKey.KEYOPEN_READ);

return rkey.getStringValue("");
}

public String getBrowserExecutablePath() throws Exception
{
//HKEY_CLASSES_ROOT\http\shell\open\command\default
RegKey rkey = new RegKey(RegKey.CLASSES_ROOT,
"http\\shell\\open\\command",RegKey.KEYOPEN_READ);

return rkey.getStringValue("");
}
}

Informationsquellen

Die aktuellsten Microsoft Knowledge Base-Artikel und weitere Supportinformationen zu Visual J++ und dem SDK für Java finden Sie in den folgenden Websites für Technischen Support von Microsoft:
Bitte beachten Sie: Bei diesem Artikel handelt es sich um eine Übersetzung aus dem Englischen. Es ist möglich, dass nachträgliche Änderungen bzw. Ergänzungen im englischen Originalartikel in dieser Übersetzung nicht berücksichtigt sind. Die in diesem Artikel enthaltenen Informationen basieren auf der/den englischsprachigen Produktversion(en). Die Richtigkeit dieser Informationen in Zusammenhang mit anderssprachigen Produktversionen wurde im Rahmen dieser Übersetzung nicht getestet. Microsoft stellt diese Informationen ohne Gewähr für Richtigkeit bzw. Funktionalität zur Verfügung und übernimmt auch keine Gewährleistung bezüglich der Vollständigkeit oder Richtigkeit der Übersetzung.
Eigenschaften

Artikelnummer: 283225 – Letzte Überarbeitung: 18.02.2004 – Revision: 1

Feedback