Χρησιμοποιώντας τη συνάρτηση Split στο VBA Excel, τη σύνταξη και τις παραμέτρους της. Τιμές που επιστρέφονται από τη συνάρτηση Split. Παραδείγματα χρήσης.
Η συνάρτηση Split έχει σχεδιαστεί στο VBA Excel για να χωρίζει μια συμβολοσειρά σε υποσυμβολοσειρές χρησιμοποιώντας ειδικά σημάδια οριοθέτησης. Το διαχωριστικό μπορεί να είναι κάτι σαν ξεχωριστό χαρακτήρα, και μια συμβολοσειρά πολλών χαρακτήρων. Η συνάρτηση Split είναι το αντίστροφο της συνάρτησης, η οποία δημιουργεί μια συμβολοσειρά από έναν πίνακα υποσυμβολοσειρών.
Διαίρεση (Έκφραση,,,)
Η απαιτούμενη παράμετρος της συνάρτησης Split είναι Έκφραση - εάν οι άλλες παράμετροι δεν καθορίζονται ρητά, χρησιμοποιούνται οι προεπιλεγμένες τιμές τους.
*Εάν χρησιμοποιείται δυαδική σύγκριση (0 ή CompareMethod.Binary), η συνάρτηση κάνει διάκριση πεζών-κεφαλαίων. Εάν χρησιμοποιείται σύγκριση κειμένου (1 ή CompareMethod.Text), η συνάρτηση δεν κάνει διάκριση πεζών-κεφαλαίων.
Η συνάρτηση Split επιστρέφει έναν μονοδιάστατο πίνακα, με ευρετήριο από το μηδέν, που περιέχει την καθορισμένη παράμετρο Οριοαριθμός υποσυμβολοσειρών. Τις περισσότερες φορές, η συνάρτηση Split χρησιμοποιείται με την τιμή της παραμέτρου Οριοαπό προεπιλογή, ίσο με -1, όταν επιστρέφονται όλες οι υποσυμβολοσειρές που βρίσκονται στη συμβολοσειρά πηγής.
Το πρώτο παράδειγμα χρησιμοποιεί ΟριοθέτηςΚαι Οριοαπό προεπιλογή.
Στο δεύτερο παράδειγμα Οριοθέτης= "-", α Οριο = 2.
Η συνάρτηση Split εκχωρεί αποτελέσματα χρησιμοποιώντας ένα προδηλωμένο κείμενο , το οποίο μπορεί να χρησιμοποιηθεί στη γραμμή ανάθεσης με ή χωρίς κενές παρενθέσεις. Στα παραπάνω παραδείγματα, ο πίνακας προσδιορίζεται χωρίς παρενθέσεις.
Μπορείτε να αντιγράψετε τους κωδικούς από τα παραδείγματα που δίνονται στη μονάδα VBA της εργασίας σας Βιβλία εργασίας του Excel, δείτε πώς λειτουργούν. Πειραματιστείτε με την αντικατάσταση των δικών σας δεδομένων για να αποκτήσετε μια πρακτική αίσθηση για τη δυνατότητα Split.
Αυτό το κεφάλαιο εισάγει το βασικό «οπλοστάσιο» του VB.NET. Το μεγαλύτερο μέρος του υλικού προέρχεται από σύντομη επισκόπησηέννοιες κοινές σε όλες τις γλώσσες προγραμματισμού (όπως μεταβλητές και οδηγίες βρόχου) και περιγραφή βασικών τύπων δεδομένων, κυρίως διαφορετικούς αριθμούςκαι γραμμές. Οι αναγνώστες που είναι εξοικειωμένοι με το VB6 μπορεί να θέλουν να περάσουν από πάνω τους αυτό το κεφάλαιο.
Μόνο μερικά παραδείγματα σε αυτό το κεφάλαιο περιέχουν πραγματικό κώδικα που μπορεί να χρησιμοποιηθεί σε σοβαρά προγράμματα VB.NET. Το γεγονός είναι ότι κανένα σοβαρό πρόγραμμα VB.NET δεν μπορεί να κάνει χωρίς αντικείμενα που βασίζονται σε πρότυπα που ονομάζονται κλάσεις, ένα θέμα που θα καλύψουμε στο Κεφάλαιο 4. Θα ξεκινήσουμε με τις βασικές δομές της γλώσσας, γιατί διαφορετικά θα έπρεπε να περιοριστούμε σε πρωτόγονες μαθήματα που δεν έχουν πρακτική αξία. Αυτό το κεφάλαιο δεν καλύπτει κλάσεις που ορίζονται από το χρήστη και δείχνει μόνο βασικά παραδείγματα για τον τρόπο χρήσης των ενσωματωμένων κλάσεων του .NET Framework, οι οποίες είναι εξαιρετικά ισχυρές.
Τι προκύπτει από αυτό; Παραδόξως, τα προγράμματα που γράφτηκαν σε αυτό το κεφάλαιο είναι πολύ κοντά σε στυλ με τον παραδοσιακό προγραμματισμό της πρώιμης εποχής BASIC και ακόμη και της εποχής Fortran και COBOL που προηγήθηκε (εκτός από μερικές περίεργες αλλά απαραίτητες συντακτικές κατασκευές). Συγκεκριμένα, σε αντίθεση με τα προγράμματα σε επόμενα κεφάλαια, έχουν πάντα μια σαφώς καθορισμένη αρχή και τέλος και ο έλεγχος μεταφέρεται από την αρχή στο τέλος (αν και ο έλεγχος μπορεί να μεταφερθεί με ειδικές εντολές).
Όπως αναφέρθηκε στην εισαγωγή, θα προσπαθήσουμε να παρουσιάσουμε προγράμματα γραμμένα σε κανονικό στυλ .NET, αποφεύγοντας την τεχνητή συμβατότητα με το VB6 όποτε είναι δυνατόν.
Κάθε εφαρμογή VB.NET πρέπει να έχει ένα σημείο εισόδου. Το σημείο εισόδου περιέχει κωδικό που εκτελείται αυτόματα κατά την εκκίνηση, μετά την οποία ο έλεγχος μεταφέρεται στον υπόλοιπο κώδικα του προγράμματος. Σε σχετικά απλά εφαρμογές γραφικώνΤο σημείο εισόδου μπορεί να συσχετιστεί με την αρχική φόρμα, όπως στο VB6. Όμως, όπως είδαμε στο Κεφάλαιο 1, ο κώδικας των Windows Forms είναι αρκετά περίπλοκος και η εύρεση του σημείου εισόδου μπορεί να είναι δύσκολη. Αυτό το κεφάλαιο καλύπτει μόνο τις εφαρμογές κονσόλας που εκτελούνται σε ένα παράθυρο κονσόλας (όπως ένα παράθυρο συνεδρίας DOS). Ναι, το VB.NET διευκολύνει τη δημιουργία παραδοσιακών εφαρμογών κονσόλας που χρησιμοποιούνται συχνά στον προγραμματισμό δέσμης ενεργειών από την πλευρά του διακομιστή.
Το σημείο εισόδου μιας εφαρμογής κονσόλας είναι η διαδικασία Sub Mainενότητα (ανάλογη με τη διαδικασία Sub Mainσε VB6). Εάν επιλέξετε το εικονίδιο της εφαρμογής της κονσόλας ( Εφαρμογή Κονσόλας), το VB.NET δημιουργεί αυτόματα μια εφαρμογή "σκελετός" με σημείο εισόδου - διαδικασία Sub Main:
Module Module1 Sub Main() End Sub End Module
Σε αντίθεση με το VB6, η πρώτη γραμμή καθορίζει το όνομα της μονάδας (η εντολή είναι με έντονη γραφή). ΣΕ σε αυτό το παράδειγμαχρησιμοποιείται το προεπιλεγμένο όνομα Modul el. Σύμφωνα με τους κανόνες, το όνομα της μονάδας πρέπει να ταιριάζει με το όνομα του αρχείου. Ας υποθέσουμε ότι αλλάξατε το όνομα της ενότητας στην πρώτη γραμμή: Module Test1. Όταν προσπαθείτε να εκτελέσετε μια εφαρμογή κονσόλας, λαμβάνετε ένα μήνυμα λάθους:
Ο κωδικός εκκίνησης "Sub Main" καθορίστηκε στο "Test.Modulel". αλλά το "Test.Modulel" δεν βρέθηκε
Η μετονομασία μιας λειτουργικής μονάδας μετά τη δημιουργία της γίνεται ως εξής:
Κατ' αναλογία με το VB6, ένα πρόγραμμα (λύση) VB.NET μπορεί να αποτελείται από πολλές ενότητες, αλλά την παρουσία μιας διαδικασίας Sub Mainεπιτρέπεται μόνο σε μία ενότητα. Η εφαρμογή τερματίζεται μόλις φτάσει στην εντολή End Subδιαδικασίες Sub Main. Για παράδειγμα, το θρυλικό πρόγραμμα "Hello world" μοιάζει με αυτό:
Module Modul el Sub Main() Console.WriteLine("Hello world") End Sub End Module
Εάν εκτελέσετε αυτό το πρόγραμμα στο IDE, ένα παράθυρο DOS με τις λέξεις "Hello world" θα αναβοσβήσει πολύ γρήγορα στην οθόνη (και θα εξαφανιστεί αμέσως). Το παράθυρο κλείνει όταν γίνεται επεξεργασία της εντολής End Sub.
Η συνάρτηση επιστρέφει έναν μονοδιάστατο πίνακα που περιέχει έναν καθορισμένο αριθμό υποσυμβολοσειρών. Αυτή η λειτουργίαείναι το αντίστροφο της συνάρτησης Join.Παράμετρος Συγκρίνωμπορεί να λάβει τις ακόλουθες τιμές:
Private Sub Form_Load() Dim arrMyArray() As String Dim strMyString As String strMyString = "Γεια σας! Πώς είστε;"
arrMyArray = Split(strMyString) "επιστρέφει "Hello!" Debug.Print arrMyArray(0) End SubΔείτε επίσης:Γεια σε όλους, σε αυτό το άρθρο θέλω να σας δείξω χρήσιμους κωδικούς για μικρά προγράμματα. Τα οποία μπορείτε να χρησιμοποιήσετε για να γράψετε τα δικά σας πιο σοβαρά προγράμματα ή αναζητούσατε ακριβώς αυτές τις λειτουργίες που περιγράφονται εδώ.
Όλοι οι κωδικοί χρησιμοποιήθηκαν στο περιβάλλον προγραμματισμού Microsoft Visual Basic v6.0.
Το πρώτο είδος προγράμματος ή συνάρτησης είναι μια έξοδος με ένα μήνυμα που επιβεβαιώνει την έξοδο. Γενικά, ανοίξτε το περιβάλλον προγραμματισμού της Visual Basic, δημιουργήστε ένα τυπικό έργο, μετά τοποθετήστε ένα κουμπί στη φόρμα, κάντε κλικ στο κουμπί και θα ανοίξει ένα παράθυρο επεξεργασίας κώδικα και πρέπει να εισαγάγετε τον ακόλουθο κώδικα εκεί:
Μήνυμα ηχητικής φωτεινότητας ως κουμπιά σκοτεινής συμβολοσειράς, καθώς και εικονίδια ως ακέραιος αριθμός αμυδρός τίτλος Ως απόκριση αμυδρή συμβολοσειρά Ως μήνυμα συμβολοσειράς = "Θέλετε να βγείτε;"" buttonasicons = vbYesNo + vbQuestion response = MsgBox(message, buttonasicons, title) If response = vbYes Then End End If !}
Κωδικός πρόσβασης για την έναρξη του προγράμματος<>Dim Password, Pword PassWord = "12345" Pword = InputBox("Εισαγωγή κωδικού πρόσβασης") Εάν Pword
PassWord Στη συνέχεια MsgBox "Ο κωδικός πρόσβασης δεν είναι σωστός" Τέλος Τέλος Εάν
Έξοδος μηνύματος
Εάν θέλετε απλώς να εμφανίσετε ένα μήνυμα για κάτι, επικολλήστε αυτό:" buttonasicons = vbOKOnly + vbexciamation MsgBox message, buttonsandicons, title !}
Σχέδιο στη φόρμα
Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) Form1.CurrentX = X Form1.CurrentY = Y End Sub Private Sub Form_MouseMove(Button As Integer, Shift as Integer, X as Single, Y As Single) If Button = 1 then Line (Form1.CurrentX, Form1.CurrentY)-(X, Y), QBCcolor(0) End If End Sub
Επανεκκίνηση του υπολογιστή
Για να επανεκκινήσετε τον υπολογιστή σας: τοποθετήστε το κουμπί και επικολλήστε τον ακόλουθο κώδικα:Ρύθμιση objWMIService = GetObject("winmgmts:" & "(impersonationLevel=impersonate, (Shutdown))!\\" _ & strComputer & "\root\cimv2") Ρύθμιση colOperatingSystems = objWMIService.ExecQuery *perating(3_Sstemel)" Κάθε ObjOperatingSystem In colOperatingSystems ObjOperatingSystem.Reboot " Για επανεκκίνηση Επόμενο
Private Sub Form_Load() Εάν App.PrevInstance = True Τότε MsgBox "Το έργο έχει ήδη ξεκινήσει!"
Απενεργοποίηση του υπολογιστή
Για να απενεργοποιήσετε τον υπολογιστή σας, μπορείτε να χρησιμοποιήσετε τον ακόλουθο κωδικό:
Ρύθμιση objWMIService = GetObject("winmgmts:" & "(impersonationLevel=impersonate,(Shutdown))!\\" _ & strComputer & "\root\cimv2") Ορισμός colOperatingSystems = objWMIService.ExecQuery *perating(3y_Steel") Κάθε ObjOperatingSystem In colOperatingSystems ObjOperatingSystem.ShutDown "Για τερματισμό λειτουργίας Επόμενο
Τερματισμός οποιασδήποτε διαδικασίας
Για να τερματίσετε τη διαδικασία μπορείτε να χρησιμοποιήσετε τον ακόλουθο κώδικα:
Όπου, αντί για ICQlite.exe μπορεί να υπάρχει οποιαδήποτε διαδικασία. Πόσο διαρκεί ο υπολογιστής;Παρακάτω είναι ένα παράδειγμα για το πώς μπορείτε να προσδιορίσετε το χρόνο λειτουργίας του υπολογιστή.
Αυτή η μέθοδος
βασίζεται στη χρήση της βιβλιοθήκης kernel32, οπότε στην αρχή του κώδικα φόρμας, συνδέστε αυτό το DLL. Ιδιωτική Δήλωση Συνάρτηση GetTickCount Lib "kernel32" () Όσο "Και στον κωδικό του κουμπιού: Dim a_hour, a_minute, a_second a = Format(GetTickCount() / 1000, "0") "total seconds a_days = Int(a / 8640) a = a - a_days * 86400 a_hour = Int(a / 3600) a = a - a_hour * 3600 a_minute = Int(a / 60) a_second = a - a_minute * 60 MsgBox "Ο υπολογιστής σας εκτελείται" & Str(a_days) & " ημέρες " & Str(a_hour) _ & " ώρες " & Str(a_minute) & " minutes" & Str(a_hour) & " seconds"Έχουμε αναθεωρήσει
":" Και Dir$(path, vbDirectory) = "" Τότε MkDir διαδρομή End If Loop Μέχρι i >= Len(dirname) End Sub Private Sub Command1_Click() Call MakeDir("C:\Soft\1\2\3\ ") Τέλος Υπ
Στατική εκτέλεση ως Boolean Dim AllDirs ως νέα συλλογή Dim next_dir Ως ακέραιος Dim dir_name Ως String Dim sub_dir Ως String Dim i Ως ακέραιος Dim txt Ως συμβολοσειρά Αν εκτελείται Στη συνέχεια τρέχει = False CmdStart.Enabled = False CmdStart.Caption = "Διακοπή" Else True MousePointer = vbHourglass CmdStart.Caption = "Stop" OutText.Text = "" DoEvents next_dir = 1 AllDirs.Add StartText.Text Do while next_dir<= AllDirs.Count dir_name = AllDirs(next_dir) next_dir = next_dir + 1 sub_dir = Dir$(dir_name & "\*", vbDirectory) Do While sub_dir <>"" Εάν UCase$(sub_dir)<>"PAGEFILE.SYS" Και sub_dir<>"." Και sub_dir<>".." Τότε sub_dir = dir_name & "\" & sub_dir On Error Resume Next If GetAttr(sub_dir) And vbDirectory then AllDirs.Add sub_dir End If sub_dir = Dir$(, vbDirectory) Επανάληψη DoEvents Εάν δεν εκτελείται, Έξοδος Do Loop txt = "" Για i = 1 To AllDirs.Count txt = txt & AllDirs(i) & vbCrLf Επόμενο i OutText.Text = txt MousePointer = vbDefault unning = False End
Τώρα ξεκινάμε το πρόγραμμα, γράφουμε στο πεδίο κειμένου StartText: C:\windows και κάνουμε κλικ στο κουμπί.
Ας υποθέσουμε ότι έχουμε ένα αρχείο με το όνομα 1.txt στον φάκελο C:\1\ και πρέπει να το αντιγράψουμε στο C:\2\ για να το κάνουμε αυτό γράφουμε τον ακόλουθο κώδικα:
Αντιγραφή αρχείου "C:\1\1.txt", "C:\2\1.txt"
Σημείωμα! Εάν ο κατάλογος 2 περιέχει ήδη ένα αρχείο με το όνομα 1.txt, θα αντικατασταθεί με 1.txt από τον κατάλογο 1.
Ιδιωτικό Δήλωση συνάρτησης CopyFile Lib _ "kernel32.dll" Ψευδώνυμο "CopyFileA" _ (ByVal lpExistingFileName ως συμβολοσειρά, ByVal lpNewFileName ως συμβολοσειρά, ByVal bFailIfExists As Long) Ως Longd "1_CComment FileMan" (1_C Subscription) στο D :\1.txt retval As Long "Return value "Αντιγράψτε το αρχείο retval = CopyFile("C:\1.txt", "D:\1.txt", 1) Εάν retval = 0 Τότε "Αν. σφάλμα MsgBox "Δεν μπορώ να αντιγράψω" Αλλιώς "Εάν όλα είναι καλά MsgBox "Το αρχείο αντιγράφηκε." End If End Sub
Για παράδειγμα, θέλουμε να διαγράψουμε το αρχείο 1.txt από τη ρίζα της μονάδας δίσκου C:\
Kill("C:\1.txt")
Μέθοδος API
Private Declare Function DeleteFile Lib _ "kernel32.dll" Ψευδώνυμο "DeleteFileA" (ByVal lpFileName As String) As Long Private Sub Command1_Click() "Διαγραφή αρχείου C:\Samples\anyfile.txt Dim retvaln As Long " DeleteFile( "C:\1.txt") Εάν retval = 1 Τότε MsgBox "Το αρχείο διαγράφηκε επιτυχώς."
Κίνηση
Μπορείτε, για παράδειγμα, να το μετακινήσετε ως εξής:
Αντιγραφή αρχείου "C:\1.txt","C:\2\1.txt" Kill ("C:\1.txt")
Αλλά είναι καλύτερα έτσι (μέσω API):
Μετονομασία
Για να μετονομάσετε το αρχείο 1.txt που βρίσκεται στο C:\ σε 2.txt, μπορείτε να χρησιμοποιήσετε τον ακόλουθο κώδικα:
Μέθοδος API
Ιδιωτικό Δήλωση συνάρτησης MoveFile Lib _ "kernel32.dll" Ψευδώνυμο "MoveFileA" _ (ByVal lpExistingFileName ως συμβολοσειρά, ByVal lpNewFileName ως συμβολοσειρά) As Long Private Sub Command1_Click() Dim "MoveFileRetval As" \1 .txt", "C:\2.txt") Αν επανάληψη = 1 Τότε MsgBox "Success" Άλλο MsgBox "Error" End If End Sub
Το μέγεθος του αρχείου μπορεί να προσδιοριστεί με δύο τρόπους:
Εάν το αρχείο μπορεί να ανοίξει με τη λειτουργία OPEN, τότε μπορείτε να χρησιμοποιήσετε τη συνάρτηση LOF
Dim FileFree As Integer Dim FileSize As Long FileFree = FreeFile Άνοιγμα "C:\WIN\GENERAL.TXT" για εισαγωγή ως FileFree FileSize = LOF(FileFree) Κλείσιμο FileFree
Ή χρησιμοποιήστε τη συνάρτηση FileLen
Dim lFileSize As Long FileSize = FileLen("C:\WIN\GENERAL.TXT")
Προσθέστε 2 κουμπιά και επικολλήστε τον κωδικό:
Επιλογή Ρητή Ιδιωτική Δήλωση Συνάρτησης FindWindow Lib _ "user32" Ψευδώνυμο "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long Private Declare Function FindWindowEx Lib _ "WindowEx Lib _ "downEFixAnd" Long, ByVal hWnd2 As Long, ByVal lpsz1 As String, ByVal lpsz2 As String) As Long Private Declare Function ShowWindow Lib _ "user32" (ByVal hwnd As Long, ByVal nCmdShow As Long) As Longmandm ShowWindow hnd, 0 End Sub Private Sub Command2_Click() ShowWindow hnd, 1 End Sub Private Sub Form_Load() hnd = FindWindow("Shell_TrayWnd", vbNullString) hnd = FindWindowEx(hnd, 0, "FindingWW",(TrayNobndify) hnd, 0, "TrayClockWClass", vbNullString) Command1.Caption = "Hide clock" Command2.Caption = "Show clock" End Sub
Προσθέστε μια ενότητα και επικολλήστε τον κώδικα σε αυτήν:
Δηλώστε τη συνάρτηση Shell_NotifyIconA Lib _ "SHELL32" (ByVal dwMessage As Long, lpData As NOTIFYICONDATA) ως ακέραιος δημόσια Const NIM_ADD = 0 Public Const NIM_MODIFY = 1 Public Const NIM_DELETE = 1_M Public Const _ΣΥΜΒΟΥΛΗ = 4 Πληκτρολογήστε NOTIFYICONDATA cbΜέγεθος για όσο διάστημα hWnd για όσο διάστημα uID Όσο μήκος uΣημαίες για μεγάλο χρονικό διάστημα uCallbackΜήνυμα για μεγάλο χρονικό διάστημα hIcon Όσο μήκος szΣυμβουλή ως συμβολοσειρά * 64 Τύπος τέλους δημόσιας λειτουργίας SetTrayIcon (Λειτουργία για όσο χρονικό διάστημα, hWnd για όσο διάστημα, hWnd για μεγάλο χρονικό διάστημα, μακροσκελής διάμετρος εικονιδίου) nidTemp As NOTIFYICONDATA nidTemp.cbSize = Len(nidTemp) nidTemp.hWnd = hWnd nidTemp.uID = 0& nidTemp.uFlags = NIF_ICON Ή NIF_TIP nidTemp.uCallbackMessage.ip.hde = tip & Chr$( 0) SetTrayIcon = Shell_NotifyIconA(Mode, nidTemp) End Function
Για χρήση, εισαγάγετε στον κωδικό φόρμας:
Private Sub Form_Load() SetTrayIcon NIM_ADD, Me.hWnd, Me.Icon, "Test" End Sub "Για να διαγράψετε μια Private Sub Command1_Click() SetTrayIcon NIM_DELETE, Me.hWnd, 0&, "" End Sub
Ιδιωτική Δήλωση Συνάρτηση FindWindow Lib "user32" Ψευδώνυμο "FindWindowA" _ (ByVal lpClassName As String, ByVal lpWindowName As String) As Long Private Declare Function FindWindowEx Lib "user32" σε _Bh"Vxal" hWnd2 As Long, ByVal lpsz1 As String, ByVal lpsz2 As String) As Long Private Δηλώστε τη συνάρτηση EnableWindow Lib "user32" _ (ByVal hwnd As Long, ByVal fEnable As Long) As Long Public Sub EnableStartButtonAs) lHwnd As Long " find hWnd lHwnd& = FindWindowEx(FindWindow("Shell_TrayWnd", ""), 0&, "Button", vbNullString) Κλήση EnableWindow(lHwnd&, CLng(Enabled)) End Sub Private "STARTS Button"(Button) είναι απενεργοποιημένο End Sub Private Sub Command2_Click() EnableStartButton True "Το κουμπί START δεν είναι απενεργοποιημένο End Sub
Το πρόγραμμα συνδέεται με FTP και το αρχείο ini περιέχει τις παραμέτρους - διακομιστής, σύνδεση, θύρα, κωδικός πρόσβασης.
Πρώτα, δημιουργήστε ένα αρχείο INI:
Όνομα διακομιστή=χρήστης διακομιστήn=Είσοδος pwd=θύρα κωδικού πρόσβασης=θύρα
Πρέπει να τοποθετηθεί στο φάκελο του προγράμματος. Στη συνέχεια, εισαγάγετε στη μονάδα:
Private Declare Function WritePrivateProfileString Lib _ "kernel32" Ψευδώνυμο "WritePrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As String, _ ByVal lpString As String, ByVal rivateProfileString Lib _ Ψευδώνυμο "kernel32". "GetP rivateProfileStringA" (ByVal lpApplicationName ως συμβολοσειρά, ByVal lpKeyName ως συμβολοσειρά, _ ByVal lpDefault ως συμβολοσειρά, ByVal lpReturnedString ως συμβολοσειρά, _ ByVal nSize As Long, ByVal, String As LongRing , Param) Ως String ReadIni = GetValue (Razdel, Param, App.Path & "\test.ini", "0") Τελική συνάρτηση Ιδιωτική συνάρτηση GetValue(Ενότητα ByVal ως συμβολοσειρά, _ ByVal κλειδί ως συμβολοσειρά, ByVal fFileName ως συμβολοσειρά, Προαιρετική ByVal DefaultValue Ως String = vbNullString) Ως String Dim Data Ως String Data = String$(1000, Chr$(0)) If GetPrivateProfileString(Section, Key, DefaultValue, Data, 1000, fFileName) > 0 Στη συνέχεια GetValue = Left$(Data, InStr (Data$, Chr $(0)) - 1) Else GetValue = DefaultValue End If Exit Function End Function
Στη συνέχεια επικολλήστε στον κώδικα φόρμας:
Ιδιωτική Δήλωση Λειτουργία InternetOpen Lib _ "Wininet.dll" alias "InternetOpena" (Byval Sagent ως String, Byval Naccesstype όσο μακρύς, byval sproxyname ως string, _ byval sproxybypass ως συμβολοσειρά, byval nflags ως μακρύ ιδιωτικό internet Lib _ "wininet.dll" Ψευδώνυμο "InternetConnectA" (ByVal hInternetSession As Long, ByVal sServerName ως συμβολοσειρά, _ ByVal nServerPort ως ακέραιος, ByVal sUserName As String, ByVal sPassword As Long ng , ByVal dwContext As Long) As Long Private Δήλωση συνάρτησης FtpPutFile Lib _ "wininet.dll" Ψευδώνυμο "FtpPutFileA" (ByVal hFtpSession As Long, ByVal lpszLocalFile As String, _ ByVal.Val al dwContext As Long) Ως Boolean Private Declare Function FtpGetFile Lib _ "wininet.dll" Ψευδώνυμο "FtpGetFileA" (ByVal hFtpSession As Long, ByVal lpszRemoteFile As String, _ ByVal lpszNewFile As Fwgsail ndAttributes As Long, _ ByVal dwFlags As Long, ByVal d wContext As Long ) As Boolean Private Δήλωση συνάρτησης InternetCloseHandle Lib _ "wininet.dll" (ByVal hInet As Long) As Integer Dim rc& Dim rs&
Και στον κωδικό του κουμπιού:
rc& = InternetOpen("", 0, vbNullString, vbNullString, 0) rs& = InternetConnect(rc&, ReadIni("General", "servername"), "0", _ ReadIni("General", "usern"), ReadIni( "General", "pwd"), 1, 0, 0) Εάν FtpGetFile(rs&, "Your file.txt", "path where", False, 0, 1, 0) = False, Στη συνέχεια, τερματισμός κλήσης InternetCloseHandle(rs&) Call InternetCloseHandle(rc&)Προσθέστε ένα πλαίσιο λίστας και κουμπί 1, εισαγάγετε τον ακόλουθο κώδικα:
Επιλογή Ρητή Ιδιωτική Δήλωση Συνάρτησης CreateToolhelpSnapshot Lib _ "Kernel32" Ψευδώνυμο "CreateToolhelp32Snapshot" _ (ByVal lFlags As Long, ByVal lProcessID As Long) As Long Private Declare Function "AlishFirst" al hSnapShot As Long, uProcess As PROCESSENTRY32) As Long Private Δήλωση συνάρτησης ProcessNext Lib _ "Kernel32" Ψευδώνυμο "Process32Next" _ (ByVal hSnapShot As Long, uProcess As PROCESSENTRY32) As Long Private Declare Sub "KloseHand Lih" ) Private Const TH32CS_SNAPPROCESS As Long = 2& Private Const MAX_PATH As Integer = 260 Private Type PROCESSENTRY32 dwSize As Long cntUsage As Long th32ProcessID As Long th32DefaultHeapID As LongTh32Thre rentProcessID As Long pcPriClassBase As Long dwΣημαίες για όσο διάστημα szExeFile Ως συμβολοσειρά * MAX_PATH Τύπος Τύπος DI M HSNAPSHOT ως μακρύ Dim Uprocess ως ProcessEntry32 Dim R ως Long Private Sub Command1_click () List1.Clear HsnapShot = LEDETOOLPHELPSNAPSHOT (TH32CS_SNACPOCES ProcessFirst(hSnapShot, uProcess) Do while r List1.AddItem uProcess.szExeFile r = ProcessNext(hSnapShot, uProcess) Loop Call CloseHandle(hSnapShot) End Sub
Για να φορτώσει το πρόγραμμα με τα Windows, όπως ορισμένα άλλα προγράμματα, μπορείτε να χρησιμοποιήσετε το μητρώο:
Προσθέστε 2 κουμπιά και τον ακόλουθο κώδικα:
Private Sub Command1_Click() "Registry entry Set Reg = CreateObject("WScript.Shell") Reg.RegWrite "HKLM\Software\Microsoft\Windows\CurrentVersion\Run\Name of your program", _ "Path to your program" End Sub Private Sub Command2_Click() "Delete from the registry Set Reg = CreateObject("WScript.Shell") Reg.RegDelete "HKLM\Software\Microsoft\Windows\CurrentVersion\Run\Name of your program" End Sub
Και για να φορτώσει το πρόγραμμα μαζί με τα Windows, ακόμα και μέσα ασφαλής λειτουργία, τότε αυτός ο κωδικός:
Πρώτον, μια πιο σοβαρή μέθοδος (κάντε το για παν ενδεχόμενο αντίγραφο ασφαλείαςαρχείο).
Private Sub Command1_Click() Set Reg = CreateObject("WScript.Shell") Reg.RegΓράψτε "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsNT\CurrentVersion\Winlogon\Shell", _ "Διαδρομή στο πρόγραμμα σας Private"(Endman) Αυτό είναι για ανάκτηση Set Reg = CreateObject("WScript.Shell") Reg.RegWrite "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsNT\CurrentVersion\Winlogon\Shell", _ "Explorer.exe," End Sub
Λοιπόν, ένας απλός τρόπος.
Private Sub Command1_Click() Set Reg = CreateObject("WScript.Shell") Reg.RegΓράψτε "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsNT\CurrentVersion\Winlogon\Userinit", _ "C:\\\\System" ,Η διαδρομή προς το πρόγραμμά σας" End Sub Private Sub Command2_Click()"Για επαναφορά του Set Reg = CreateObject("WScript.Shell") Reg.RegWrite "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsNT\CurrentVersion\User_Winiton", : \\WINDOWS\\system32\\userinit.exe," End Sub
Προσθέστε 2 κουμπιά και επικολλήστε τον κωδικό:
Ιδιωτική Δήλωση Συνάρτηση SetWindowPos Lib "user32" (ByVal hwnd As Long, _ ByVal hWndInsertAfter As Long, ByVal x As Long, ByVal y As Long, _ ByVal cx As Long, ByVal cy As Long, ByVal hWndInsertAfter As Long, ByVal x As Long, ByVal y As Long, _ ByVal cx As Long, ByVal cy As Long, ByVal hWndInsertAfter As Long, ByVal x As Long, ByVal y As Long, _ ByVal cx As Long, ByVal cy As Long, ByVal hWndInsertAfter As Long, ByVal x As Long, ByVal y As Long, _ ByVal cx As Long, ByVal cy As Long, ByVal Long wFlangre Συνάρτηση FindWindow Lib "user32" Ψευδώνυμο "FindWindowA" _ (ByVal lpClassName ως συμβολοσειρά, ByVal lpWindowName ως συμβολοσειρά) As Long Const SWP_HIDEWINDOW = &H80 Const SWP_SHOWWINDOWide =Priva_Chdown ("Shell_traywnd", " ") Κλήση SetWindowPos(hwnd1, 0, 0, 0, 0, 0, SWP_HIDEWINDOW) End Sub "Shows Private Sub Command2_Click() hwnd1 = FindWindow("Shell_traywnd", "") Κλήση SetWind10,0,0h 0, 0, SWP_SHOWWINDOW) Τέλος υπο
Για αποσυμπίεση Αρχείο RARμπορείτε να χρησιμοποιήσετε τον παρακάτω κώδικα:
WinRarApp = "C:\Program Files\WinRAR\WinRAR.exe x -o+" iPath = "C:\" iArhivName = "Όνομα αρχείου.rar" adr = WinRarApp & " """ & iPath & iArhivName & """ " "" & iPath & """ " RetVal = Shell(adr, vbHide)
Προσθέστε ένα κουμπί και επικολλήστε τον ακόλουθο κώδικα:
Ιδιωτικό Δήλωση Sub GlobalMemoryStatus Lib "kernel32" (lpBuffer As TMemoryStatus) Ιδιωτικός τύπος TMemoryStatus dwLength As Long dwMemoryLoad As Long dwTotalPhys As Long dwAvailPhys As Long dwFiDWTong ual As Long dwAvailVirtual As Long End Τύπος Dim s As TMemoryStatus Private Sub Command1_Click( ) ms.dwLength = Len(ms) Κλήση GlobalMemoryStatus(ms) MsgBox "Total:" & ms.dwTotalPhys & vbCr & "Free:" _ & ms.dwAvailPhys & vbCr & "Used in %:" & ms.dwMemory
Αυτό γίνεται ως εξής. Προσθέστε 2 κουμπιά και επικολλήστε τον ακόλουθο κώδικα:
Λειτουργία ιδιωτικής δήλωσης ShowWindow& Lib "user32" (ByVal hwnd&, ByVal nCmdShow&) Συνάρτηση ιδιωτικής δήλωσης FindWindow Lib _ "user32" Ψευδώνυμο "FindWindowA" (ByVal lpClassName As String,ByVame Aslp Const SW_NORMAL = 1 Private Sub Command1_Click() Dim hHandle As Long hHandle = FindWindow("progman", vbNullString) Call ShowWindow(hHandle, SW_HIDE) End Sub Private Sub Command2_Click() Dim hHandle As LongWinWinlldown (hHandle , SW_NORMAL) End Sub
Χρησιμοποιώντας το κουμπί Command1, τα εικονίδια κρύβονται, Command2 - εμφανίζονται.
Αυτό είναι όλο για μένα, ελπίζω τα παραπάνω παραδείγματα να σας φανούν χρήσιμα, αντίο!