vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Blitzschnelles Erstellen von grafischen Diagrammen!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

Fortgeschrittene Programmierung
Textdatei einlese und Code ersetzen / passives Patchen 
Autor: nAbDi
Datum: 24.11.09 14:50

So ich möchte hiermit mal antworten auf meine eigenen Fragen geben.

Da ich schon einmal fragte, ob und wie man ein Access Programm patchen kann, und diesbezüglich viel ungewissheit bestand, möchte ich jetzt meine erarbeitete Lösung vorstellen.

Als Beispiel warum ich Patchen wollte, ein Programm das wie eine Trial-Version nach 30 Tagen abläuft, und über einen Patch, in diesem Fall eine Textdatei die aus dem Programm heraus eingelesen, verlängert wird.
(Teilkonstrukte sind übrigens aus Beiträgen dieser, und anderer Foren, also nicht mein Werk. Ich habe lediglich etwas modifiziert und ergänzt)

Der Code:


Private Sub activate_bt_Click()
 
'Einlesen einer beliebigen Datei, Inhalt kommt in die Variable "sInhalt"(Diese 
' muss je nach 'Verwendung, in meinem Fall Global deklariert sein)
 
    Dim dlgOpen As FileDialog
    Dim patchDatei As String
    Set dlgOpen = Application.FileDialog(msoFileDialogOpen)
    '(Verweis setzten auf Microsoft Office 11.0 Object Libary im Visual Basic 
    ' Editor -> Extras  -->     Verweise)
    With dlgOpen
        .AllowMultiSelect = False
        .Show
        On Error Resume Next
        patchDatei = .SelectedItems(1)
        If Err <> 0 Then
            MsgBox "Es wurde keine Datei ausgewählt", _
                   vbInformation + vbOKOnly, "Titel"
        Else
            Dim F As Integer
            F = FreeFile: Open patchDatei For Binary As #F
            sInhalt = Space$(LOF(F))
            Get #F, , sInhalt
            Close #F
            On Error GoTo 0
            patch
            MsgBox "Die Nutzungsphase wurde erfolgreich verlängert.", _
              vbInformation, "Hinsweis"
            DoCmd.Close
            DoCmd.OpenForm "Hauptmenu"
        End If
    End With
End Sub
 
 
'Die Patch-Funktion sucht nach dem zu ändernden Code, über ein String-Kriterium 
' in einem angegebendem
'Modul. Bei Findung wird es dann durch den Code aus der Text-Datei ersetzt
 
Sub patch()
    With Application.VBE.ActiveVBProject.VBComponents.Item("Start").CodeModule
    Dim z As Long, s As Long
        If .Find("expire_date =", 1, 1, z, s, False, False) Then
            .ReplaceLine z, sInhalt
        End If
    End With
End Sub
Vielleicht interessiert es ja jemanden, auf diese Art und Weise kann man Code von außen in ein Access Programm einbringen, zumindest in eine MDB, ob es bei einer MDE allerdings funktioniert, weis ich nicht.

Mfg

Beitrag wurde zuletzt am 24.11.09 um 14:53:57 editiert.
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Textdatei einlese und Code ersetzen / passives Patchen1.011nAbDi24.11.09 14:50

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2024 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel