Deklarationen:
Option Explicit
Type Datensatz ' Datentyp definieren.
Kennung As Integer
Name As String * 8
End Type
Sub Auto_open() ' Bei Öffnen von Datei sofort ausführen
On Error Resume Next ' Bei Fehler weitermachen.
Dim Datei1, aName, a ' Variable von Typ Variant definieren.
Dim DSatz1 As Datensatz, DSatzNummer, Position
'Bitte zuerst Microsoft Word Objekt Library unter Extras - Verweise in VBA Editor aktivieren !! Nur wenn Sie mit der Registrierungsdatenbank
experimentieren wollen. Andernfalls entfernen Sie dazu gehörige Befehle.
Dim xlAnw As Word.Application
Set xlAnw = CreateObject("Word.Application")
'Neue Datei erzeugen
Open "freiname.dll" For Random As #1 Len = Len(DSatz1)
ChDir "C:\WINDOWS" ' Verzeichnis wechseln
Datei1 = Dir("C:\WINDOWS\ freiname.dll ") ' Variable Datei1 besetzen
' Bedienung prüfen: Wenn kein Eintrag in untergenanten String (False) oder freiname.dll nicht existiert dann:
If Datei1 = "" Or (xlAnw.System.PrivateProfileString("", "HKEY_CURRENT_USER\Software\Microsoft\MS Setup (ACME)\User Info", "LogFile") = False) Then
' Eine Datei im Hintergrund auf der Festplatte erzeugen und dort ein Wert speichern.
DSatzNummer = 1
DSatz1.Kennung = DSatzNummer ' Kennung definieren.
DSatz1.Name = Hex(Date) ' Zeichenfolge erstellen (z.b. Datum in Hex Format).
Put #1, DSatzNummer, DSatz1 ' Zeichenfolge dort schreiben.
Close #1 ' Datei schließen
SetAttr Datei1, vbHidden + vbSystem ' Wenn Sie möchten:Attribute "Versteckt" und "System" setzen.
'Zusätzlich noch Eintrag in Registry vornehmen.
xlAnw.System.PrivateProfileString("", "HKEY_CURRENT_USER\Software\Microsoft\MS Setup (ACME)\User Info", "LogFile") = Hex(Date)
End If
'Sollte vorherige Bedienung wahr sein d.h Eintrag in Reg oder freiname.dll existiert dann Lesen von dem Inhalt vornehmen.
Open " freiname.dll " For Random As #1
Len = Len(DSatz1)
Position = 1 Get #1, Position, DSatz1 '1. Datensatz lesen.
a = DSatz1.Name ' in Variable speichern.
Close #1 ' Datei schließen.
aName = System.PrivateProfileString("", _ "HKEY_CURRENT_USER\Software\Microsoft\" _
& "MS Setup (ACME)\User Info", "LogFile")
' Bedienung zum weitermachen.
If a < Hex(Date - 30) Or aName < Hex(Date - 30) Then
MsgBox "30 Tage Testversion! Zeit ist abgelaufen. Bestellung per E-Mail:" & _
Chr(13) & Chr(10) & " musterman@aol.com", , "Ha Ha Ha"
Application.ThisWorkbook.Close SaveChanges:=False ' Excel Vorlage schließen.
Else
' in weitere Prozedur verzweigen.
End If
Set xlAnw = Nothing ' Erstellte Word Objekt vom Speichern entfernen.
End Sub
|