Laden...

Prüfen, ob ActiveX-Klasse vorhanden/installiert ist

Erstellt von Blacal vor 13 Jahren Letzter Beitrag vor 12 Jahren 2.802 Views
B
Blacal Themenstarter:in
387 Beiträge seit 2005
vor 13 Jahren
Prüfen, ob ActiveX-Klasse vorhanden/installiert ist

Hallo Kollegen,

ich habe in Windows.Forms ein Steuerelement, welches den Adobe-Reader anzeigt. Implementiert habe ich das über die AxHost-Klasse:

/// <summary>
/// .NET Wrapper für Adobe Reader ActiveX-Steuerelement
/// </summary>
public class AdobeReaderControl : AxHost
{
    ...

    /// <summary>
    /// Hostet das Adobe Reader ActiveX-Steuerelement in Windows.Forms.
    /// </summary>
    public AdobeReaderControl()
        : base("{CA8A9780-280D-11CF-A24D-444553540000}")

Funktioniert soweit auch super. Die Frage ist jetzt, wie kann ich vorher abprüfen, ob die Klasse auch wirklich existiert bzw. am Rechner installiert ist?

Gruß
Roland

3.170 Beiträge seit 2006
vor 13 Jahren

Hallo,

Du könntest prüfen ob in der Registry der Pfad existiert:

HKEY_CLASSES_ROOT\CLSID\{CA8A9780-280D-11CF-A24D-444553540000}

Gruß, MarsStein

Non quia difficilia sunt, non audemus, sed quia non audemus, difficilia sunt! - Seneca

B
Blacal Themenstarter:in
387 Beiträge seit 2005
vor 13 Jahren

Hallo MarsStein,

gefällt mir, werden diese Registry-Keys grundsätzlich für alle COM-Objekte eingetragen und klappt das auf jeder Windows-Version?

.. in der zwischenzeit hab ichs so gelöst (die Prüfung dauert zwar so länger, aber man kann Sichergehen, dass das Control auch verwendet werden kann):

/// <summary>
/// Is Adobe Reader correctly installed?
/// </summary>
public static bool IsActiveXInstalled()
{
    try
    {
        //Try to create the ActiveX-Control
        AdobeReaderControl readerControl = new AdobeReaderControl();
        readerControl.Size = new Size(500, 500);
        readerControl.CreateControl();
        readerControl.Dispose();

        return true;
    }
    catch (Exception)
    {
        return false;
    }
}

Gruß
Roland

109 Beiträge seit 2010
vor 12 Jahren

Hy,

Wer versuchen möchte das unter einem 64 Bit System wie Windows 7 zu überprüfen, muss in

HKEY_CLASSES_ROOT\Wow6432Node\CLSID{CA8A9780-280D-11CF-A24D-444553540000}

suchen.

mfg Seraph

Ich beschütze das was am Wichtigsten ist!