===============================================================================
=================   Matrix software protection system   =======================
=================                for                    =======================
=================  Microsoft EXCEL 32 bit Applications  =======================
===============================================================================
=================    Copyright (c) TDi GmbH - Germany   =======================
===============================================================================


Diese Datei enthält Anweisungen für das Einbinden des Matrix Kopierschutzsystems
in EXCEL 32 Bit. 

----------------- Grundsätzliche Vorgenhesweise:

Excel enthält Programmteile, die für Endbenutzer unzugänglich sind. In diesen 
Programmteilen sollten Sie wichtige Funktionen zur Steuerung und Verwaltung 
Ihrer Tabellen hinterlegen. Innerhalb dieser Programmteile werden später die 
Funktionen des Kopierschutzes eingefügt. Diese Funktionen korrespondieren dann 
mit dem aufgesteckten Matrix-Dongle. Ist der Dongle nicht aufgesteckt, wird die
EXCEL-Applikation  z. B. sofort beendet. Oder es passiert etwas anderes, was 
Sie zuvor festgelegt haben.

----------------- Beispiel:

   1. Erstellen Sie eine Kopie Ihrer Anwendung

   2. Öffnen sie Ihre EXCEL-Anwendung

   3. Öffnen Sie den Visual Basic Editor. 
      EXTRAS -- MACRO -- Visual Basic-Editor  (Hotkey Alt-F11)  

   4. Benutzen Sie unsere Datei Matrix.bas aus unserem Softwareverzeichnis 
      \Samples\VB  um zu verstehen, wie es in VB funktioniert.

   5. Wenn sie ein Demo-Modul benutzen, müssen Sie den UserCode nicht anpassen.
      Andernfalls ist es erforderlich, Ihren spezifischen UserCode anstelle des
      Demo-UserCodes einzutragen.

   6. Erstellen Sie jetzt im Editor Makrofunktionen, die für Ihr Tabellenwerk 
      wichtig sind. 
      Wenn Sie dort bereits Code verwenden, können Sie auch diesen anpassen. 
      Wichtig ist am Ende, dass diese Funktionen nur dann richtig funktionieren,
      wenn der Matrix-Dongle aufgesteckt ist. Irgendwo innerhalb der Funktion 
      muss also ein Aufruf unserer Funktion 'Check_Matrix' stattfinden.

   7. Sie können die Domo-Datei die in \MATRIX\SAMPLES\VB benutzen. Entfernen 
      Sie die nicht erforderlichen Funktionen. Dann wird alles wesentlich 
      übersichtlicher.

   8. Ändern Sie die Meldung  "Matrix device not found !"  in der Funktion 
      'Check_Matrix' so ab, wie es für Sie passend ist. 

   9. Um EXCEL dann sofort zu beenden, kann das folgende Kommando in den Code 
      eingefügt werden: 
	  Application.DisplayAlerts = FALSE
          Application.Quit
      Das ist eine bewährte Methode, die häufig benutzt wird.

  10. Jedes mal, wenn Sie eine wichtige Tabelle laden, sollte der Matrix-Dongle
      abgefragt werden. Ein Beispiel für solch eine Subroutine:

          Sub Auto_Open
              Dim ret As Integer

              '--- Do this for all, but one named sheet in your   
              '--- workbook must be visible. It is important to keep 
              '--- in mind that at least one worksheet must be visible 
              '--- at all times or else Excel will display an error 
              '--- while attempting to execute a statement that hides 
              '--- the last remaining visible spreadsheet.
              Worksheets("SheetName2").Visible = xlSheetVisible
              Worksheets("SheetName1").Visible = xlSheetVeryHidden

              '--- Decide on desired action if missing some part of security
              On Error Goto End_Exit_Err   'Exit if MATRIX32.DLL not found

              '*** IMPORTANT STEP ***
              '--- Add tasks here to force device checking. You may wish to
              '--- make value assignments to cells referenced in formulas as
              '--- was done in the demonstration program above.

              ret = Check_Matrix          'Check if Matrix dongle is present
              If ret = 1 Then             'If we got here then it's ok to 
                 GoTo Ok_Run              'continue running the spreadsheet
              Else
                 GoTo End_Exit
              End If

          End_Exit_Err:
              MsgBox "MATRIX32.DLL not found !"
          End_Exit:
              '--- Optional - take whatever action you wish ---
              Application.DisplayAlerts = FALSE
              Application.Quit            'This forces Excel to quit

          Ok_Run:                         'Return from Auto_Open to 
                                          'fully operational spreadsheet

              '--- Optional - use this is the xlVeryHidden code was 
              '--- used above. Do this for every named sheet in your 
              '--- workbook. This forces the sheets to be visible.
              Worksheets("SheetName1").Visible = True 
              Worksheets("SheetName2").Visible = xlSheetVeryHidden

          End Sub


  11. Schließen Sie den VB-Editor und kehren zu EXCEL zurück (Hotkey Alt-Q)
 
  12. Sollten Sie neue Funktionen erstellt haben, muss jetzt die Verbindung 
      zu Ihren Tabellen überprüft werden. Sollten sie lediglich die Matrix-
      Funktionen in vorhandenen VB-Code eingefügt haben, muss wahrscheinlich 
      nichts in den Tabellen angepasst werden. 

  13. Sichern und überprüfen sie Ihre Anwendung, ob alles so funktioniert, 
      wie es soll. Mit und ohne Kopierschutz.  

  14. Sie können die Sicherheit noch erhöhen, wenn Sie aus dem Code ein AddIn 
      erzeugen. 
	
  15. Um die einzelnen Zellen der Tabelle zu schützen, können die Attribute 
      'gesperrt' oder 'ausgeblendet' zugewiesen werden. Der Endanwender sollte 
      möglichst wenig Rechte haben. 
      Bei 'gesperrt' lassen sich noch die Formeln sehen, bei 'ausgeblendet' 
      kann der Endanwender die Zellen nicht mehr sehen. 
      Vorgehen:  FORMAT -- ZELLEN -- SCHUTZ  
      oder auch  EXTRAS -- SCHUTZ -- BLATT SCHÜTZEN (Kennwort)
      Geben Sie ein Passwort ein.

  16. Verstecken Sie den VB Makrocode, damit er schwer zu finden ist.
      EXTRAS -- MACRO -- VB-Editor (HotKey=AltF11)
      Setzen Sie die Eigenschaften von VB Macro code auf 'ausgeblendet'. 
      Vergeben sie ein Kennwort, das aber nicht abhanden kommen darf!

      Sichern!

  17. Eine weitere Methode, die EXCEL anbietet, ist beim 
      SPEICHERN UNTER -- EXTRAS -- ALLGEM. OPTIONEN 
      Kennworte oder read only-Attribute einzugeben. 
      Bitte überprüfen Sie, inwieweit dies sinnvoll für Ihre Applikation ist.

  18. Beachten sie bitte, dass in EXCEL immer ein Blatt sichtbar sein muss. 
      Gerade wenn Sie das Attribut 'xlVeryHidden' verwenden. Andernfalls kann 
      es zu Funktionsstörungen kommen.

-------------------------------- * ENDE * -------------------------------------

   