Tutorials Infos - Anleitungen - Hilfe - Dreamcodes
 

Eigenes Setup

Um was geht es hier? Ich möchte hier einmal erklären wie man ein kleines Setup
Programm erstellt.Wir Programme mit Visual Basic Schreibt weiß das man eine
Installation braucht die ganzen dll´s installiert.Microsoft hat zwar ein Programm beigefügt
Das solche Setups erstellen kann (Verpackungs- und Weitergabe Assistent ) aber das Setup das dieses Programm erstellt na ja das kann man sich sonst wo …………
Deshalb bauen wir uns ein Setup.Was Brauchen wir:

9 Formulare (oder mehr)
1 Zip archive
1 Stunde Zeite ( plus minus!)

Dann fangen wir an:

1.Allgemein Formulare
Die Formulare sollten alle gleich groß sein damit es beim „durchschalten“ gut aussieht. Sie sollten auch alle gleich groß sein und ihre Command Bottons ungefähr an der gleichen stelle
Haben .An Sonsten gilt: Der Kreativität sind keine Grenzen gesetzt! Gestaltet die Formulare
Wie ihr wollt
WICHTIG: NARTÜRLICH BRAUCHT JEDES FORMULAR EINE ZURÜCK UND WEITER SCHALTFLÄCHE (Gegebenen falls auch Abbrechen)

2. Die Einzelnen Formulare

2.1Start Formular
Es Sollte mit einem kurzen text versehen sie Ungefähr so:

Willkommen zum Setup von x
Dieses Setup installiert x auf ihrem Computer

Bitte Schließen sie alle Anwendungen und klicken sie auf Weiter

2.2Linzens Formular

Es Empfiehlt sie die Lizenzen aus einer Text datei zu laden.Das geht so

Open " Lizeset.txt" For Input As FreeFile
Label1 = TextRead(FreeFile)
Close FreeFile

Mit Open wird die datei Lizeset.txt geöffnet. Der Text der Datei wird in Label1 angezeigt
Ein Label ist ein Steuerelement (das mit dem A als zeichen)
Die Text datei muss sich im gleichen Ordner befinden wie das Setup1
WICHTIG EINE DATEI MUSS IMMER GESCHLOSSEN WERDEN WENN SIE GEÖFFNET WIRD
Und wer jetzt denkt das funzt schon der hat falsch gedacht! Es Fehlt noch was;
Diese Text in ein Modul packen:

Public Function TextRead(Filename) As String
Dim number As Long
Dim size As Long
number = FreeFile
Open "Lizeset.txt" For Input As number
size = LOF(number)
TextRead = Input(size, number)
Close number
End Function

Besonders die Zweite Zeile ist wichtig: size=LOF(number)
Hier wird nämlich gesagt das er die datei bis zum ende Lesen soll und nicht nur eine Zeile
Ohne diesen befehl müsste men schreiben
Dim a as String
Dim b as String
Line Input number,a
Line Input number,b
.....
Das mit jeder zeile des textes

2.3Serienummer eingabe Formular

Hier wird der User aufgefordert eine Seriennummer einzugeben.Das Könnte man so machen:
(mit einem Timer Steuerelement und einer Textbox)

Private Sub Timer1_Timer()
If Text1.Text = "Eureseriennummer" Then
Weiter.Enabled = True
Else
Weiter.Enabled = False

End If
End Sub

Wen der Text in der Textbox Eureseriennumer ist wird der Command Botton weiter aktiviert
Den Timer Interval sollte man auf 50.

2.4 Dateien werden Kopiert Formular

Das Formular um das es hier eigentlich geht. Hier wird unser oben angekündigtes Zip Archive gebraucht.Es wird dan in ein Verzeichnis entpackt.
Für das Formular Brauchen wir einen Progressbar mit namen picProgress, ein CommonDialog Steuerelement, Ein abbrechen botton ein Timer
Ich erkläre mal den Qelltext schritt für schritt;

2.4.1 Der Timer
Hier wird das Entpacken ausgelöst

’Benötigte Dimensionalisierungen

Dim nFiles As Long
Dim sPath As String

’zunächst wird das zu entpackde Archiv auswählen
On Local Error Resume Next
With CommonDialog1
.Filename = "Setup.zip"
‘Auch hir gilt :Die Datei muss sich im Gleichen ordner wie das Setup befinden

If Err = 0 Then
' Hier wird der Ziel-Ordner festlegen in die das Archive entpackt werden sol
sPath = "C:Test"
If sPath <> "" Then

'Wen das der Zu entpackende Ordner Exsistiert dann wird Archiv entpacken
picProgress.Visible = True
‘Der ProgressBar wird eingeschaltet
nFiles = ExtractFilesFromArchiv(.Filename, _
sPath)
‘Hier wird Auf die Funktion ExtractFilesFromArchive zugegriffen (Später mehr)



MsgBox "Setup erfolgreich", 64, "inatallation"
‘Meldung wen das Setup erfolgreich war

End If
End If
End With
Timer1.Enabled = False

2.4.2 ExtrctFilesFromArchive

Das wars aber noch nicht! Wir brachen ja noch die Funktion ExtractFilesFromArchive
Diese Funktion erkläre ich auch schritt weiße

Public Function ExtractFilesFromArchiv( _
ByVal sArchiv As String, _
ByVal sDestDir As String) As Long

‘Hier wider die Benötigten Dimensinalisierungen der einzelnen Variablen
Dim F As Integer
Dim n As Integer
Dim nLenFileName As Integer
Dim nLenFileData As Long
Dim DirName As String
Dim FileData As String
Dim File As String
Dim nFiles As Long
Dim I As Long

'Hier Prüfen ob Archiv-Datei vorhanden

If Dir(sArchiv) = "" Then
MsgBox "ERROR:CAN NOT FOUND Setup.dat!", 16
Timer1.Enabled = False
Timer2.Enabled = False
MsgBox "Setup abbgebrochen!"
Exit Function
‘Wenn das Archive nicht Existiert wird das Setup beendet
End If

' gf. abschliessenden Backslash anfügen Ordner müssen immer mit // Zwei Bakckslashs
’Angegeben werden (z.B: C:Test)

If Right$(sDestDir, 1) <> "" Then _
sDestDir = sDestDir + ""

' Hier wird das Archive geöffnet und die datein werden Gelesen
F = FreeFile
Open sArchiv For Binary As #F

' Anzahl enthaltener Icons
Get #F, , nFiles

For I = 1 To nFiles
'Hier werden die originalen dateiname ermitellt die im Archive “Verpackt” sind
Get #F, , nLenFileName
File = Space$(nLenFileName)
Get #F, , File

' Hier werden die Dateien Gelesen
Get #F, , nLenFileData
FileData = Space$(nLenFileData)
Get #F, , FileData

' Datei in "DestDir" (Angegebener Datei Pfad) Speichern
n = FreeFile
Open sDestDir + File For Output As #n
Print #n, FileData;
Close #n

' Fortschritt anzeige Einschalten
ShowProgress picProgress, I, 1, nFiles
DoEvents
Next I
Close #F

ExtractFilesFromArchiv = nFiles
End Function
’ENDE QELLCODE

2.4.3 Progressbar
So das war die Grundlegenden Funktionen.Nun mus aber noch der ProgressBar Programmiert werden das geht mit einer Funktion:

Private Sub ShowProgress(picProgress As PictureBox, _
ByVal Value As Long, _
ByVal Min As Long, _
ByVal Max As Long, _
Optional ByVal bShowProzent As Boolean = True)

Dim pWidth As Long
Dim intProz As Integer
Dim strProz As String

' Hier wird die Farbe des ProgressBars angegeben
Const progBackColor = &HC00000
Const progForeColor = vbBlack
Const progForeColorHighlight = vbWhite

' Plausibilitätsprüfungen
If Value < Min Then Value = Min
If Value > Max Then Value = Max

' Hier wird der Prozentwert ausgerechnet der Angezeigt wird
If Max > 0 Then
intProz = Int(Value / Max * 100 + 0.5)
Else
intProz = 100
End If

With picProgress
' Prüfen, ob AutoReadraw=True
If .AutoRedraw = False Then .AutoRedraw = True



picProgress.Cls

'Falls der Wert des Progresbars Von einem anderen Projekt auf einen anderen wert gesetzt
’wurde wird er hier auf 0 zurückgesetzt

If Value > 0 Then

' Balkenbreite festlegen
pWidth = .ScaleWidth / 100 * intProz

' Balken anzeigen
picProgress.Line (0, 0)-(pWidth, .ScaleHeight), _
progBackColor, BF

' Prozentanzeige im ProgressBar
If bShowProzent Then
strProz = CStr(intProz) & " %"
.CurrentX = (.ScaleWidth - .TextWidth(strProz)) / 2
.CurrentY = (.ScaleHeight - .TextHeight(strProz)) / 2

' Vordergrundfarbe
If pWidth >= .CurrentX Then
.ForeColor = progForeColorHighlight
Else
.ForeColor = progForeColor
End If

picProgress.Print strProz
End If
End If
End With
End Sub

3 Schluss
Ich hoffe ihr versteht den Qelltext.Er ist igentlich ganz einfach zu verstehen.Wenn ihr etwas nicht versteht dann lest euch ganz genau meine bemerkung (mit ’Gekennzeichnet) und Daenkt ganz genau nach.

 
ID: 137
eingestellt am: 19.06.2003
Autor: gitarre88
Status zum lesen: Gast
gelesen: 6063
Webseite: www.dreamcodes.com
[Drucken]