[Text] Komponenten registrieren mit Sub Main Verfasst am: 23.02.2008, 07:45
Ich erkläre euch in diesem Tutorial, wie ihr eure Komponenten registrieren (entpacken) könnt,
bevor euer Startformular angezeigt wird.
Also, los geht's!
1. Der Resourcen Editor
Zuerst braucht ihr den Resourcen Editor. Den findet ihr unter Add-Ins.
Jetzt das Add-In laden und auch immer beim Starten von VB laden lassen.
Nun könnt ihr den Resourcen Editor mit diesem Icon verwenden.
Jetzt ladet ihr eure "CUSTOM" Resource mit diesem Tool.
Dieser Datei wird die ID 101 zugewiesen. Jetzt noch die Resource Datei abspeichern und dann kommen wir zum Code.
2. Sub Main
Die Sub Main ist ein Codeblock, den man als Startobjekt einstellen kann.
Ihr macht euch nun ein neues Modul, in dem ihr alles Weitere platziert.
Die Sub beginnen wir natürlich mit dieser Zeile.
Code:
Sub Main()
Jetzt deklarieren/definieren wir den Pfad, in dem die OCX File später liegen soll, nämlich in system32
Code:
Dim MyPath As String
MyPath = Environ$("windir") & "\system32\" & "Name der OCX.ocx"
Der Name der Datei muss natürlich angepasst werden.
Jetzt laden wir den Inhalt der Resource in ein Byte Array. Hier braucht ihr auch die ID, welche der Datei zugewiesen wurde.
Code:
Dim MyData() As Byte
MyData = LoadResData(101, "CUSTOM")
Wir wollen ja, das die Resource nur entpackt wird, wenn sie noch nicht existiert, also fragen wir das vorher ab. Auf das benötigte Modul komme ich später noch einmal zurück.
Code:
If Not FileExists(MyPath) Then
Jetzt suchen wir uns einen freien Datenkanal, damit Bugs vorgebeugt werden.
Code:
Dim FF As Integer
FF = FreeFile
Nun öffnen wir den oben definierten Dateipfad und schreiben die Datei aus der Resource hinen.
Code:
Open MyPath For Binary As #FF
Put #FF, , MyData
Close #FF
Jetzt beenden wir die If Abfrage, denn die Form soll ja trotzdem geladen werden.
Code:
End If
Nun lasst ihr nur noch euer Startformular anzeigen (der Name muss natürlich angepsst werden) ...
Code:
Form1.Show
... und beendet die Sub (-Main).
Code:
End Sub
Jetzt macht ihr euch ein neues Modul, in dem ihr die FileExists Funktion zum Überprüfen der Existenz der Datei platziert.
Code:
Public Function FileExists(ByVal FileName As String) As Boolean
On Local Error Resume Next
FileExists = (Dir$(FileName) <> "")
End Function
Zum Schluss müsst ihr natürlich noch die Sub Main als Startobjekt festlegen.
Den kompletten Code für ein Modul hab ich euch auch noch mal geuppt. http://rafb.net/p/Dj6XkH31.nln.html
Das wars auch schon. Ich hoffe ihr habt alles verstanden.
Gruß,
Orbz _________________
H4CK4 K1NG0_ Poster
Anmeldedatum: 05.02.2008 Beiträge: 146 Wohnort: Nähe von 127.0.0.1
Verfasst am: 23.02.2008, 11:46
Jooooooooo Danke
M weg'm rs acci
H4CK4 K1NG0_ Poster
Anmeldedatum: 05.02.2008 Beiträge: 146 Wohnort: Nähe von 127.0.0.1
Verfasst am: 03.03.2008, 21:26
*Push*
Also ich code zurzeit ein anderes Tool aber jetz wenn ich es wieder so mache kommt fehler
laufzeitfehler 364 Objekt wurde entladen
Kann mir jemand weiter helfen? _________________
marcel1994_ Coder
Anmeldedatum: 08.02.2008 Beiträge: 202
Verfasst am: 04.03.2008, 18:05
ja wenn du andrfalschen stelle die form entlädst!
H4CK4 K1NG0_ Poster
Anmeldedatum: 05.02.2008 Beiträge: 146 Wohnort: Nähe von 127.0.0.1
Verfasst am: 04.03.2008, 19:14
Es ist eigentlich alles gleich nur das ich dies gemacht habe:
form1.show
geht net ...
Kann mir jemadn helfen? _________________
DFJ_ Poster
Anmeldedatum: 15.10.2007 Beiträge: 156
Verfasst am: 30.03.2008, 13:00
wird von av als virus erkannt
bitte um neue cod oder andere variabeln XD _________________ Spam bot
exe23_ Tutorial Leser
Anmeldedatum: 05.03.2008 Beiträge: 22
Verfasst am: 30.03.2008, 13:17
hm.. wie kann den sowas als virus erkannt werden ich dachte es kommt drauf an was man für ressourcen reinpackt ?? oda lieg ich da falsch?
ZiG_ Überflieger
Anmeldedatum: 07.03.2007 Beiträge: 1248
Verfasst am: 30.03.2008, 17:07
Ne.
AV's reagieren natürlich auch sensiblen auf Schreibversuche in die Windows Ordner. Z.B. system, system32 ect.
Wird sich also nichts ändern wenn man den source verändert.
Durchs ändern von Variablennamen schonmal garnicht. _________________ Wer nicht auf seine Weise denkt, denkt überhaupt nicht. (Oscar Wilde)
lool_ Tutorial Leser
Anmeldedatum: 27.07.2007 Beiträge: 67
Verfasst am: 26.04.2008, 12:45
Hi
Wie mache ich das, wenn ich mehrere Komponente in den system32 order kopieren will ? Für jedes Komponent wie dus beschrieben hast ?