Announcement

Collapse
No announcement yet.

prüfen ob Delphi-IDE aktiv ist (Kopierschutz)

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • prüfen ob Delphi-IDE aktiv ist (Kopierschutz)

    Hallo,

    ich habe ein paar Komponenten entwickelt, welche ich gerne kommerziell vertreiben würde.
    Dazu möchte ich abfragen, ob Delphi aktiv ist. Falls nicht, soll das Programm welches meine VCL verwendet, beendet werden.
    Ich würde mich über Vorschläge freuen.

    Danke

  • #2
    Ein 2 Jahre alter Tipp aus dem PC MAGAZIN mag vielleicht hilfreich sein?

    <PRE>
    const
    Mitteilung : array[boolean]of string =
    ('Delphi läuft nicht','Delphi läuft');
    var
    Delphi : HWND;
    begin
    Delphi := findwindow('TAppBuilder',nil);
    ShowMessage(Mitteilung[Delphi<>0]);
    end;
    </PRE>

    Eins müsstest du noch selbst machen:
    Das Fenster herausfinden, in dem deine Komponente läuft, und dann an dieses Fenster die Message <b>WM_CLOSE</b> schicken. Allerdings würde ich auf jeden Fall dem Anwender eine Meldung zukommen lassen, damit er auch weiß, was los ist. So sang- und klanglos das Programm schließen ist nicht nett.

    Aber ich kann mich erinnern, dass es mal einen noch besseren Vorschlag von Hagen Reddmann zu diesem Thema gab. Ich weiß bloß nicht mehr in welcher Sparte. Am besten du suchst einfach mal danach.

    Gruß,
    Mathias

    Comment


    • #3
      http://www.entwickler-forum.de\webx?128@@.ee6d06

      Comment


      • #4
        Es gibt einen noch besseren Weg. Jede Komponenten die mit Delphi benutzt werden soll muß ja auch bei Delphi's IDE registriert werden. Du vertreibst Deine Komponente ja als binary, sprich *.BPL. Normalerweise gibt es ein Package mit der Komponente und ein anderes Package das NUR diese Komponente bei der IDE registriert oder z.B. notwendige Eigenschaftseditoren besitzt. Dieses Package definiert die procedure <b>Register</b>. Also wir machen nun folgendes. In dieser procedure ermitteln wir bestimmte Systemanhängige werte wie Festplattennummer usw. und erzeugen daraus eine ID. Diese ID wird im System z.B. in der Registry unter HKEY_CLASSES_ROOT\CLSID eingetragen. Fertig mit Part 1. In der Komponente wiederum erzeugst Du diese ID nochmal und sucht den Eintrag in der Registry. Falls vorhanden ist auch das DesignTime Package korrekt in der IDE installiert worden. Falls NICHT kann man mit 99% sicherheit sagen das NUR das Komponenten Package, eg. DCU in irgendeine Anwendung gelinkt wurde und nicht mehr auf dem originalen System Delphi + IDE + DesignTime Package installiert ist.<br>

        gruß hage

        Comment

        Working...
        X