Vb6 exemple de programe cu split. Tutorial ilustrat despre Visual Basic.NET. Exemple de lucru cu foldere

Salutare tuturor, in acest articol vreau sa va arat coduri utile pentru programe mici. Pe care le puteți folosi pentru a vă scrie propriile programe mai serioase sau ați căutat exact aceste funcții care sunt descrise aici.

Toate codurile au fost utilizate în mediul de programare Microsoft Visual Basic v6.0.

Ieșiți cu confirmare

Primul tip de program, sau funcție, este o ieșire cu un mesaj care confirmă ieșirea. În general, deschideți mediul de programare Visual Basic, creați un proiect standard, apoi plasați un buton pe formular, faceți clic pe butonul și se va deschide fereastra de editare a codului și trebuie să introduceți următorul cod acolo:

Beep Dim mesaj Ca șir Dim butoane și pictograme Ca Integer Dim titlu Ca șir Dim răspuns Ca șir mesaj = "Vrei să ieși?" titlu = "Ieșire" buttonasicons = vbYesNo + vbQuestion response = MsgBox(message, buttonasicons, title) If response = vbYes Then End End If !}

Parola pentru a porni programul

Dim Password, Pword Password = "12345" Pword = InputBox ("Introduceți parola") Dacă Pword<>Parola Apoi MsgBox „Parola nu este corectă” Sfârșit Sfârșit dacă

Unde, 12345 este parola pentru a porni programul. Dar acest cod poate fi folosit oriunde doriți.

Ieșire mesaj

Dacă doriți doar să afișați un mesaj pentru ceva, atunci lipiți acesta:

Beep Dim mesaj Ca șir Dim butoane și pictograme Ca Integer Dim titlu As String mesaj = „Mesaj” titlu = „Message" buttonasicons = vbOKOnly + vbexciamation MsgBox message, buttonsandicons, title !}

Desen pe formular

Private Sub Form_MouseDown(Button Ca 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), QBColor(0) End If End Sub

Puteți schimba culoarea folosind parametrul QBColor(0), adică În loc de 0, pune un alt număr.

Repornirea computerului

Pentru a reporni computerul: plasați butonul și inserați următorul cod:

Dim strComputer As String strComputer = "." Set objWMIService = GetObject("winmgmts:" & "(impersonationLevel=impersonate, (Shutdown))!\\" _ & strComputer & "\root\cimv2") Set colOperatingSystems = objWMIService.ExecQuery("Select * din Win32_OperatingSystem") Fiecare ObjOperatingSystem din colOperatingSystems ObjOperatingSystem.Reboot " Pentru a reporni Următorul

Lansarea unui program într-o singură copie

Următorul exemplu vă va ajuta să faceți ca programul să ruleze o singură dată, de exemplu. dacă este repornit, va afișa un mesaj corespunzător. Introduceți următoarele în codul formularului:

Private Sub Form_Load() If App.PrevInstance = True Then MsgBox "Proiectul a început deja!" End End If

Oprirea calculatorului

Pentru a opri computerul, puteți folosi următorul cod:

Dim strComputer As String strComputer = "." Set objWMIService = GetObject("winmgmts:" & "(impersonationLevel=impersonate,(Shutdown))!\\" _ & strComputer & "\root\cimv2") Set colOperatingSystems = objWMIService.ExecQuery("Select * din Win32_OperatingSystem") Fiecare ObjOperatingSystem din colOperatingSystems ObjOperatingSystem.ShutDown „Pentru a închide Următorul

Încheierea oricărui proces

Pentru a încheia procesul, puteți utiliza următorul cod:

Shell „Cmd /x/c taskkill /f /im ICQlite.exe”, vbvhite

Unde, în loc de ICQlite.exe, poate exista orice proces.

Cât durează computerul?

Mai jos este un exemplu despre cum puteți determina timpul de funcționare al computerului. Această metodă se bazează pe utilizarea bibliotecii kernel32, așa că la începutul codului formularului, conectați acest DLL.

Private Declare Funcție GetTickCount Lib "kernel32" () As Long "Și în codul butonului: Dim a_hour, a_minute, a_second a = Format(GetTickCount() / 1000, "0") "total secunde 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 "Computerul dvs. rulează" & Str(a_days) & " zile " & Str(a_hour) _ & " ore " & Str(a_minute) & " minute" & Str(a_second) & " secunde"

Ne-am uitat la funcții simple care pot fi folosite aproape oriunde. Acum să ne uităm la exemple mai serioase și ele vă pot ajuta foarte mult să vă scrieți proiectele mari.

Exemple de lucru cu foldere

Ștergeți directorul

Private Declare Funcție RemoveDirectory& Lib _ "kernel32" Alias ​​​​"RemoveDirectoryA" (ByVal lpPathName As String) "Eliminarea directorului (gol!) PathName$ = "D:\t" cod& = RemoveDirectory(PathName) Dacă codul& = 0 Apoi „Eroare eliminând directorul Else „Director șters End If

Creați director

Sub MakeDir(dirname As String) Dim i As Long, path As String Do i = InStr(i + 1, dirname & "\", "\") calea = Left$(dirname, i - 1) If Right$(cale , 1)<>":" Și Dir$(path, vbDirectory) = "" Apoi calea MkDir End If Loop Until I >= Len(dirname) End Sub Private Sub Command1_Click() Call MakeDir("C:\Soft\1\2\3\ ") End Sub

Listați toate folderele cu subdirectoare

Adăugăm 2 câmpuri de text și un buton la formular, numele primului câmp de text este StartText, numele celui de-al doilea câmp de text este OutText. Proprietate multilinie = true, numele butonului = CmdStart

Rulare statică Ca Boolean Dim AllDirs As New Collection Dim next_dir As Integer Dim dir_name As String Dim sub_dir As String Dim i Ca Integer Dim txt As String Dacă rulează Then running = False CmdStart.Enabled = False CmdStart.Caption = "Oprire" Altfel = 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 <>"" Dacă UCase$(sub_dir)<>„PAGEFILE.SYS” și sub_dir<>"." Și sub_dir<>".." Apoi sub_dir = dir_name & "\" & sub_dir La eroare Reluați Următorul Dacă GetAttr(sub_dir) Și vbDirectory Apoi AllDirs.Add sub_dir Sfârșit Dacă sub_dir = Dir$(, vbDirectory) Buclă DoEvents Dacă nu rulează Apoi Ieșire Do Loop txt = "" Pentru i = 1 To AllDirs.Count txt = txt & AllDirs(i) & vbCrLf Next i OutText.Text = txt MousePointer = vbDefault unning = False End If

Acum lansăm programul, scriem în câmpul text StartText: C:\windows și facem clic pe butonul.

Dimensiunea directorului

Const MAX_PATH = 260 Tip privat FILETIME dwLowDateTime As Long dwHighDateTime Ca Long End Tip Private WIN32_FIND_DATA dwFileAttributes As Long ftCreationTime As FILETIME ftLastAccessTime As FILETIME ftLastWriteTime Ca FILETIME Ca FILETIME Ca LongReserved Ca 1 As Long cFileName As String * MAX_PATH cAlternate As String * 14 End Type Private Declare Funcție FindFirstFile Lib _ "kernel32" Alias ​​​​"FindFirstFileA" (ByVal lpFileName As String, lpFindFileData As WIN32_FIND_DATA) As Long Private Declare Funcție FindNextFile Lib _ "kernelFile3"Next ​​File32" Alias Long, lpFindFile Data As Long ca WIN32_FIND_DATA) As Long Private Declare Function FindClose Lib _ "kernel32" (ByVal hFindFile As Long) As Long Public Function SizeOf(ByVal DirPath As String) As Double Dim hFind As Long Dim fdata As WIN32_FIND_DATA As Double Dim dbl_D sName As String Dim x As Long La eroare Reluare Next x = GetAttr(DirPath) If Err Then SizeOf = 0: Exit Function If (x And vbDirectory) = vbDirectory Then dblSize = 0 Err.Clear sName = Dir$(EndSlash(DirPath) & „*.* „, vbSystem sau vbHidden sau vbDirectory) Dacă Err.Number = 0, atunci hFind = FindFirstFile(EndSlash(DirPath) & „*.*”, fdata) Dacă hFind = 0, apoi Exit Function Do If (fdata.dwFileAttributes Și vbDirectory) = vbDirectory Apoi sName = Left$(fdata.cFileName, InStr(fdata.cFileName, vbNullChar) - 1) Dacă sName<>"." Și sNume<>„..” Apoi dblSize = dblSize + SizeOf(EndSlash(DirPath) & sName) End If Else dblSize = dblSize + fdata.nFileSizeHigh * 65536 + fdata.nFileSizeLow End If DoEvents Loop While FindNextFile(h)<>0 hFind = FindClose(hFind) End If Else On Error Resume Next dblSize = FileLen(DirPath) End If SizeOf = dblSize End Function Private Function EndSlash(ByVal PathIn As String) As String If Right$(PathIn, 1) = "\" Apoi EndSlash = PathIn Else EndSlash = PathIn & "\" End If End Function Private Sub Form_Load() "Înlocuiește "D:\soft" cu directorul a cărui dimensiune vrei să știi MsgBox SizeOf("D:\soft") / 1000000 End Sub

Exemple de lucru cu fișiere

Copie

Să presupunem că avem un fișier numit 1.txt în folderul C:\1\ și trebuie să-l copiem în C:\2\ pentru a face acest lucru scriem următorul cod:

Copiați fișierul „C:\1\1.txt","C:\2\1.txt”

Notă! Dacă directorul 2 conține deja un fișier numit 1.txt, acesta va fi înlocuit cu 1.txt din directorul 1.

Private Declare Funcție CopyFile Lib _ "kernel32.dll" Alias ​​​​"CopyFileA" _ (ByVal lpExistingFileName As String, ByVal lpNewFileName As String, ByVal bFailIfExists As Long) As Long Private Sub Command1_Click() " Copiați fișierul C:\1. la D :\1.txt. Dim retval As Long " return value "Copiați fișierul retval = CopyFile("C:\1.txt", "D:\1.txt", 1) Dacă retval = 0 Apoi "Dacă eroare MsgBox „Nu se poate copia” Altfel „Dacă totul este în regulă MsgBox „Fișier copiat.” End If End Sub

Îndepărtarea

De exemplu, dorim să ștergem fișierul 1.txt din rădăcina unității C:\

Kill("C:\1.txt")

Metoda API

Private Declare Funcție DeleteFile Lib _ „kernel32.dll” Alias ​​„DeleteFileA” (ByVal lpFileName As String) As Long Private Sub Command1_Click() „Șterge fișierul C:\Samples\anyfile.txt Dim retval As Long „Return value retval = DeleteFile( "C:\1.txt") If retval = 1 Then MsgBox "Fișierul a fost șters cu succes." End Sub

In miscare

Puteți, de exemplu, să o mutați astfel:

Copiați fișierul „C:\1.txt”, „C:\2\1.txt” Kill („C:\1.txt”)

Dar este mai bine așa (prin API):

Private Declare Funcție MoveFile Lib _ "kernel32.dll" Alias ​​​​"MoveFileA" _ (ByVal lpExistingFileName ca șir, ByVal lpNewFileName ca șir) As Long Private Sub Command1_Click() Dim retval As Long "Valoare returnată retval = MoveFile("C: \1 .txt", "C:\2\1.txt") Dacă retval = 1 Apoi MsgBox „Mutat cu succes” Else MsgBox „Eroare” End If End Sub

Redenumire

Pentru a redenumi fișierul 1.txt aflat în C:\ în 2.txt puteți folosi următorul cod:

Copiați fișierul „C:\1.txt”, „C:\2.txt” Kill („C:\1.txt”)

Metoda API

Private Declare Funcție MoveFile Lib _ "kernel32.dll" Alias ​​​​"MoveFileA" _ (ByVal lpExistingFileName As String, ByVal lpNewFileName As String) As Long Private Sub Command1_Click() Dim retval As Long " return value retval = MoveFile("C: \1 .txt", "C:\2.txt") Dacă retval = 1 Apoi MsgBox „Succes” Else MsgBox „Eroare” End If End Sub

Determinați dimensiunea fișierului

Mărimea fișierului poate fi determinată în două moduri:

Dacă fișierul poate fi deschis cu funcția OPEN, atunci puteți utiliza funcția LOF

Dim FileFree As Integer Dim FileSize As Long FileFree = FreeFile Deschideți „C:\WIN\GENERAL.TXT” Pentru introducere ca FileFree FileSize = LOF(FileFree) Închideți FileFree

Sau utilizați funcția FileLen

Dim lFileSize As Long FileSize = FileLen("C:\WIN\GENERAL.TXT")

Ascunde ceasul în mod programat

Adăugați 2 butoane și lipiți codul:

Opțiune Explicit Private Declare Funcție FindWindow Lib _ „user32” Alias ​​„FindWindowA” (ByVal lpClassName As String, ByVal lpWindowName As String) As Long Private Declare Funcție FindWindowEx Lib _ „user32” Alias ​​„FindWindow” (ByVal hWindo) Long, ByVal hWnd2 As Long, ByVal lpsz1 As String, ByVal lpsz2 As String) As Long Private Declare Funcție ShowWindow Lib _ "user32" (ByVal hwnd As Long, ByVal nCmdShow As Long) As Long Dim hnd As Long Private Sub Command1_Click() 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, "TrayNotify = FindWnd", vbExNullWnd) hnd, 0, "TrayClockWClass", vbNullString) Command1.Caption = "Ascunde ceasul" Command2.Caption = "Afișează ceasul" End Sub

Adăugați pictograma tavă

Adăugați un modul și inserați codul în el:

Declarați funcția Shell_NotifyIconA Lib _ "SHELL32" (ByVal dwMessage As Long, lpData As NOTIFYICONDATA) As Integer Public Const NIM_ADD = 0 Public Const NIM_MODIFY = 1 Public Const NIM_DELETE = 2 Public Const NIF_MESSAGE = 2 Public NIF_1 = Const = 2 Public Const Tip 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 As Long, tip ca String) As Long Dim nidTemp As NOTIFYICONDATA nidTemp.cbSize = Len(nidTemp) nidTemp.hWnd = hWnd nidTemp.uID = 0& nidTemp.uFlags = NIF_ICON Sau NIF_TIP nidTemp.uCallbackMessage = 0& nidTemp.uCallbackMessage = 0& nidTemp.hTemp.uID = $Temp.hIcon) =ChTrap. = Shell_NotifyIconA(Mode, nidTemp) Funcție de sfârșit

Pentru a utiliza, introduceți în codul formularului:

Private Sub Form_Load() SetTrayIcon NIM_ADD, Me.hWnd, Me.Icon, "Test" End Sub "Pentru a șterge o subcomandă privată1_Click() SetTrayIcon NIM_DELETE, Me.hWnd, 0&, "" End Sub

Blocarea butonului de pornire

Funcția de declarare privată FindWindow Lib „user32” Alias ​​​​„FindWindowA” _ (ByVal lpClassName ca șir, ByVal lpWindowName ca șir) As Long Funcția de declarare privată FindWindowEx Lib „utilizator32” Alias ​​„FindWindowExA” h ByW_1 (ByVal As Long) hWnd2 As Long, ByVal lpsz1 As Long, ByVal lpsz2 As Long) As Long Private Declare Funcție EnableWindow Lib "user32" _ (ByVal hwnd As Long, ByVal fEnable As Long) As Long Public Sub EnableStartButton (Opțional Activat ca Boolean = True) Dim lHwnd As Long " find hWnd lHwnd& = FindWindowEx(FindWindow("Shell_TrayWnd", ""), 0&, "Button", vbNullString) Apel EnableWindow(lHwnd&, CLng(Enabled)) End Sub Private Sub Command1_Click Button "START() Enable" este dezactivat End Sub Private Sub Command2_Click() EnableStartButton True „Butonul START nu este dezactivat End Sub

Citirea parametrilor din fișierul INI

Programul se conectează la FTP, iar fișierul ini conține parametrii - server, autentificare, port, parolă.

Mai întâi, creați un fișier INI:

Servname=server usern=Autentificare pwd=parolă port=port

Trebuie să fie plasat în folderul programului. Apoi, introduceți în modul:

Private Declare Funcția WritePrivateProfileString Lib _ "kernel32" Alias ​​​​"WritePrivateProfileStringA" (ByVal lpApplicationName ca șir, ByVal lpKeyName ca șir, _ ByVal lpString ca șir, ByVal lpFileName ca șir) ca și Long Lib. ​"GetPriv" ateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As String, _ ByVal lpDefault As String, ByVal lpReturnedString As String, _ ByVal nSize As Long, ByVal lpFileName As String) As Long, PublicRzmdel As String ) As String ReadIni = GetValue (Razdel, Param, App.Path & "\test.ini", "0") End Function Private Function GetValue(ByVal Section As String, _ ByVal Key As String, ByVal fFileName As String, Optional ByVal DefaultValue As String = vbNullString) As String Dim Data As String Data = String$(1000, Chr$(0)) Dacă GetPrivateProfileString(Section, Key, DefaultValue, Data, 1000, fFileName) > 0 Then GetValue = Left$(Data, InStr(Data$, Chr $(0)) - 1) Else GetValue = DefaultValue End If Exit Function End Function

Apoi lipiți în codul formularului:

Funcția de declarare privată InternetOpen Lib _ „wininet.dll” Alias ​​„InternetOpenA” (ByVal sAgent As String, ByVal nAccessType As Long, ByVal sProxyName As String, _ ByVal sProxyBypass As String, ByVal nFlags As Long) As Long Private Declare Function InternetConn Lib _ "wininet.dll" Alias ​​​​"InternetConnectA" (ByVal hInternetSession As Long, ByVal sServerName As String, _ ByVal nServerPort As Integer, ByVal sUserName As String, ByVal sPassword As String, ByVal nService As Long, _ ByVal As Long dwFla , ByVal dwContext As Long) As Long Private Declare Funcție FtpPutFile Lib _ "wininet.dll" Alias ​​​​"FtpPutFileA" (ByVal hFtpSession As Long, ByVal lpszLocalFile As String, _ ByVal lpszRemoteFile As String, ByVal dw As Long As Long, F Long) As Boolean Private Declare Function FtpGetFile Lib _ „wininet.dll” Alias ​​„FtpGetFileA” (ByVal hFtpSession As Long, ByVal lpszRemoteFile As String, _ ByVal lpszNewFile As String, ByVal fFailIfExists, ByVal As Long, ByVal As Long dwFlags As Long, ByVal dw Context As Long ) As Boolean Private Declare Funcție InternetCloseHandle Lib _ "wininet.dll" (ByVal hInet As Long) As Integer Dim rc& Dim rs&

Și în codul butonului:

rc& = InternetOpen("", 0, vbNullString, vbNullString, 0) rs& = InternetConnect(rc&, ReadIni("General", "servname"), "0", _ ReadIni("General", "utilizator"), ReadIni( „General”, „pwd”), 1, 0, 0) Dacă FtpGetFile(rs&, „Fișierul dumneavoastră.txt”, „calea unde”, False, 0, 1, 0) = Fals, atunci Terminați apelul InternetCloseHandle(rs&) Call InternetCloseHandle(rc&)

Lista proceselor care rulează

Adăugați o listă și un buton, introduceți următorul cod:

Opțiune Explicit Private Declare Funcție CreateToolhelpSnapshot Lib _ "Kernel32" Alias ​​​​"CreateToolhelp32Snapshot" _ (ByVal lFlags As Long, ByVal lProcessID As Long) As Long Private Declare Funcție ProcessFirst Lib _ "Kernel32" Alias ​​h32"Snapshot" Cât timp, uProcess ca PROCESSENTRY32) Cât timp Private Declare Funcție ProcessNext Lib _ „Kernel32” Alias ​​​​ „Process32Next” _ (ByVal hSnapShot As Long, uProcess As PROCESSENTRY32) As Long Private Declarare Sub CloseHandle Lib „Kernel As Long32” (Kernel As Long32) ) Private Const TH32CS_SNAPPROCESS As Long = 2& Private Const MAX_PATH Ca Integer = 260 Private Type PROCESSENTRY32 dwSize As Long cntUsage As Long th32ProcessID As Long th32DefaultHeapID As Long th32ModuleID As Long cntBaseC32DsParent As Long As Long th32ProcessID As Long Semnalează ca lungă szExeFile ca șir * MAX_PATH Tip final Dim hsnapshot la fel de mult timp dim, precum procesEntry32 Dim r As long private sub command1_click () list1.clear hsnapshot = createToolhelpsnapshot (th32cs_snapprocess, 0 &) dacă hsnapshot = 0, apoi exit sub end Dacă uprocess.dwsize = len (uprocess) r (hSnapShot, uProcess) Do While r List1.AddItem uProcess.szExeFile r = ProcessNext(hSnapShot, uProcess) Apel în buclă CloseHandle(hSnapShot) End Sub

Punerea unui program la pornire

Pentru ca programul să se încarce cu Windows, ca și alte programe, puteți utiliza registry:

Adăugați 2 butoane și următorul cod:

Private Sub Command1_Click() "Registry entry Set Reg = CreateObject("WScript.Shell") Reg.RegWrite "HKLM\Software\Microsoft\Windows\CurrentVersion\Run\Name of your program", _ "Cale către programul dvs." End Sub Private Sub Command2_Click() "Șterge din registry Set Reg = CreateObject("WScript.Shell") Reg.RegDelete "HKLM\Software\Microsoft\Windows\CurrentVersion\Run\Name of your program" End Sub

Și pentru ca programul să se încarce împreună cu Windows, chiar și în modul sigur, atunci următorul cod:

În primul rând, o metodă mai serioasă (faceți o copie de rezervă a registrului pentru orice eventualitate).

Private Sub Command1_Click() Set Reg = CreateObject("WScript.Shell") Reg.RegWrite "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsNT\CurrentVersion\Winlogon\Shell", _ "Cale către programul dvs." End Sub Private Sub Command2_Click()" Aceasta este pentru recuperare Set Reg = CreateObject("WScript.Shell") Reg.RegWrite "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsNT\CurrentVersion\Winlogon\Shell", _ "Explorer.exe," End Sub

Ei bine, un mod simplu.

Private Sub Command1_Click() Set Reg = CreateObject("WScript.Shell") Reg.RegWrite "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsNT\CurrentVersion\Winlogon\Userinit", _ "C:\\WINDOWS\\system32\\userinit.exe ,Cale către programul dvs." End Sub Private Sub Command2_Click()"Pentru a restaura Set Reg = CreateObject("WScript.Shell") Reg.RegWrite "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsNT\CurrentVersion\Winlogon\Userinit", _ "C: \\WINDOWS\\system32\\userinit.exe," End Sub

Ascunderea barei de activități

Adăugați 2 butoane și lipiți codul:

Private Declare Funcție 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) As Long Private Declare Funcția FindWindow Lib "user32" Alias ​​​​"FindWindowA" _ (ByVal lpClassName ca șir, ByVal lpWindowName ca șir) As Long Const SWP_HIDEWINDOW = &H80 Const SWP_SHOWWINDOW = &H40 "Ascunde Comanda Privată" (H40 "Ascunde Comandă Privată" W1_wndli) ", " ") Apelați SetWindowPos(hwnd1, 0, 0, 0, 0, 0, SWP_HIDEWINDOW) End Sub "Shows Private Sub Command2_Click() hwnd1 = FindWindow("Shell_traywnd", "") Apelați SetWindowPos(hwnd01, 0, , 01, 0 0, 0, SWP_SHOWINDOW) End Sub

Dezarhivați arhiva RAR

Pentru a dezarhiva arhiva RAR, puteți folosi următorul cod:

WinRarApp = "C:\Program Files\WinRAR\WinRAR.exe x -o+" iPath = "C:\" iArhivName = "Nume fișier.rar" adr = WinRarApp & " """ & iPath & iArhivName & """ " "" & iPath & """ " RetVal = Shell(adr, vbHide)

Cât de mult RAM este în computer

Adăugați un buton și inserați următorul cod:

Private Declare Sub GlobalMemoryStatus Lib "kernel32" (lpBuffer As TMemoryStatus) Tip privat TMemoryStatus dwLength As Long dwMemoryLoad As Long dwTotalPhys As Long dwAvailPhys As Long dwTotalPageFile As Long dwAvailAvail As Long ca LongFile As Long dwVital As Long As Long ms Ca TMemoryStatus Private Sub Command1_Click( ) ms.dwLength = Len(ms) Apelați GlobalMemoryStatus(ms) MsgBox „Total:” & ms.dwTotalPhys & vbCr & „Free:” _ & ms.dwAvailPhys & vbCr & „Utilizat în %:” & ms.dwMemoryLoad

Ascunde pictogramele de pe desktop

Acest lucru se face după cum urmează. Adăugați 2 butoane și inserați următorul cod:

Private Declare Funcție Showwindow & Lib "User32" (Byval Hwnd &, Byval NCMDSHOW &) Private Decline Function Lib _ "User" "ALIAS" Findwindowa (BYVAL LPCL LPCL "BYVAL LPCL Assname ca șir, Byval Lpwindowname ca șir) As Long Const Sw_ = 0 conste 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 handle As Long handle(" FindWindow As Long handle(" , vbNullString) Apelați ShowWindow(hHandle , SW_NORMAL) End Sub

Folosind butonul Command1, pictogramele sunt ascunse, Command2 - apar.

Asta e tot pentru mine, sper ca exemplele de mai sus să-ți fie de folos, pa!

Folosind funcția Split în VBA Excel, sintaxa și parametrii acesteia. Valorile returnate de funcția Split. Exemple de utilizare.

Funcția Split este concepută în VBA Excel pentru a împărți un șir în subșiruri folosind marcaje speciale de delimitare. Separatorul poate fi fie un singur caracter, fie un șir de mai multe caractere. Funcția Split este inversul funcției, care creează un șir dintr-o matrice de subșiruri.

Sintaxa funcției

Împărțire (expresie,,,)

Parametrul necesar al funcției Split este Expresie - dacă ceilalți parametri nu sunt specificați în mod explicit, se folosesc valorile lor implicite.

Parametrii funcției

*Dacă se folosește comparația binară (0 sau CompareMethod.Binary), funcția este sensibilă la majuscule și minuscule. Dacă se utilizează o comparație de text (1 sau CompareMethod.Text), funcția nu face distincție între majuscule și minuscule.

Valori returnate

Funcția Split returnează o matrice unidimensională, indexată de la zero, care conține parametrul specificat Limită numărul de subșiruri. Cel mai adesea, funcția Split este utilizată cu valoarea parametrului Limită implicit, egal cu -1, atunci când toate subșirurile găsite în șirul sursă sunt returnate.

Exemplul 1

Sub Test1() Dim a() As String a = Split("vremya ne zhdet") MsgBox a(0) & vbNewLine & a(1) & vbNewLine & a(2) End Sub Result în MsgBox: timp ne zhdet

Primul exemplu folosește DelimitatorȘi Limită Mod implicit.

Exemplul 2

Sub Test2() Dim a() As String a = Split("vremya-ne-zhdet","-", 2) MsgBox a(0) & vbNewLine & a(1) End Sub Result în MsgBox: timp ne-zhdet

În al doilea exemplu Delimitator= "-", a Limită = 2.

Funcția Split atribuie rezultate folosind un text predeclarat, care poate fi folosit în linia de atribuire cu sau fără paranteze goale. În exemplele de mai sus, matricea este specificată fără paranteze.

Puteți copia codurile din exemplele date în modulul VBA al registrului de lucru Excel și puteți vedea cum funcționează. Experimentați cu înlocuirea propriilor date pentru a obține o senzație practică pentru funcția Split.

Acest capitol prezintă „arsenalul” de bază al VB.NET. Majoritatea materialului constă într-o scurtă prezentare generală a conceptelor comune tuturor limbajelor de programare (cum ar fi variabilele și instrucțiunile de buclă) și o descriere a tipurilor de date de bază, în principal diverse numere și șiruri. Cititorii familiarizați cu VB6 ar putea dori să parcurgă acest capitol.

Doar câteva exemple din acest capitol conțin cod real care poate fi folosit în programe serioase VB.NET. Cert este că niciun program serios VB.NET nu se poate face fără obiecte bazate pe șablon numite clase, subiect care va fi discutat în Capitolul 4. Vom începe cu constructele de bază ale limbajului, pentru că altfel ar trebui să ne limităm la clase primitive care nu au valoare practică. Acest capitol nu acoperă clasele definite de utilizator și arată doar exemple de bază despre cum să utilizați clasele încorporate ale .NET Framework, care sunt extrem de puternice.

Ce rezultă din asta? Destul de ciudat, programele scrise în acest capitol sunt foarte apropiate ca stil de programarea tradițională a erei BASIC timpurii și chiar a erei Fortran și COBOL care l-au precedat (în afară de unele constructe sintactice ciudate, dar necesare). În special, spre deosebire de programele din capitolele ulterioare, acestea au întotdeauna un început și un sfârșit clar definite, iar controlul este transferat de la început la sfârșit (deși controlul poate fi transferat prin comenzi speciale).

După cum sa menționat în introducere, vom încerca să prezentăm programe scrise în stil normal .NET, evitând compatibilitatea artificială cu VB6 ori de câte ori este posibil.

Fiecare aplicație VB.NET trebuie să aibă un punct de intrare. Punctul de intrare conține cod care este executat automat la pornire, după care controlul este transferat la restul codului programului. În aplicațiile grafice relativ simple, punctul de intrare poate fi asociat cu forma inițială, ca în VB6. Dar, așa cum am văzut în Capitolul 1, codul Windows Forms este destul de complex și găsirea punctului de intrare poate fi o provocare. Acest capitol acoperă numai aplicațiile de consolă care rulează într-o fereastră de consolă (cum ar fi o fereastră de sesiune DOS). Da, VB.NET facilitează crearea de aplicații tradiționale de consolă utilizate adesea în programarea de scripturi pe server.

Punctul de intrare al unei aplicații de consolă este procedura Sub Main modul (analog cu procedura Sub Mainîn VB6). Dacă selectați pictograma aplicației console ( Aplicație de consolă), VB.NET generează automat o aplicație „schelet” cu un punct de intrare - o procedură Sub Main:

Modul Module1 Sub Main() End Sub End Modul

Spre deosebire de VB6, prima linie specifică numele modulului (comanda este îngroșată). Acest exemplu folosește numele implicit Modul el. Conform regulilor, numele modulului trebuie să se potrivească cu numele fișierului. Să presupunem că ați schimbat numele modulului în prima linie: Module Test1. Când încercați să rulați o aplicație de consolă, primiți un mesaj de eroare:

Codul de pornire „Sub Main” a fost specificat în „Test.Modulel”. dar „Test.Modulel” nu a fost găsit

Redenumirea unui modul după ce a fost creat se face după cum urmează:

  1. Schimbați numele modulului în fereastra programului.
  2. Schimbați numele fișierului modulului în fereastra soluției.
  3. Faceți clic dreapta pe linie Aplicație de consolă fereastra soluției și selectați comanda din meniul contextual Proprietăți.
  4. Asigurați-vă că este listat Obiect de pornireÎn caseta de dialog care apare (Fig. 3.1), este selectat numele modulului.

Prin analogie cu VB6, un program (soluție) VB.NET poate consta din mai multe module, dar prezența unei proceduri Sub Main permis doar într-un singur modul. Aplicația se termină la atingerea comenzii End Sub proceduri Sub Main. De exemplu, legendarul program „Hello world” arată astfel:

Modul Modul el Sub Main() Console.WriteLine("Hello world") End Sub End Module

Dacă rulați acest program în IDE, o fereastră DOS cu cuvintele „Hello world” va clipi foarte repede pe ecran (și va dispărea imediat). Fereastra se închide când comanda este procesată End Sub.

Salutare tuturor!
Astăzi aș vrea să vorbesc despre criptografie. Am făcut un exemplu de utilizare a criptografiei speciale - steganografia. Această metodă ascunde însuși faptul criptării datelor. Există multe tipuri de steganografie. Aș dori să vorbesc despre metoda LBS, care ascunde datele în biții de ordin inferior ai datelor audio. Se pare că utilizatorii fac schimb de fișiere audio, dar în realitate fac schimb de date sensibile. Oricine nu știe despre această metodă nici măcar nu va suspecta schimbul de date secrete. În unele cazuri, acest lucru poate fi foarte util.
Cum functioneaza?
Fișierul WAVE-PCM (necomprimat) conține date audio. De fapt, sunetul este un eveniment analogic, de exemplu. continuu. Pentru a-l converti în formă digitală, trebuie să-l cuantificați cu unele pierderi. Acest proces este caracterizat de doi parametri: adâncimea de biți și frecvența de eșantionare. Adâncimea de biți afectează câte niveluri de semnal pot fi conținute în fiecare probă. Rata de eșantionare afectează frecvența maximă pe care o pot conține datele audio:

În cazul nostru, ne interesează doar adâncimea de biți a datelor audio. Poate fi de 32, 24, 16, ... biți per probă. Ideea principală a steganografiei (în cazul nostru) este de a rescrie biții de ordin scăzut de date audio. Cu cât folosim mai mulți biți, cu atât distorsiunea va fi mai puternică.
Vizual:


După cum se poate observa din figură, metoda stochează toate datele criptate în anumiți biți de date audio (în acest caz, 4 biți pentru fiecare probă). De asemenea, rețineți că pentru a salva date trebuie să utilizați un fișier audio mai mare decât fișierul criptat. De exemplu, dacă folosim 3 biți pentru codare, fișierul audio va trebui să fie de cel puțin 16/3 ori mai mare decât ceea ce este codificat. Spun 16 pentru că în exemplul meu folosesc 16 biți per probă.
În exemplul atașat păstrez și numele original al fișierului. Formatul datelor este clar:


Când are loc ambalarea, fiecare octet este preluat din fișierul criptat. Apoi, biții necesari sunt extrași din octetul următor, iar biții corespunzători din datele audio sunt, de asemenea, șterși. Acești biți sunt apoi setați utilizând o operație OR pe biți. Măștile și schimburile sunt folosite pentru a extrage biții necesari. Măștile lasă biții necesari, în timp ce shift-urile îi plasează la începutul octetului.
Despachetarea se întâmplă exact invers. Biții sunt extrași din fișierul audio și fișierul original este asamblat. Spectrul unui fișier audio în funcție de adâncimea de biți:

Sper că această scurtă recenzie va fi utilă.
Vă mulțumim pentru atenție.

Funcția returnează o matrice unidimensională care conține un număr specificat de subșiruri. Această funcție este inversul funcției Join.

Sintaxă

Despică( Expresie[, Delimitator[, Limită[, Compara]])

Opțiuni

Expresie- o expresie de tip String care conține subșiruri cu delimitatori.
Delimitator- o expresie de tip Variant (String) care definește caracterul care este folosit ca delimitator. Dacă argumentul este omis, se folosește caracterul spațiu (" ").
Limită- o expresie lungă care indică numărul de elemente de returnat. implicit este -1 (return toate elementele).
Comparaţie- un parametru numeric care indică metoda de comparare.

Parametru Comparaţie poate lua următoarele valori:

Valori returnate

Returnează o matrice unidimensională de tip Variant (Șir).
Dacă parametrul Expresie are lungime zero, funcția returnează o matrice goală. Dacă parametrul Delimiter are lungime zero, funcția va returna o matrice cu un element Expression.

Exemplu de utilizare

Private Sub Form_Load() Dim arrMyArray() As String Dim strMyString As String strMyString = "Bună! Ce mai faci?" arrMyArray = Split(strMyString) „returns „Bună ziua!” Debug.Print arrMyArray(0) End Sub

Vezi si: matrice,