Scrierea instalatorului

Cea mai frecventă întrebare pe care am intrebat - cum sa faci programul de instalare? Și când mi-am cerut să explice detaliile care au nevoie de doar un program frumos, care va copia fișiere dintr-un loc în altul. Așa că am decis să scrie un articol care va aduna o mare parte din ceea ce am scris mai devreme (și acest lucru este pe VBStreets). vom scrie un program care se va instala fișierele.







O dată îmi cer scuze pentru o anumită confuzie și inconsecvență a narațiunii, doar că am foarte puțin timp chiar acum. deci aici este un exemplu.

Îmi place ideea de a-ți scrie instalatorul, așa că asta e. că nu sunteți limitat și că puteți să vă ocupați de multe dintre aceste funcții, iar programul de instalare este scris ca un program obișnuit.

Acum vă explic ideea - trebuie să scrieți un program care poate extrage, copia (adăuga o intrare în system.ini și registru etc.). Dar toate astea sunt mici. Ideea principală este de a păstra toate fișierele în resurse ca binare, apoi extrageți-le acolo unde este necesar.

Numărul de forme ale programului poate fi oricare, dar nu recomand să le facem prea mult, pentru a nu mânca pe cel deja rău. Pentru ca formularele să apară acolo unde este necesar, le vom înființa astfel:

Când faceți clic pe Următorul >> (sau Următorul >>), îl puteți numi așa cum doriți.

frmNext.Show
frmNext.Height = Me.Height
frmNext.Width = Me.Width
frmNext.Move Me.Left, Me.Top
Descărcați-mă

Utilizatorul poate muta formularul, deci trebuie să îl afișați pe celălalt în același loc ca cel precedent. va fi foarte eficient, ca si cum ar fi o forma :-).







În codul primei formule, vom introduce o astfel de piesă (Form_Load):

În cazul în care App.PrevInstance Apoi
capăt
MsgBox "O versiune a programului de instalare se execută deja!", 16, "Configurare"
Sfârșit Dacă

Acest lucru este astfel încât un utilizator foarte inteligent nu rulează două aplicații în același timp.

Apoi puteți pompa cât mai multe forme doriți, dar este recomandabil să faceți un dialog de selectare a dosarului pentru instalare. Aici sunt utile următoarele lucruri: locul Dir1, List1, Label1, Label2, Command1. Noi scriem codul.

Declare Private Function GetDiskFreeSpace Lib "kernel32" Alias ​​"GetDiskFreeSpaceA" (ByVal lpRootPathName ca șir, lpSectorsPerCluster Ca lung, lpBytesPerSector Ca pe termen lung, atât timp lpNumberOfFreeClusters, lpTtoalNumberOfClusters Atâta timp) Ca termen lung

Private Sub Drive1_Change ()
Spații = GetDiskFreeSpace (Mid $ (Drive1.Drive, 1, 2), secpercl, bytespersec, numoffreecl, AllCl)
Dimpotrivă
l = 1024 ^ 2
ss = bytespersec / l
fs = secpercl * ss * numoffreecl
fs = Format (fs, "0")
label2.Caption = "Disponibil pe disc:" fs "MB"
Dir1.Path = Drive1.Drive
End Sub

Private Sub Dir1_Change ()
mDir = Dir1.Path
Label1.Caption = mDir "Noi conducem această variabilă în modul ca Public InsDir ca String, este încă util.
End Sub

Private Sub Command1_Click ()
La eroare GoTo ree_
nd = InputBox ("Introduceți numele directorului", "Folder nou.")
Dacă nd = "" Apoi Exit Sub
MkDir Dir1.Path „“ nd
Dir1.Refresh
Ieșire Sub
ree_:
MsgBox "Cu toate acestea.", 16, "Configurare"
End Sub

Puteți adăuga mai multe. Sunt același lucru ca un exemplu.

Apoi, există un dialog, instalare. Acolo facem astfel de lucruri:

Private Sub Form_Load () 'Extrage fișierul din resurse și creează o comandă rapidă.
ProgressBar1.Value = 20
Dim BinaryData () ca octet
BinaryData = LoadResData (101, "Fișiere")
ProgressBar1.Value = 80
Deschideți mDir "wininfo.exe" Pentru accesul binar Scrieți ca # 1
Puneți # 1, 1, BinaryData
Închideți # 1
ProgressBar1.Value = 98
lngresult = fCreateShellLink ("Desktop", "WinInfo", mDir "wininfo.exe", "") "Lucrează în ferestre de engleză.
ProgressBar1.Value = 100
Descărcați-mă
frmFinish.Show
End Sub

Totul, după care deducem ultimul dialog cu felicitări.







Articole similare

Trimiteți-le prietenilor: