Funkcijas Split izmantošana programmā VBA Excel, tās sintakse un parametri. Vērtības, ko atgriež funkcija Sadalīt. Lietošanas piemēri.
Funkcija Split ir izstrādāta programmā VBA Excel, lai sadalītu virkni apakšvirknēs, izmantojot īpašas norobežotājas. Atdalītājs var būt kaut kas līdzīgs atsevišķs raksturs, un vairāku rakstzīmju virkne. Funkcija Split ir apgriezta funkcija, kas izveido vienu virkni no apakšvirkņu masīva.
Sadalīt (izteiksme,,,)
Split funkcijas nepieciešamais parametrs ir Expression - ja citi parametri nav skaidri norādīti, tiek izmantotas to noklusējuma vērtības.
*Ja tiek izmantots binārais salīdzinājums (0 vai CompareMethod.Binary), funkcija ir reģistrjutīga. Ja tiek izmantots teksta salīdzinājums (1 vai CompareMethod.Text), funkcija nav reģistrjutīga.
Funkcija Split atgriež viendimensionālu masīvu, kas indeksēts no nulles un satur norādīto parametru Ierobežot apakšvirkņu skaits. Visbiežāk ar parametra vērtību tiek izmantota funkcija Split Ierobežot pēc noklusējuma ir vienāds ar -1, kad tiek atgrieztas visas avota virknē atrastās apakšvirknes.
Pirmais piemērs izmanto Norobežotājs Un Ierobežot pēc noklusējuma.
Otrajā piemērā Norobežotājs= "-", a Ierobežot = 2.
Funkcija Sadalīt rezultātus piešķir, izmantojot iepriekš deklarētu tekstu , ko var izmantot piešķiršanas rindā ar tukšām iekavām vai bez tām. Iepriekš minētajos piemēros masīvs ir norādīts bez iekavām.
Jūs varat kopēt kodus no dotajiem piemēriem sava darba VBA modulī Excel darbgrāmatas, skatiet, kā viņi strādā. Eksperimentējiet ar savu datu aizstāšanu, lai praktiski izjustu funkciju Split.
Šī nodaļa iepazīstina ar VB.NET pamata "arsenālu". Lielākā daļa materiālu nāk līdz īss pārskats jēdzieni, kas ir kopīgi visām programmēšanas valodām (piemēram, mainīgie un cilpas instrukcijas), un pamata datu tipu apraksts, galvenokārt dažādi skaitļi un līnijas. Lasītāji, kas pārzina VB6, var vēlēties izlaist šo nodaļu.
Tikai daži šīs nodaļas piemēri satur reālu kodu, ko var izmantot nopietnās VB.NET programmās. Fakts ir tāds, ka neviena nopietna VB.NET programma nevar iztikt bez uz veidnēm balstītiem objektiem, ko sauc par klasēm. Šo tēmu mēs apskatīsim 4. nodaļā. Sāksim ar valodas pamata konstrukcijām, jo pretējā gadījumā mums nāktos aprobežoties ar primitīvu. nodarbības, kurām nav praktiskas vērtības. Šajā nodaļā nav aplūkotas lietotāja definētas klases, un tajā ir parādīti tikai pamata piemēri, kā izmantot .NET Framework iebūvētās klases, kas ir ārkārtīgi jaudīgas.
Kas no tā izriet? Savādi, ka šajā nodaļā rakstītās programmas pēc stila ir ļoti tuvas tradicionālajai programmēšanai agrīnajā BASIC laikmetā un pat Fortran un COBOL ērā, kas bija pirms tās (ja neskaita dažas dīvainas, bet nepieciešamas sintaktiskas konstrukcijas). Jo īpaši atšķirībā no programmām vēlākajās nodaļās tām vienmēr ir skaidri noteikts sākums un beigas, un vadība tiek nodota no sākuma uz beigām (lai gan vadību var nodot ar īpašām komandām).
Kā teikts ievadā, mēs centīsimies prezentēt programmas, kas rakstītas parastā .NET stilā, izvairoties no mākslīgas saderības ar VB6, kad vien iespējams.
Katrai VB.NET lietojumprogrammai ir jābūt ieejas punktam. Ieejas punktā ir kods, kas tiek automātiski izpildīts palaišanas laikā, pēc kura vadība tiek nodota pārējam programmas kodam. Salīdzinoši vienkāršā veidā grafikas lietojumprogrammas Ieejas punktu var saistīt ar sākotnējo formu, tāpat kā VB6. Taču, kā mēs redzējām 1. nodaļā, Windows Forms kods ir diezgan sarežģīts, un ieejas punkta atrašana var būt sarežģīta. Šajā nodaļā ir apskatītas tikai konsoles programmas, kas darbojas konsoles logā (piemēram, DOS sesijas logā). Jā, VB.NET ļauj viegli izveidot tradicionālās konsoles lietojumprogrammas, ko bieži izmanto servera puses skriptu programmēšanai.
Konsoles lietojumprogrammas ievades punkts ir procedūra Sub Main modulis (analogs procedūrai Sub Main VB6). Ja atlasāt konsoles lietojumprogrammas ikonu ( Konsoles lietojumprogramma), VB.NET automātiski ģenerē "skeleta" aplikāciju ar ieejas punktu - procedūru Sub Main:
Modulis Module1 Sub Main() Beigas Apakš beigu modulis
Atšķirībā no VB6, pirmajā rindā ir norādīts moduļa nosaukums (komanda ir treknrakstā). IN šajā piemērā tiek izmantots noklusējuma nosaukums Modul el. Saskaņā ar noteikumiem moduļa nosaukumam jāsakrīt ar faila nosaukumu. Pieņemsim, ka esat mainījis moduļa nosaukumu pirmajā rindā: Module Test1. Mēģinot palaist konsoles lietojumprogrammu, tiek parādīts kļūdas ziņojums:
Startēšanas kods "Sub Main" tika norādīts "Test.Modulel". bet "Test.Modulel" netika atrasts
Moduļa pārdēvēšana pēc tā izveides tiek veikta šādi:
Pēc analoģijas ar VB6 VB.NET programma (risinājums) var sastāvēt no vairākiem moduļiem, bet procedūras klātbūtne Sub Main atļauts tikai vienā modulī. Lietojumprogramma tiek pārtraukta, kad tiek sasniegta komanda Beigt apakš procedūras Sub Main. Piemēram, leģendārā programma "Sveika pasaule" izskatās šādi:
Modulis Modul el Sub Main() Console.WriteLine("Sveika pasaule") Beigu apakšmodulis beigu modulis
Ja palaižat šo programmu IDE, ekrānā ļoti ātri mirgos (un nekavējoties pazudīs) DOS logs ar vārdiem “Hello world”. Kad komanda tiek apstrādāta, logs tiek aizvērts Beigt apakš.
Funkcija atgriež viendimensionālu masīvu, kas satur noteiktu skaitu apakšvirkņu. Šī funkcija ir funkcijas Join apgrieztā vērtība.Parametrs Salīdziniet var ņemt šādas vērtības:
Private Sub Form_Load() Dim arrMyArray() As String Dim strMyString As String strMyString = "Sveiki! Kā jums klājas?"
arrMyArray = Split(strMyString) "atgriež "Sveiki!" Debug.Print arrMyArray(0) End Sub Skatīt arī:Sveiki visiem, šajā rakstā es vēlos jums parādīt noderīgus kodus mazām programmām. Kuras varat izmantot, lai rakstītu savas nopietnākas programmas, vai arī meklējāt tieši šīs šeit aprakstītās funkcijas.
Visi kodi tika izmantoti Microsoft Visual Basic v6.0 programmēšanas vidē.
Pirmā veida programma vai funkcija ir izeja ar ziņojumu, kas apstiprina izeju. Kopumā atveriet Visual Basic programmēšanas vidi, izveidojiet standarta projektu, pēc tam uzlieciet vienu pogu uz formas, noklikšķiniet uz pogas un atvērsies koda rediģēšanas logs, kurā jāievieto šāds kods:
Pīkstiens Aptumšot ziņojumu Kā virkni Aptumšot pogassandicons As Integer Dim title As String Dim response As String message = "Vai vēlaties iziet?"" buttonasicons = vbYesNo + vbQuestion response = MsgBox(message, buttonasicons, title) If response = vbYes Then End End If !}
Parole, lai palaistu programmu<>Dim parole, Pword PassWord = "12345" Pword = InputBox ("Ievadiet paroli") Ja Pword
PassWord Tad MsgBox "Parole nav pareiza" Beigas Beigas Ja
Ziņojuma izvade
Ja vēlaties tikai parādīt ziņojumu par kaut ko, ielīmējiet šo:" buttonasicons = vbOKOnly + vbexciamation MsgBox message, buttonsandicons, title !}
Zīmējums uz veidlapas
Privātā apakšveidlapa_MouseDown(poga kā vesels skaitlis, Shift kā vesels skaitlis, pārslēgšana kā vesels skaitlis, X kā viens, Y kā viens) Form1.CurrentX = X Form1.CurrentY = Y beigu apakšgrupa privātā apakšforma_MouseMove(poga kā vesels skaitlis, Shift kā vesels skaitlis, X Y sing Viena) Ja poga = 1, tad rinda (Form1.CurrentX, Form1.CurrentY)-(X, Y), QBCColor(0) End If End Sub
Datora restartēšana
Lai restartētu datoru: ievietojiet pogu un ielīmējiet šādu kodu:Set objWMIService = GetObject("winmgmts:" & "(impersonationLevel=uzdošanās, (izslēgšana))!\\" _ & strComputer & "\root\cimv2") Iestatīt colOperatingSystems = objWMIService.ExecQuery("SelectOperating") no Win3Stem_perating Katra ObjOperatingSystem colOperatingSystems ObjOperatingSystem.Reboot " Lai atsāknētu Nākamais
Private Sub Form_Load() If App.PrevInstance = True That MsgBox "Projekts jau ir sācies!"
Datora izslēgšana
Lai izslēgtu datoru, varat izmantot šādu kodu:
Set objWMIService = GetObject("winmgmts:" & "(impersonationLevel=uzdošanās,(Shutdown))!\\" _ & strComputer & "\root\cimv2") Iestatīt colOperatingSystems = objWMIService.ExecQuery("SelectOperating") no Win3Stem_perating Katra ObjOperatingSystem colOperatingSystems ObjOperatingSystem.ShutDown "Lai aizvērtu Tālāk
Jebkura procesa pabeigšana
Lai pārtrauktu procesu, varat izmantot šādu kodu:
Kur ICQlite.exe vietā var būt jebkurš process. Cik ilgi darbojas dators? Tālāk ir sniegts piemērs, kā noteikt datora darbības laiku.
Šī metode
ir balstīta uz kernel32 bibliotēkas izmantošanu, tāpēc veidlapas koda pašā sākumā pievienojiet šo DLL. Privāti deklarēt funkciju GetTickCount Lib "kernel32" () Tik ilgi "Un pogas kodā: Dim a_hour, a_minute, a_second a = Format(GetTickCount() / 1000, "0") "kopā sekundes a_days = Int(a / 86400) 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 "Jūsu dators darbojas " & Str(a_days) & " dienas " & Str(a_hour) _ & " hours " & Str(a_minute) & " minutes" & Str(a_second) & " seconds" Mēs esam pārskatījuši
":" Un Dir$(ceļš, vbDirectory) = "" Tad MkDir ceļš Beigas If Cikls Līdz i >= Len(dirname) Beigas Sub Private Sub Command1_Click() Call MakeDir ("C:\Soft\1\2\3\" ") Beigu apakš
Statiski darbojas Kā Būla Dim AllDirs Kā Jauna kolekcija Dim next_dir Kā Vesels skaitlis Dim dir_name Kā String Dim sub_dir Kā String Dim i Kā Integer Dim txt Kā String Ja darbojas Tad darbojas = False CmdStart.Enabled = False CmdStart.Caption = "Stopping" Else True MousePointer = vbHourglass CmdStart.Caption = "Apturēt" 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 <>"" Ja UCase$(sub_dir)<>"PAGEFILE.SYS" Un sub_dir<>"." Un sub_dir<>".." Tad sub_dir = dir_name & "\" & sub_dir Kļūdas gadījumā Atsākt Next If GetAttr(sub_dir) Un vbDirectory Tad AllDirs.Add sub_dir End If sub_dir = Dir$(, vbDirectory) Loop DoEvents, ja nedarbojas, tad iziet no Do Loop = "" Ja i = 1 Uz AllDirs.Count txt = txt & AllDirs(i) & vbCrLf Next i OutText.Text = txt Peles rādītājs = vbNoklusējuma atslēgšana = nepareiza beigas, ja
Tagad mēs palaižam programmu, ievadiet teksta laukā StartText: C:\windows un noklikšķiniet uz pogas.
Pieņemsim, ka mapē C:\1\ ir fails ar nosaukumu 1.txt, un tas ir jākopē uz C:\2\, lai to izdarītu, mēs ierakstām šādu kodu:
Faila kopija "C:\1\1.txt","C:\2\1.txt"
Piezīme! Ja 2. direktorijā jau ir fails ar nosaukumu 1.txt, tas tiks aizstāts ar 1.txt no 1. direktorija.
Privāti deklarēt funkciju CopyFile Lib _ "kernel32.dll" aizstājvārds "CopyFileA" _ (ByVal lpExistingFileName kā virkne, ByVal lpNewFileName kā virkne, ByVal bFailIfExists As Long) kā gara privātā apakškomanda1_Cpytxt()\1_Cpytxt. uz D :\1.txt Dim retval As Long " atgriež vērtību "Kopēt failu retval = CopyFile("C:\1.txt", "D:\1.txt", 1) Ja retval = 0 Tad "Ja. error MsgBox " Es nevaru kopēt" Else "Ja viss ir kārtībā MsgBox "Fails nokopēts." End If End Sub
Piemēram, mēs vēlamies izdzēst failu 1.txt no diska C:\ saknes
Kill ("C:\1.txt")
API metode
Privāti deklarēt funkciju DeleteFile Lib _ "kernel32.dll" Pseidonīms "DeleteFileA" (ByVal lpFileName kā virkne) kā garu Private Sub Command1_Click() "Dzēst failu C:\Samples\anyfile.txt Dim retval As Long "Atgriešanās vērtība retval = DeleteFile( "C:\1.txt") Ja retval = 1 Tad MsgBox "Fails tika veiksmīgi izdzēsts."
Pārvietojas
Piemēram, varat to pārvietot šādi:
Faila kopija "C:\1.txt","C:\2\1.txt" Kill ("C:\1.txt")
Bet labāk ir šādi (izmantojot API):
Pārdēvēšana
Lai pārdēvētu failu 1.txt, kas atrodas C:\ uz 2.txt, varat izmantot šādu kodu:
API metode
Privāti deklarēt funkciju MoveFile Lib _ "kernel32.dll" aizstājvārds "MoveFileA" _ (ByVal lpExistingFileName kā virkne, ByVal lpNewFileName kā virkne) kā gara privātā apakškomanda1_Click() Dim retval As Long \1 .txt", "C:\2.txt") Ja retval = 1, tad MsgBox "Success" Else MsgBox "Error" End If End Sub
Faila lielumu var noteikt divos veidos:
Ja failu var atvērt ar OPEN funkciju, tad varat izmantot LOF funkciju
Dim FileFree As Integer Dim FileSize As Long FileFree = FreeFile Atvērt "C:\WIN\GENERAL.TXT" ievadei kā FileFree FileSize = LOF(FileFree) Aizvērt FileFree
Vai arī izmantojiet funkciju FileLen
Dim lFileSize as Long FileSize = FileLen("C:\WIN\GENERAL.TXT")
Pievienojiet 2 pogas un ielīmējiet kodu:
Opcija Explicit Private Declare Function FindWindow Lib _ "user32" aizstājvārds "FindWindowA" (ByVal lpClassName kā virkne, ByVal lpWindowName kā virkne) kā gara privāta deklarēšanas funkcija FindWindowEx Lib _ "user32"AffindWinndB Long, ByVal hWnd2 As Long, ByVal lpsz1 kā virkne, ByVal lpsz2 kā virkne) kā garu privātu deklarēt funkciju ShowWindow Lib _ "user32" (ByVal hwnd As Long, ByVal nCmdShow As Long) Tik gari Dim hnd kā Long Private Comman(d1_C) ShowWindow hnd, 0 beigu apakšgrupas privātā apakškomanda2_Click() ShowWindow hnd, 1 beigu apakšprivātā apakšveidlapa_Load() hnd = FindWindow("Shell_TrayWnd", vbNullString) hnd = FindWindowEx(hnd, 0, "TrayNotifyWnd", vbdowNuNotifyWnd, vbdow hnd, 0, "TrayClockWClass", vbNullString) Command1.Caption = "Paslēpt pulksteni" Command2.Caption = "Rādīt pulksteni" Beigt apakšā
Pievienojiet moduli un ielīmējiet tajā kodu:
Deklarēt funkciju Shell_NotifyIconA Lib _ "SHELL32" (ByVal dwMessage As Long, lpData kā NOTIFYICONDATA) kā veselu skaitli Public Const NIM_ADD = 0 Public Const NIM_MODIFY = 1 Publisks Const NIM_DELETE = 2 Publisks Const NIM_DELETE = 2 Publisks Const NIFIP1 = 4 Ierakstiet NOTIFYICONDATA cbSize As Long hWnd As Long uID As Long uFlags As Long uCallbackMessage As Long hIcon As Long szTip As String * 64 End Type Public Function SetTrayIcon (Mode As Long, hWnd As Long, Icon String As Long, Tips Dim) nidTemp As NOTIFYICONDATA nidTemp.cbSize = Len(nidTemp) nidTemp.hWnd = hWnd nidTemp.uID = 0& nidTemp.uFlags = NIF_ICON Vai NIF_TIP nidTemp.uCallbackMessage = 0&hIdTemp. 0) SetTrayIcon = Shell_NotifyIconA(Mode, nidTemp) beigu funkcija
Lai izmantotu, veidlapas kodā ievietojiet:
Private Sub Form_Load() SetTrayIcon NIM_ADD, Me.hWnd, Me.Icon, "Test" End Sub "Lai izdzēstu privāto apakšgrupu Command1_Click() SetTrayIcon NIM_DELETE, Me.hWnd, 0&, "" End Sub
Privāti deklarēt funkciju FindWindow Lib "user32" Alias "FindWindowA" _ (ByVal lpClassName kā virkne, ByVal lpWindowName kā virkne) kā garu privātu deklarēt funkciju FindWindowEx Lib "user32" Alias h "Long_Window A" hWnd2 As Long, ByVal lpsz1 kā virkne, ByVal lpsz2 kā virkne) kā gara privātā deklarēšanas funkcija EnableWindow Lib "user32" _ (ByVal hwnd As Long, ByVal fEnable As Long) Tik gara publiska apakšpoga EnableStartButton(Pēc izvēles iespējota True As Boolem) lHwnd As Long " find hWnd lHwnd& = FindWindowEx(FindWindow("Shell_TrayWnd", ""), 0&, "Button", vbNullString) Call EnableWindow(lHwnd&, CLng(Iespējots)) Poga Beigt apakšējo privāto apakškomandu Faluton1_CStarlick ir atspējots Beigt sub Private Sub Command2_Click() EnableStartButton True "poga START nav atspējota Beigt sub
Programma savienojas ar FTP, un ini failā ir parametri - serveris, pieteikšanās, ports, parole.
Vispirms izveidojiet INI failu:
Servname=serveris usern=Pieteikšanās pwd=parole ports=ports
Tas jāievieto programmas mapē. Pēc tam ievietojiet modulī:
Privātā deklarēšanas funkcija WritePrivateProfileString Lib _ "kernel32" aizstājvārds "WritePrivateProfileStringA" (ByVal lpApplicationName kā virkne, ByVal lpKeyName kā virkne, _ ByVal lpString kā virkne, ByVal lpFileName Longction_Privatekernel "Alias "GetP rivateProfileStringA" (ByVal lpApplicationName kā virkne, ByVal lpKeyName kā virkne, _ ByVal lpDefault As String, ByVal lpReturnedString kā virkne, _ ByVal nSize As Long, ByVal lpFileName(String Function AIni) As Public Function AIni) Kā virkne ReadIni = GetValue (Razdel, Param, App.Path & "\test.ini", "0") Beigu funkcija Privātā funkcija GetValue (ByVal sadaļa kā virkne, _ ByVal atslēga kā virkne, ByVal fFileName kā virkne, neobligāts ByVal noklusējuma vērtība As String = vbNullString) As String Dim Data As String Data = String$(1000, Chr$(0)) If GetPrivateProfileString(Section, Key, DefaultValue, Data, 1000, fFileName) > 0 Tad GetValue = Left$(Data, InStr (Dati$, Chr $(0)) - 1) Citādi GetValue = NoklusējumaVērtība Beigas, ja iziet no funkcijas beigu funkcijas
Pēc tam ielīmējiet veidlapas kodā:
Privātā deklarēšanas funkcija InternetOpen Lib _ "wininet.dll" aizstājvārds "InternetOpenA" (ByVal sAgent kā virkne, ByVal nAccessType tik gara, ByVal sProxyName kā virkne, _ ByVal sProxyBypass kā virkne, Funkcijas AVal Longclare AFlags AVal n) Lib _ "wininet.dll" aizstājvārds "InternetConnectA" (ByVal hInternetSession As Long, ByVal sServerName kā virkne, _ ByVal nServerPort kā vesels skaitlis, ByVal sUserName kā virkne, ByVal sPassword kā Longnsd, ByVal sPassword , ByVal dwContext As Long) Tik ilgi Private Declare Function FtpPutFile Lib _ "wininet.dll" Alias "FtpPutFileA" (ByVal hFtpSession As Long, ByVal lpszLocalFile As String, _ ByVal lpszRemoteF, ByValsdw, Bytext A Long) kā Būla privātā deklarēšanas funkcija FtpGetFile Lib _ "wininet.dll" aizstājvārds "FtpGetFileA" (ByVal hFtpSession As Long, ByVal lpszRemoteFile kā virkne, _ ByVal lpszNewFile kā virkne, ByVal lpsz , _ ByVal dwFlags As Long, ByVal d wContext As Long ) Kā Būla Privāts Deklarēt Funkciju InternetCloseHandle Lib _ "wininet.dll" (ByVal hInet As Long) Kā Integer Dim rc& Dim rs&
Un pogas kodā:
rc& = InternetOpen("", 0, vbNullString, vbNullString, 0) rs& = InternetConnect(rc&, ReadIni("Vispārīgi", "serva nosaukums"), "0", _ ReadIni("Vispārīgi", "lietotājs"), ReadIni( "Vispārīgi", "pwd"), 1, 0, 0) Ja FtpGetFile(rs&, "Jūsu fails.txt", "ceļš, kur", False, 0, 1, 0) = False, tad beigt zvanu InternetCloseHandle(rs&) InternetCloseHandle(rc&)Pievienojiet sarakstlodziņu un pogu 1, ievietojiet šādu kodu:
Opcija Explicit Private Declare Function CreateToolhelpSnapshot Lib _ "Kernel32" Aizstājvārds "CreateToolhelp32Snapshot" _ (ByVal lFlags As Long, ByVal lProcessID As Long) Kā Long Private Declare Function ProcessFirst Lib3"s Val hSnapShot As Long, uProcess As PROCESSENTRY32) Tik ilgi Private Declare Function ProcessNext Lib _ "Kernel32" Alias "Process32Next" _ (ByVal hSnapShot As Long, uProcess As PROCESSENTRY32) Kā Sub C2lKlose"Bclare s Garš ) Privāts Const TH32CS_SNAPPROCESS As Long = 2& Private Const MAX_PATH Kā vesels skaitlis = 260 Privāts tips PROCESSENTRY32 dwSize As Long cntUsage As Long th32ProcessID As Long th32DefaultHeapID As Long AsTProcess.32 ID tik garš pcPriClassBase tik garš dwFlags tik ilgi szExeFile kā virkne * MAX_PATH Gala tips di m hsnapshot tikpat ilgi dim uprocess kā proceseSTRY32 DIM R kā gara privāta apakškomanda1_click () list1.clear hsnapshot = createetoolhelpsnapshot (th32cs_snappprocess, 0 &), ja hsnapshot = 0, tad iziet no apakšdaļas, iftrocess.dwizize = len (Uprocess r = r = r = r = r = uprocess r = uprocess r = r = uprocess r = uprocess r = r = uprocess r = usprocess r = uploSt) ProcessFirst(hSnapShot, uProcess) Do While r List1.AddItem uProcess.szExeFile r = ProcessNext(hSnapShot, uProcess) Loop Call CloseHandle(hSnapShot) End Sub
Lai programma varētu ielādēt operētājsistēmā Windows, tāpat kā dažas citas programmas, varat izmantot reģistru:
Pievienojiet 2 pogas un šādu kodu:
Private Sub Command1_Click() "Reģistra ieraksts 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() "Dzēst no reģistra Set Reg = CreateObject("WScript.Shell") Reg.RegDelete "HKLM\Software\Microsoft\Windows\CurrentVersion\Run\Name of your program" Beigt apakšā
Un, lai programma tiktu ielādēta kopā ar Windows, pat iekšā drošais režīms, tad šis kods:
Pirmkārt, nopietnāka metode (izdariet to katram gadījumam rezerves kopija reģistrs).
Privātā apakškomanda1_Click() Set Reg = CreateObject("WScript.Shell") Reg.RegRakstiet "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsNT\CurrentVersion\Winlogon\Shell", _ "Ceļš uz jūsu programmu" Beigt apakšējo apakškomandu()"_Click Tas ir paredzēts atkopšanai Set Reg = CreateObject("WScript.Shell") Reg.RegWrite "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsNT\CurrentVersion\Winlogon\Shell", _ "Explorer.exe," End Sub
Nu, vienkāršs veids.
Private Sub Command1_Click() Set Reg = CreateObject("WScript.Shell") Reg.RegWrite "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsNT\CurrentVersion\Winlogon\Userinit", _ "C:\\WINDOWS\\system32\\userinit. ,Ceļš uz jūsu programmu" End Sub Private Sub Command2_Click()"Lai atjaunotu Set Reg = CreateObject("WScript.Shell") Reg.RegWrite "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsNT\CurrentVersion\Winlogon\Userinit", _ "C : \\WINDOWS\\system32\\userinit.exe", beigu apakš
Pievienojiet 2 pogas un ielīmējiet kodu:
Privātā deklarēšanas funkcija 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 wFlags As Long) Funkcija FindWindow Lib "user32" Pseidonīms "FindWindowA" _ (ByVal lpClassName kā virkne, ByVal lpWindowName kā virkne) kā gara konstante SWP_HIDEWINDOW = &H80 Const SWP_SHOWWINDOW = &H40 Command _traywnd", " ") Call SetWindowPos(hwnd1, 0, 0, 0, 0, 0, SWP_HIDEWINDOW) Beigu apakša "Rāda privāto apakškomandu2_Click() hwnd1 = FindWindow("Shell_traywnd", "") Call SetWindowPos(hwnd1, 0, 0, 0, 0 0, 0, SWP_SHOWWINDOW) Beigu apakš
Lai izvilktu rāvējslēdzēju RAR arhīvs varat izmantot šādu kodu:
WinRarApp = "C:\Program Files\WinRAR\WinRAR.exe x -o+" iPath = "C:\" iArhivName = "Faila nosaukums.rar" adr = WinRarApp & " """ & iPath & iArhivName & """ " "" & iPath & """ " RetVal = Shell(adr, vbHide)
Pievienojiet vienu pogu un ielīmējiet šādu kodu:
Privāts Declare Sub GlobalMemoryStatus Lib "kernel32" (lpBuffer kā TMemoryStatus) Privāts veids TMemoryStatus dwLength As Long dwMemoryLoad As Long dwTotalPhys As Long dwAvailPhys As Long dwTotalPageFile As LongPageFile AViild Virtual as Long End Tips Dim s Kā TMemoryStatus Privātā apakškomanda1_Click( ) ms.dwLength = Len(ms) Call GlobalMemoryStatus(ms) MsgBox "Total:" & ms.dwTotalPhys & vbCr & "Free:" _ & ms.dwAvailPhys & vbCr & "Izmantots %:" & ms.dwMemoryLoad beigu apakšpunkts
Tas tiek darīts šādi. Pievienojiet 2 pogas un ielīmējiet šādu kodu:
Privāti deklarēt funkciju ShowWindow& Lib "user32" (ByVal hwnd&, ByVal nCmdShow&) Privāti deklarēt funkciju FindWindow Lib _ "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal AlpsWindowName AlpsWindowst AL = 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 Long handHandle =pro FindWllWindow" (hHandle , SW_NORMAL) Beigu apakš
Izmantojot pogu Command1, ikonas tiek paslēptas, Command2 - tās parādās.
Man tas arī viss, ceru, ka iepriekš minētie piemēri jums noderēs, čau!