VBA Excel-də Split funksiyasından istifadə, onun sintaksisi və parametrləri. Split funksiyası ilə qaytarılan dəyərlər. İstifadə nümunələri.
Split funksiyası VBA Excel-də xüsusi ayırıcı işarələrdən istifadə edərək sətri alt sətirlərə bölmək üçün nəzərdə tutulmuşdur. Ayırıcı kimi bir şey ola bilər ayrı xarakter, və bir neçə simvoldan ibarət sətir. Split funksiyası alt sətirlər massivindən bir sətir yaradan funksiyanın tərsidir.
Bölmə (İfadə,,,)
Split funksiyasının tələb olunan parametri İfadədir - əgər digər parametrlər açıq şəkildə göstərilməyibsə, onların standart dəyərləri istifadə olunur.
*İkili müqayisə (0 və ya CompareMethod.Binary) istifadə edilərsə, funksiya hərflərə həssasdır. Mətn müqayisəsi (1 və ya CompareMethod.Text) istifadə olunarsa, funksiya böyük hərflərə həssas deyil.
Split funksiyası təyin edilmiş parametri ehtiva edən sıfırdan indeksləşdirilmiş birölçülü massivi qaytarır. Limit alt sətirlərin sayı. Çox vaxt Split funksiyası parametr dəyəri ilə istifadə olunur Limit default olaraq -1-ə bərabərdir, mənbə sətirində tapılan bütün alt sətirlər qaytarıldıqda.
Birinci nümunə istifadə edir Ayırıcı Və Limit default olaraq.
İkinci misalda Ayırıcı= "-", a Limit = 2.
Split funksiyası təyinat xəttində boş mötərizələrlə və ya olmadan istifadə edilə bilən əvvəlcədən elan edilmiş mətndən istifadə edərək nəticələri təyin edir. Yuxarıdakı nümunələrdə massiv mötərizəsiz göstərilmişdir.
Verilmiş nümunələrdən kodları işinizin VBA moduluna köçürə bilərsiniz Excel iş dəftərləri, necə işlədiklərini görün. Split funksiyası üçün praktiki hiss əldə etmək üçün öz məlumatlarınızı əvəz etməklə sınaqdan keçirin.
Bu fəsil VB.NET-in əsas "arsenalını" təqdim edir. Materialın çox hissəsi aşağı düşür qısa icmal bütün proqramlaşdırma dilləri üçün ümumi olan anlayışlar (məsələn, dəyişənlər və dövrə təlimatları) və əsas məlumat növlərinin təsviri, əsasən müxtəlif nömrələr və xətlər. VB6 ilə tanış olan oxucular bu fəsli gözdən keçirə bilər.
Bu fəsildə yalnız bir neçə nümunə ciddi VB.NET proqramlarında istifadə oluna bilən faktiki kodu ehtiva edir. Məsələ burasındadır ki, heç bir ciddi VB.NET proqramı şablona əsaslanan siniflər adlı obyektlər olmadan edə bilməz, bu mövzuya 4-cü fəsildə toxunacağıq. Biz dilin əsas konstruksiyalarından başlayacağıq, çünki əks halda özümüzü primitiv proqramlarla məhdudlaşdırmalı olacağıq. praktiki dəyəri olmayan dərslər. Bu fəsil istifadəçi tərəfindən müəyyən edilmiş sinifləri əhatə etmir və yalnız son dərəcə güclü olan .NET Framework-ün daxili siniflərindən necə istifadə olunacağına dair əsas nümunələri göstərir.
Bundan nə çıxır? Qəribədir ki, bu fəsildə yazılmış proqramlar üslub baxımından erkən BASIC dövrünün və hətta ondan əvvəlki Fortran və COBOL dövrünün ənənəvi proqramlaşdırmasına çox yaxındır (bəzi qəribə, lakin zəruri sintaktik konstruksiyalar istisna olmaqla). Xüsusilə, sonrakı fəsillərdəki proqramlardan fərqli olaraq, onların həmişə dəqiq müəyyən edilmiş başlanğıcı və sonu var və idarəetmə əvvəldən axıra ötürülür (baxmayaraq ki, idarəetmə xüsusi əmrlərlə ötürülə bilər).
Girişdə deyildiyi kimi, biz mümkün olduqca VB6 ilə süni uyğunluqdan qaçaraq, normal .NET üslubunda yazılmış proqramları təqdim etməyə çalışacağıq.
Hər bir VB.NET tətbiqinin giriş nöqtəsi olmalıdır. Giriş nöqtəsi başlanğıcda avtomatik olaraq yerinə yetirilən kodu ehtiva edir, bundan sonra idarəetmə proqram kodunun qalan hissəsinə ötürülür. Nisbətən sadə qrafik proqramlar Giriş nöqtəsi VB6-da olduğu kimi ilkin forma ilə əlaqələndirilə bilər. Lakin 1-ci fəsildə gördüyümüz kimi, Windows Forms kodu olduqca mürəkkəbdir və giriş nöqtəsini tapmaq çətin ola bilər. Bu fəsil yalnız konsol pəncərəsində (DOS sessiya pəncərəsi kimi) işləyən konsol proqramlarını əhatə edir. Bəli, VB.NET server tərəfi skript proqramlaşdırmasında tez-tez istifadə olunan ənənəvi konsol proqramlarını yaratmağı asanlaşdırır.
Konsol tətbiqinin giriş nöqtəsi prosedurdur Alt Əsas modul (prosedurun analoqu Alt Əsas VB6-da). Konsol tətbiqi ikonasını seçsəniz ( Konsol Tətbiqi), VB.NET avtomatik olaraq giriş nöqtəsi olan "skelet" tətbiqini yaradır - prosedur Alt Əsas:
Modul Modulu1 Sub Main() Son Alt Son Modul
VB6-dan fərqli olaraq, birinci sətir modulun adını təyin edir (komanda qalın hərflərlə yazılmışdır). IN bu misalda defolt adı Modul el istifadə olunur. Qaydalara əsasən modulun adı fayl adına uyğun olmalıdır. Tutaq ki, siz modulun adını birinci sətirdə dəyişmisiniz: Modul Test1. Konsol tətbiqini işə salmağa çalışdığınız zaman xəta mesajı alırsınız:
"Sub Main" başlanğıc kodu "Test.Modulel"də göstərilmişdir. lakin "Test.Modulel" tapılmadı
Modul yaradıldıqdan sonra onun adının dəyişdirilməsi aşağıdakı kimi aparılır:
VB6 ilə analoji olaraq, VB.NET proqramı (həlli) bir neçə moduldan ibarət ola bilər, lakin prosedurun mövcudluğu Alt Əsas yalnız bir modulda icazə verilir. Tətbiq əmrə çatdıqdan sonra dayandırılır Son Alt prosedurlar Alt Əsas. Məsələn, əfsanəvi "Salam dünya" proqramı belə görünür:
Modul Modul və Sub Main() Console.WriteLine("Salam dünya") Son Alt Son Modul
Bu proqramı IDE-də işlədirsinizsə, ekranda "Salam dünya" sözləri olan bir DOS pəncərəsi çox tez yanıb-sönəcək (və dərhal yox olacaq). Komanda emal edildikdə pəncərə bağlanır Son Alt.
Funksiya müəyyən sayda alt sətirləri ehtiva edən birölçülü massivi qaytarır. Bu funksiya Qoşulma funksiyasının tərsidir.Parametr Müqayisə et aşağıdakı dəyərləri qəbul edə bilər:
Private Sub Form_Load() Dim arrMyArray() String As Dim strMyString As String As strMyString = "Salam! Necəsən?"
arrMyArray = Split(strMyString) ""Salam!"-ı qaytarır Debug.Print arrMyArray(0) End Sub Həmçinin baxın:Hər kəsə salam, bu yazıda sizə kiçik proqramlar üçün faydalı kodlar göstərmək istəyirəm. Hansı ki, öz daha ciddi proqramlarınızı yazmaq üçün istifadə edə bilərsiniz və ya siz burada təsvir olunan tam olaraq bu funksiyaları axtarırdınız.
Bütün kodlar Microsoft Visual Basic v6.0 proqramlaşdırma mühitində istifadə edilmişdir.
Birinci növ proqram və ya funksiya çıxışı təsdiq edən mesajı olan çıxışdır. Ümumiyyətlə, Visual Basic proqramlaşdırma mühitini açın, standart layihə yaradın, sonra formada bir düyməni yerləşdirin, düyməni basın və kodu redaktə pəncərəsi açılacaq və ora aşağıdakı kodu daxil etməlisiniz:
Beep Dim mesajı Sətir kimi Dim düymələri və tam ədəd Dim başlıq kimi Simli Dim cavabı kimi Simli mesaj olaraq = "Çıxmaq istəyirsiniz?"" buttonasicons = vbYesNo + vbQuestion response = MsgBox(message, buttonasicons, title) If response = vbYes Then End End If !}
Proqramı başlamaq üçün parol<>Dim Parol, Pword PassWord = "12345" Pword = InputBox("Şifrəni daxil edin") Əgər Pword
PassWord Sonra MsgBox "Parol düzgün deyil" Sonu Varsa
Mesaj çıxışı
Yalnız bir şey üçün mesaj göstərmək istəyirsinizsə, bunu yapışdırın:" buttonasicons = vbOKOnly + vbexciamation MsgBox message, buttonsandicons, title !}
Forma üzərində rəsm
Private Sub Form_MouseDown(Düymə Tam Ədəd, Shift Tam Ədəd, X tək Ədəd, Y Tək) Form1.CurrentX = X Form1.CurrentY = Y End Sub Private Sub Form_MouseMove(Düymə Tam Ədəd, Shift Tam Ədəd, X Tək, Y Əsl Tək) Əgər Düymə = 1 O zaman Xətt (Form1.CurrentX, Form1.CurrentY)-(X, Y), QBCColor(0) End If End Sub
Kompüterin yenidən işə salınması
Kompüterinizi yenidən yükləmək üçün: düyməni yerləşdirin və aşağıdakı kodu daxil edin:Set objWMIService = GetObject("winmgmts:" & "(impersonationLevel=impersonate, (Sutdown))!\\" _ & strComputer & "\root\cimv2") Set colOperatingSystems = objWMIService.ExecQuery("Select * from WinystemS3" ColOperatingSystems-də hər bir ObjOperatingSystem ObjOperatingSystem.Reboot " Yenidən yükləmək üçün Sonrakı
Private Sub Form_Load() Əgər App.PrevInstance = True, onda MsgBox "Layihə artıq başlayıb!"
Kompüterin söndürülməsi
Kompüterinizi söndürmək üçün aşağıdakı kodu istifadə edə bilərsiniz:
Set objWMIService = GetObject("winmgmts:" & "(impersonationLevel=impersonate,(Sutdown))!\\" _ & strComputer & "\root\cimv2") Set colOperatingSystems = objWMIService.ExecQuery("Seçin *")perS3-dən Winyst ColOperatingSystems-də hər bir ObjOperatingSystem ObjOperatingSystem.ShutDown "Sonrakı bağlamaq üçün
İstənilən prosesi bitirmək
Prosesi dayandırmaq üçün aşağıdakı kodu istifadə edə bilərsiniz:
Harada, ICQlite.exe əvəzinə hər hansı bir proses ola bilər. Kompüter nə qədər davam edir? Aşağıda kompüterin işləmə vaxtını necə təyin edə biləcəyiniz nümunəsi verilmişdir.
Bu üsul
kernel32 kitabxanasının istifadəsinə əsaslanır, ona görə də forma kodunun ən əvvəlində bu DLL-ni birləşdirin. Private Declare Function GetTickCount Lib "kernel32" () Nə qədər "Və düymə kodunda: Dim a_saat, a_minute, a_second a = Format(GetTickCount() / 1000, "0") "cəmi saniyə 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 "Kompüteriniz işləyir" & Str(a_days) & " gün " & Str(a_saat) _ & "saat" & Str(a_dəqiqə) & "dəqiqə" & Str(a_saniyə) & " saniyə" Biz nəzərdən keçirdik
":" Və Dir$(yol, vbDirectory) = "" Sonra MkDir yolu Sona qədər Döngə i >= Len(dirname) Son Alt Şəxsi Sub Command1_Click() MakeDir-ə zəng edin("C:\Soft\1\2\3\" ") Son Alt
Statik çalışan Boolean Dim AllDirs Yeni Kolleksiya Kimi Dim next_dir Tam Ədəd Dim dir_name As Sətir kimi Dim sub_dir Sətir kimi Dim i Əsl Tam Dim txt Sətir kimi Çalışırsa Sonra çalışır = False CmdStart.Enabled = False CmdStart.Caption = "Dayandırılır" True MousePointer = vbHourglass CmdStart.Caption = "Stop" OutText.Text = "" DoEvents next_dir = 1 AllDirs.Add StartText.Text when the next_dir<= AllDirs.Count dir_name = AllDirs(next_dir) next_dir = next_dir + 1 sub_dir = Dir$(dir_name & "\*", vbDirectory) Do While sub_dir <>"" Əgər UCase$(alt_dir)<>"PAGEFILE.SYS" Və sub_dir<>"." Və sub_dir<>".." Sonra sub_dir = dir_name & "\" & sub_dir Xəta Onda Davam edin GetAttr(sub_dir) Və vbDirectory Onda AllDirs.Add sub_dir End Əgər sub_dir = Dir$(, vbDirectory) Döngə DoEvents Çalışmırsa Çıxın Do Loop txt = "" i üçün = 1 AllDirs.Count üçün txt = txt & AllDirs(i) & vbCrLf Next i OutText.Text = txt MousePointer = vbDefault unning = False End Əgər
İndi proqramı işə salırıq, StartText mətn sahəsinə yazırıq: C:\windows və düyməni sıxırıq.
Tutaq ki, C:\1\ qovluğunda 1.txt adlı faylımız var və onu C:\2\-ə köçürməliyik ki, bunun üçün aşağıdakı kodu yazırıq:
Fayl surəti "C:\1\1.txt","C:\2\1.txt"
Qeyd! Əgər 2-ci kataloqda artıq 1.txt adlı fayl varsa, o, 1-ci kataloqdan 1.txt ilə əvəz olunacaq.
Private Declare Function CopyFile Lib _ "kernel32.dll" Alias "CopyFileA" _ (String kimi ByVal lpExistingFileName, ByVal lpNewFileName String kimi, ByVal bFailIfMövcuddur) Uzun Şəxsi Click faylı Cxt1:\t. to D :\1.txt Dim retval As Long " qaytarılması dəyəri "Faylı kopyalayın retval = CopyFile("C:\1.txt", "D:\1.txt", 1) Əgər retval = 0 olarsa, "Əgər. xətası MsgBox " Kopyalaya bilmirəm" Əksinə "Hər şey qaydasındadırsa MsgBox "Fayl kopyalandı." Sondursa Son Alt alt
Məsələn, 1.txt faylını C:\ sürücüsünün kökündən silmək istəyirik
Öldür("C:\1.txt")
API metodu
Şəxsi Bəyan Funksiyası DeleteFile Lib _ "kernel32.dll" Təxəllüsü "DeleteFileA" (ByVal lpFileName String kimi) Uzun Şəxsi Alt Komanda1_Click() kimi "C:\Samples\anyfile.txt faylını silin Dim retval dəyəri Long =Return " DeleteFile( "C:\1.txt") Əgər retval = 1 O zaman MsgBox "Fayl uğurla silindi."
Hərəkət edir
Məsələn, onu bu şəkildə köçürə bilərsiniz:
Fayl surəti "C:\1.txt","C:\2\1.txt" Öldür ("C:\1.txt")
Ancaq belə daha yaxşıdır (API vasitəsilə):
Ad dəyişdirilir
C:\-də yerləşən 1.txt faylının adını 2.txt-ə dəyişmək üçün aşağıdakı koddan istifadə edə bilərsiniz:
API metodu
Şəxsi Bəyan Funksiyası MoveFile Lib _ "kernel32.dll" "MoveFileA" _ (ByVal lpExistingFileName String kimi, ByVal lpNewFileName String kimi) Uzun Şəxsi Sub Command1_Click() kimi Dim retval(Long MoveFileA":C return ":" \1 .txt", "C:\2.txt") Əgər retval = 1 O zaman MsgBox "Uğur" Başqa MsgBox "Xəta" Bitərsə Son Alt
Fayl ölçüsü iki yolla müəyyən edilə bilər:
Əgər faylı AÇMA funksiyası ilə açmaq olarsa, siz LOF funksiyasından istifadə edə bilərsiniz
FileFree Tam Ədədi kimi Dim Fayl Ölçüsü Uzunluğu FileFree = Sərbəst Fayl Daxil etmək üçün "C:\WIN\GENERAL.TXT" açın FileFree FileSize = LOF(FileFree) FileFree-ni bağlayın
Və ya FileLen funksiyasından istifadə edin
lFileSize Uzun Fayl Ölçüsü = FileLen ("C:\WIN\GENERAL.TXT")
2 düymə əlavə edin və kodu yapışdırın:
Seçim Açıq Şəxsi Bəyan Funksiyası FindWindow Lib _ "user32" Təxəllüsü "FindWindowA" (ByVal lpClassName String kimi, ByVal lpWindowName String kimi) Uzun Şəxsi Bəyan Funksiyası FindWindowEx Lib _ "istifadəçi31"B kimi _ "istifadəçi31"W kimi. Uzun, ByVal hWnd2 Kimi Uzun, ByVal lpsz1 Sətir kimi, ByVal lpsz2 Sətir kimi) Kimi Uzun Şəxsi Bəyan Funksiya ShowWindow Lib _ "user32" (ByVal hwnd As Long, ByVal nCmdShow As Long) As Long Dim hnd As Long Command Private1C) 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, "TrayNotifyWnd" = FindWindow(hnd, 0, "TrayNotifyWnd") hnd, 0, "TrayClockWClass", vbNullString) Command1.Caption = "Saatı gizlət" Command2.Caption = "Saatı göstər" Son Alt
Modul əlavə edin və kodu ona yapışdırın:
Funksiyanı elan et 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 NIFT = MESSAGE Public NIFT NIF_I = 4 Növ NOTIFYICONDATA cbSize Uzun hWnd Kimi Uzun uID Kimi Uzun uFlags kimi Uzun uCallbackMessage Uzun hIcon Kimi Uzun szTip Simli kimi * 64 Son Növ İctimai Funksiya SetTrayIcon(Mode As Long, hWnd Long, Icon Uzun, ucu String) Uzun nidTemp As NOTIFYICONDATA nidTemp.cbSize = Len(nidTemp) nidTemp.hWnd = hWnd nidTemp.uID = 0& nidTemp.uFlags = NIF_ICON Yaxud NIF_TIP nidTemp.uCallbackMessage = 0.conn hr$( 0) SetTrayIcon = Shell_NotifyIconA(Mode, nidTemp) Son Funksiyası
İstifadə etmək üçün forma kodunu daxil edin:
Private Sub Form_Load() SetTrayIcon NIM_ADD, Me.hWnd, Me.Icon, "Test" End Sub "Silmək üçün Şəxsi Alt Komanda1_Click() SetTrayIcon NIM_DELETE, Me.hWnd, 0&, "" End Sub
Şəxsi Bəyan Funksiyası FindWindow Lib "user32" Alias "FindWindowA" _ (ByVal lpClassName String kimi, ByVal lpWindowName String kimi) Uzun Şəxsi Bəyan Funksiyası FindWindowEx Lib "user32" Təxəllüsü Ex "A y" B, h ByVal kimi. hWnd2 Uzunluğu, ByVal lpsz1 Sətir kimi, ByVal lpsz2 Sətir kimi) Uzun Şəxsi Bəyan Funksiyası EnableWindow Lib "user32" _ (ByVal hwnd Kimi Uzun, ByVal fEnable Kimi Uzun) Kimi Uzun İctimai Alt EnableStartButton(İstəyə Bağlı = Boş Verilmiş) lHwnd As Long " find hWnd lHwnd& = FindWindowEx(FindWindow("Shell_TrayWnd", ""), 0&, "Button", vbNullString) Zəng EnableWindow(lHwnd&, CLng(Enabled)) End Sub Private Sub Command1_Click(End) deaktivdir End Sub Private Sub Command2_Click() EnableStartButton True "START düyməsi qeyri-aktiv deyil End Sub
Proqram FTP-yə qoşulur və ini faylında parametrlər var - server, login, port, parol.
Əvvəlcə INI faylı yaradın:
Servname=server usern=Giriş pwd=parol portu=port
Proqram qovluğuna yerləşdirilməlidir. Sonra modula daxil edin:
Private Declare Function WritePrivateProfileString Lib _ "kernel32" Alias "WritePrivateProfileStringA" (ByVal lpApplicationName String kimi, ByVal lpKeyName As String, _ ByVal lpString As String Asp.DeName, String kimi) PrivateProfileString Lib _ "kernel32" Alias "GetP rivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As String, _ ByVal lpDefault As String, ByVal lpReturnedString As Long, _ ByVal nSize As Long, ByValle As Long m) String kimi ReadIni = GetValue (Razdel, Param, App.Path & "\test.ini", "0") Son Funksiya Şəxsi Funksiya GetValue (String kimi ByVal Bölmə, _ ByVal Açar String kimi, ByVal fFileName String kimi, Könüllü ByVal DefaultValue String = vbNullString kimi) Sətir kimi Dim Data kimi Simli Data = String$(1000, Chr$(0)) GetPrivateProfileString(Bölmə, Açar, DefaultValue, Data, 1000, fFileName) > 0 Əgər GetValue = Left$(Data, InStr) (Data$, Chr $(0)) - 1) Əks halda GetValue = DefaultValue Sonu Funksiyadan Çıxış Funksiyasının Sonu
Sonra forma koduna yapışdırın:
Şəxsi Bəyan Funksiyası InternetOpen Lib _ "wininet.dll" "InternetOpenA" (ByVal sAgent As String, ByVal nAccessType As Long, ByVal sProxyName As Long, _ ByVal sProxyBypass as String, ByVal As Long) Şəxsi Funksiyaları Uzunmüddətli İnternetə Bağlı Lib _ "wininet.dll" Təxəllüsü "InternetConnectA" (ByVal hInternetSession As Long, ByVal sServerName As Long, ByVal nServerName As String, _ ByVal nServerPort As Integer, ByVal sUserName As String, ByVal sPassword By String, By LongerSlagal, by LongerSlagal. , ByVal dwContext As Long) As Long Private Declare Function FtpPutFile Lib _ "wininet.dll" Alias "FtpPutFileA" (ByVal hFtpSession As Long, ByVal lpszLocalFile As Long, _ ByVal File As Long, dCon String As Long, ByVal dwContext As Long) ext As Uzun) Boolean Private Declare Function kimi FtpGetFile Lib _ "wininet.dll" Alias "FtpGetFileA" (ByVal hFtpSession As Long, ByVal lpszRemoteFile As String, _ ByVal lpszNewFile As Stringa, ByVals xüsusiyyətləri As Long, _ ByVal dwFlags As Long, ByVal d wContext As Long ) As Boolean Private Declare Function InternetCloseHandle Lib _ "wininet.dll" (ByVal hInet As Long) As Integer Dim rc& Dim rs&
Və düymə kodunda:
rc& = InternetOpen("", 0, vbNullString, vbNullString, 0) rs& = InternetConnect(rc&, ReadIni("Ümumi", "xidmət adı"), "0", _ ReadIni("Ümumi", "istifadəçi"), ReadIni( "General", "pwd"), 1, 0, 0) Əgər FtpGetFile(rs&, "Your file.txt", "path where", False, 0, 1, 0) = False, onda Zəngi bitir InternetCloseHandle(rs&) Zəngi InternetCloseHandle(rc&)Siyahı qutusu və 1 düymə əlavə edin, aşağıdakı kodu daxil edin:
Seçim Açıq Şəxsi Bəyan Funksiyası CreateToolhelpSnapshot Lib _ "Kernel32" Alias "CreateToolhelp32Snapshot" _ (ByVal lFlags As Long, ByVal lProcessID As Long) Private Declare Function ProcessFirst Lib _First Lib3"as Val hSnapShot Nə qədər ki, uProcess kimi PROCESSENTRY32) Private Declare Function ProcessNext Lib _ "Kernel32" Alias "Process32Next" _ (ByVal hSnapShot Kimi Uzun, uProcess kimi PROCESSENTRY32) Şəxsi Declare Nə qədər Sub CloseHandnel Lib (Uzunca) hSV2"ByVal ) Private Const TH32CS_SNAPPROCESS As Long = 2& Private Const MAX_PATH As Integer = 260 Private Type PROCESSENTRY32 dwSize As Long cntUsage Uzun th32ProcessID kimi Uzun th32DefaultHeapID kimi Long Th32ModuleIDhP2 Longad ClassBase Uzunluğu dwFlags kimi uzun szExeFile String kimi * MAX_PATH Son Növ Di m hSnapShot Process kimi Uzun Dim uProcess PROCESSENTRY32 Dim r As Long Private Sub Command1_Click() List1.Clear hSnapShot = CreateToolhelpSnapshot(TH32CS_SNAPPROCESS, 0&) Əgər hSnapShot = 0 Əgər hSnapShot Alt = 0d If (Enw) Extse. ProcessFirst(hSnapShot, uProcess) Do while r List1.AddItem uProcess.szExeFile r = ProcessNext(hSnapShot, uProcess) Loop Call CloseHandle(hSnapShot) End Sub
Proqramın Windows ilə yüklənməsi üçün, bəzi digər proqramlar kimi, qeyd dəftərindən istifadə edə bilərsiniz:
2 düymə və aşağıdakı kodu əlavə edin:
Private Sub Command1_Click() "Reyestr girişi Set Reg = CreateObject("WScript.Shell") Reg.RegWrite "HKLM\Software\Microsoft\Windows\CurrentVersion\Run\Proqramınızın adı", _ "Proqramınıza gedən yol" Son Alt Private Sub Command2_Click() "Reyestrdən silin Reg = CreateObject("WScript.Shell") Reg.RegDelete "HKLM\Software\Microsoft\Windows\CurrentVersion\Run\Proqramınızın adı" Son Alt
Proqramın hətta Windows ilə birlikdə yüklənməsi üçün təhlükəsiz rejim, sonra bu kod:
Birincisi, daha ciddi bir üsul (hər halda bunu edin ehtiyat surəti reyestr).
Private Sub Command1_Click() Set Reg = CreateObject("WScript.Shell") Reg.RegWrite "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsNT\CurrentVersion\Winlogon\Shell", _ "Proqramınıza gedən yol" Son Sub Private Sub Command(2)" Bu bərpa üçün Set Reg = CreateObject("WScript.Shell") Reg.RegWrite "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsNT\CurrentVersion\Winlogon\Shell", _ "Explorer.exe," End Sub.
Yaxşı, sadə bir yol.
Private Sub Command1_Click() Set Reg = CreateObject("WScript.Shell") Reg.RegWrite "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsNT\CurrentVersion\Winlogon\Userinit", _ "C:\\WINDOWS\\systrinit.exe. ,Proqramınızın yolu" End Sub Private Sub Command2_Click()"Set Regi bərpa etmək üçün = CreateObject("WScript.Shell") Reg.RegWrite "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsNT\CurrentVersion\Winlogon\Userinit", _ "C \\ WINDOWS \\ system32 \\ userinit.exe, "Son Alt
2 düymə əlavə edin və kodu yapışdırın:
Private Declare Function SetWindowPos Lib "user32" (ByVal hwnd As Long, _ ByVal hWndInsertAfter As Long, ByVal x As Long, ByVal y As Long, _ ByVal cx Kimi Uzun, ByVal cy Kimi Uzun, ByVal wFlags Kimi Uzun) Priva Funksiya FindWindow Lib "user32" Alias "FindWindowA" _ (ByVal lpClassName String kimi, ByVal lpWindowName String kimi) Uzun Davamlı SWP_HIDEWINDOW = &H80 Const SWP_SHOWWINDOW = &H40WinDOW = &H40WindWind = &H40Wind("Command") Shell_traywnd", " ") SetWindowPos-a zəng edin(hwnd1, 0, 0, 0, 0, 0, SWP_HIDEWINDOW) Son Alt "Şəxsi Alt Komandanı göstərir2_Click() hwnd1 = FindWindow("Shell_traywnd", "") Zəng edin SetWindowPos(hwnd0, 0, , , , . 0, 0, SWP_SHOWWINDOW) Son Alt
Açmaq üçün RAR arxivi aşağıdakı kodu istifadə edə bilərsiniz:
WinRarApp = "C:\Program Files\WinRAR\WinRAR.exe x -o+" iPath = "C:\" iArhivName = "Fayl adı.rar" adr = WinRarApp & " """ & iPath & iArhivName & """ " "" & iPath & """ " RetVal = Shell(adr, vbHide)
Bir düymə əlavə edin və aşağıdakı kodu yapışdırın:
Private Declare Sub GlobalMemoryStatus Lib "kernel32" (lpBuffer As TMemoryStatus) Private Type TMmemoryStatus dwLength Long As Long dwMemoryLoad As Long dwTotalPhys As Long dwAvailPhys As Long dwTotalPageFile As Long dwAvailAvail Son Növ Dim s TMemoryStatus Private Sub Command1_Click( ) ms.dwLength = Len(ms) GlobalMemoryStatus(ms) MsgBox-a zəng edin "Cəmi:" & ms.dwTotalPhys & vbCr & "Pulsuz:" _ & ms.dwAvailPhys & vbCr & "%:" & ms.dwMemoryLoad End istifadə olunur
Bu aşağıdakı kimi edilir. 2 düymə əlavə edin və aşağıdakı kodu yapışdırın:
Şəxsi Bəyan Funksiyası ShowWindow&Lib "user32" (ByVal hwnd&, ByVal nCmdShow&) Şəxsi Bəyan Funksiya FindWindow Lib _ "user32" Təxəllüsü "FindWindowA" (ByVal lpClassName As String, St_Wal.String As_Val) st SW_NORMAL = 1 Private Sub Command1_Click() Dim hHandle As Long hHandle = FindWindow("progman", vbNullString) Zəng ShowWindow(hHandle, SW_HIDE) End Sub Private Sub Command2_Click() Dim hHandle As Long hHandle = FindWDown ("FilgWman") (hHandle , SW_NORMAL) Son Alt
Command1 düyməsini istifadə edərək, nişanlar gizlənir, Command2 - görünür.
Mənim üçün hamısı budur, ümid edirəm yuxarıdakı nümunələr sizin üçün faydalı olacaq, əlvida!