Anzeige
Archiv - Navigation
340to344
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
340to344
340to344
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Eintrag in Registry für Demo - Version

Eintrag in Registry für Demo - Version
22.11.2003 19:40:43
JaHosna
Hallo Excelgemeinde,

ich hab ein kleines Problem. Ich möchte gerne beim Erstmaligen installieren der Software (eigenes Excel-Sheet) einen Eintrag in die Registry machen und diesen Eintrag bei jedem Start abfragen. Wenn ein Datumswert oder ein Registrierschlüssel in einer "getarnten" Datei XXX.dll nicht übereinstimmt, soll die Ausführung nicht mehr möglich sein.

Mein Code bis jetzt - er funktioniert aber net ganz, wer kann mir da unter die Arme greifen

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
Dim xlAnw As Word.Application   'das geht leider net ???
Set xlAnw = CreateObject("Word.Application")
'Neue Datei erzeugen
Open "freiname.dll" For Random As #1 Len = Len(DSatz1)
ChDir "C:\WINDOWS"
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
'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
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                                         ' 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 "Testversion! Zeit ist abgelaufen. Bestellung per E-Mail:" & _
Chr(13) & Chr(10) & " XXX@XXX.de", , "XXX"
Application.ThisWorkbook.Close SaveChanges:=False
Else
CAll XXXX
End If
Set xlAnw = Nothing       ' Erstellte Word Objekt vom Speichern entfernen.
End Sub

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Eintrag in Registry für Demo - Version
22.11.2003 21:35:48
Thomas Risi
Hallo

>Dim xlAnw As Word.Application 'das geht leider net ???

Setze einen entsprechenden Verweis auf die Typbibliothek, oder versuch es mal so ...

Dim xlAnw As Object

Was machst Du denn, wenn jemand die Ausführung Deines Codes unterbindet, oder ihn einfach löscht?

Gruß
Thomas

Risi Thomas Softwareentwicklung

AW: Eintrag in Registry für Demo - Version
22.11.2003 22:03:46
JaHosna
Danke für deine schnelle Meldung - Wordfile öffnen ist jetzt klar!

zu b) Wenn jemand den Code löscht oder entfernt, dann hab ich eben Pech gehabt - Microshrott ist eben ein sehr durchichtiges Sieb :(

Aber immer noch besser als gar keinen Schutz - und außerdem muss man erst mal da drauf kommen - oder?

Danke für den Tip!

hab jetzt nur noch hiermit ein paar Probleme

xlAnw.System.PrivateProfileString("", "HKEY_CURRENT_USER\Software\Microsoft\MS Setup (ACME)\User Info", "LogFile") = Hex(Date)
End If
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 ' Datei schließen.
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige