VB6-da hazır layihələr. Təsdiqlə Visual Basic.NET Exit-də təsvir edilmiş təlimat

08.12.2023

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.

Funksiya sintaksisi

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.

Funksiya parametrləri

*İ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.

Dəyərləri qaytarın

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.

Misal 1

Sub Test1() Dim a() String kimi a = Split("vremya ne zhdet") MsgBox a(0) & vbNewLine & a(1) & vbNewLine & a(2) MsgBox-da Son Alt Nəticə: vaxt yox zhdet

Birinci nümunə istifadə edir AyırıcıLimit default olaraq.

Misal 2

Sub Test2() Dim a() String kimi a = Split("vremya-ne-zhdet","-", 2) MsgBox a(0) & vbNewLine & a(1) MsgBox-da Son Alt Nəticə: vaxt ne-zhdet

İ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:

  1. Proqram pəncərəsində modulun adını dəyişdirin.
  2. Həll pəncərəsində modul faylının adını dəyişdirin.
  3. Xəttin üzərinə sağ vurun Konsol Tətbiqi həll pəncərəsini açın və kontekst menyusundan əmri seçin Xüsusiyyətlər.
  4. Siyahıya salındığından əmin olun Başlanğıc obyekti Görünən dialoq pəncərəsində (şək. 3.1) modulun adı seçilir.

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.

Sintaksis

bölün( İfadə[, Ayrıcı[, Limit[, Müqayisə]])

Seçimlər

İfadə- ayırıcıları olan alt sətirləri ehtiva edən String tipli ifadə.
Ayırıcı- ayırıcı kimi istifadə olunan simvolu təyin edən Variant (String) tipli ifadə. Arqument buraxılıbsa, boşluq simvolu (" ") istifadə olunur.
Limit- qaytarılacaq elementlərin sayını göstərən uzun ifadə. standart -1-dir (bütün elementləri qaytarın).
Müqayisə et- müqayisə metodunu göstərən rəqəmli parametr.

Parametr Müqayisə et aşağıdakı dəyərləri qəbul edə bilər:

Dəyərləri qaytarın

Variant (String) tipli birölçülü massivi qaytarır.
Ifadə parametrinin uzunluğu sıfırdırsa, funksiya boş massiv qaytarır. Əgər Delimiter parametrinin uzunluğu sıfırdırsa, funksiya bir İfadə elementi olan massivi qaytaracaq.

İstifadə nümunəsi

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:
Massiv
Bu gün kriptoqrafiya haqqında danışmaq istərdim. Mən xüsusi kriptoqrafiyadan - steqanoqrafiyadan istifadə nümunəsi verdim. Bu üsul məlumatların şifrələnməsi faktını gizlədir. Steqanoqrafiyanın bir çox növləri var. Mən audio məlumatların aşağı sıra bitlərində məlumatları gizlədən LBS metodu haqqında danışmaq istərdim. Görünən odur ki, istifadəçilər audio faylları mübadiləsi aparırlar, lakin əslində onlar həssas məlumat mübadiləsi aparırlar. Bu üsuldan xəbəri olmayan hər kəs məxfi məlumat mübadiləsindən belə şübhələnməyəcək. Bəzi hallarda bu çox faydalı ola bilər.
Bu necə işləyir?
WAVE-PCM faylı (sıxılmamış) audio məlumatı ehtiva edir. Əslində səs analoq hadisədir, yəni. davamlı. Onu rəqəmsal formaya çevirmək üçün onu müəyyən itkilərlə kvantlaşdırmaq lazımdır. Bu proses iki parametrlə xarakterizə olunur: bit dərinliyi və seçmə tezliyi. Bit dərinliyi hər nümunədə neçə siqnal səviyyəsinin ola biləcəyinə təsir göstərir. Nümunə alma tezliyi audio məlumatlarda ola biləcək maksimum tezlikə təsir edir:

Bizim vəziyyətimizdə bizi yalnız audio məlumatların bit dərinliyi maraqlandırır. Hər nümunə üçün 32, 24, 16, ... bit ola bilər. Steqanoqrafiyanın əsas ideyası (bizim vəziyyətimizdə) səs məlumatlarının aşağı səviyyəli bitlərini yenidən yazmaqdır. Nə qədər çox bit istifadə etsək, təhrif bir o qədər güclü olar.
Vizual olaraq:


Şəkildən göründüyü kimi, metod bütün şifrələnmiş məlumatları audio verilənlərin müəyyən bitlərində saxlayır (bu halda hər nümunə üçün 4 bit). Həmçinin nəzərə alın ki, məlumatları saxlamaq üçün şifrələnmiş fayldan daha böyük ölçülü audio fayldan istifadə etməlisiniz. Məsələn, kodlaşdırma üçün 3 bit istifadə etsək, audio fayl kodlaşdırılandan ən azı 16/3 dəfə böyük olmalıdır. 16 deyirəm, çünki nümunəmdə hər bir nümunə üçün 16 bit istifadə edirəm.
Əlavə edilmiş nümunədə mən də orijinal fayl adını saxlayıram. Məlumat formatı aydındır:


Qablaşdırma baş verdikdə, hər bayt şifrələnmiş fayldan götürülür. Sonra növbəti baytdan lazımi bitlər çıxarılır və audio verilənlərdəki müvafiq bitlər də təmizlənir. Bu bitlər daha sonra bitwise OR əməliyyatından istifadə edərək təyin olunur. Tələb olunan bitləri çıxarmaq üçün maskalar və sürüşmələr istifadə olunur. Maskalar lazımi bitləri tərk edir və keçidlər onları baytın əvvəlinə yerləşdirir.
Paketdən çıxarma tam əksinə baş verir. Bitlər audio fayldan çıxarılır və orijinal fayl yığılır. Bit dərinliyindən asılı olaraq audio faylın spektri:

Ümid edirəm ki, bu qısa baxış faydalı olacaq.
Diqqətiniz üçün təşəkkür edirik.

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.

Təsdiqlə çıxın

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 !}

başlıq = "Çıx

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

Harada, 12345 proqramı başlamaq üçün paroldur. Ancaq bu kod istədiyiniz yerdə istifadə edilə bilər.

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 !}

Beep Dim mesajı Sətir kimi Dim düymələri və Tam ədəd Dim başlıq kimi Simli mesaj = "Mesaj" başlığı = "Message

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

QBColor(0) parametrindən istifadə edərək rəngi dəyişə bilərsiniz, yəni. 0 əvəzinə başqa bir nömrə qoyun.

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:

Dim strComputer As String strComputer = "."

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!"

Bitsə Bitər

Kompüterin söndürülməsi

Kompüterinizi söndürmək üçün aşağıdakı kodu istifadə edə bilərsiniz:

Dim strComputer As String strComputer = "."

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:

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

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

sadə funksiyalar

, demək olar ki, hər yerdə istifadə edilə bilər. İndi daha ciddi nümunələrə baxaq və onlar böyük layihələrinizi yazmağınıza çox kömək edə bilər.

Qovluqlarla işləmək nümunələri

Kataloqu silin

Şəxsi Bəyan Funksiyası RemoveDirectory& Lib _ "kernel32" Təxəllüsü "RemoveDirectoryA" (ByVal lpPathName String kimi) "Kataloq silinir (boş!) PathName$ = "D:\t" kodu& = RemoveDirectory(PathName) Əgər kod və =0 qovluğunun silinməsi Else "Kataloq silindi End If<>Kataloq yaradın

Sub MakeDir(dirname As String) Dim i As Long, path As String Do i = InStr(i + 1, dirname & "\", "\") path = Left$(dirname, i - 1) If Right$(path) , 1)

":" 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.

Kataloq ölçüsü

Const MAX_PATH = 260 Şəxsi Növ FILETIME dwLowDateTime Kimi Uzun dwHighDateTime Kimi Uzun Son Tip Şəxsi Növ WIN32_FIND_DATA dwFileAtributları FILETIME ftLastAccessTimeTimeFILEHFileime As Uzun ftCreationTime Uzun nFileSizeLow Kimi Uzun dwReserved0 Uzun dwReserved1 kimi Uzun cFileName String kimi * MAX_PATH cStr kimi Alternativ * 14 Son Tip Şəxsi Bəyan Funksiyası FindFirstFile Lib _ "kernel32" Təxəllüsü "FindFirstFileA" (ByVal lpFileName String kimi, lpFindFileData WIN32_FIND_DATA kimi) Uzun Şəxsi Bəyan Funksiyası FindNextFileb "Alias." Val hFindFile kimi uzun , ileData WIN32_FIND_DATA Kimi Uzun Şəxsi Bəyan Funksiya FindClose Lib _ "kernel32" (ByVal hFindFile Kimi Uzun) Uzun İctimai Funksiya SizeOf(ByVal DirPath String As) As Double Dim hFind As Long Dim fdata As Long WIN3Dize DIM DIN_ As DIM Sətir Dim x Xəta Onda Davam Et Sonrakı x = GetAttr(DirPath) Səhv olarsa SizeOf = 0: Funksiyadan çıxın Əgər (x Və vbDirectory) = vbDirectory Onda dblSize = 0 Err.Clear sName = Dir$(EndSlash(DirPath) & " *.* ", vbSystem Və ya vbHidden Və ya vbDirectory) Əgər Err.Number = 0 olarsa, onda hFind = FindFirstFile(EndSlash(DirPath) & "*.*", fdata) Əgər hFind = 0 olarsa, Funksiyadan çıxın (fdata.dwFileAttributes And vbDirectory). ) = vbDirectory Sonra sName = Left$(fdata.cFileName, InStr(fdata.cFileName, vbNullChar) - 1) Əgər sName<>"." Və sName<>".." Sonra dblSize = dblSize + SizeOf(EndSlash(DirPath) & sName) End If Else dblSize = dblSize + fdata.nFileSizeHigh * 65536 + fdata.nFileSizeLow End Əgər DoEvents Döngəsi FindNextFileh, fda()<>0 hFind = FindClose(hFind) End If If Resume Next dblSize = FileLen(DirPath) End If SizeOf = dblSize End Funksiya Şəxsi Funksiya EndSlash(ByVal PathIn String kimi) Əgər Right$(PathIn, 1) = "\" Sonra EndSlash = PathIn Else EndSlash = PathIn & "\" End If End Function Private Sub Form_Load() ""D:\soft"-u ölçüsünü bilmək istədiyiniz kataloqla əvəz edin MsgBox SizeOf("D:\soft") / 1000000 Son Alt

Fayllarla işləmək nümunələri

Kopyalayın

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

Silinmə

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."

Son Alt

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ə):

Şə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 value As Longret:"Click" \1 .txt", "C:\2\1.txt") Əgər retval = 1 O zaman MsgBox "Uğurla daşındı" Əksinə MsgBox "Xəta" Bitərsə Son Alt alt

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ünü təyin edin

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")

Saatı proqramlı şəkildə gizlədin

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

Tabla işarəsi əlavə edin

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

Başlanğıc düyməsinin bloklanması

Şə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

INI faylından parametrlərin oxunması

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&)

Çalışan proseslərin siyahısı

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 işə salınması

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

Tapşırıq panelinin gizlədilməsi

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

RAR arxivini açın

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)

Kompüterdə nə qədər RAM var

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

İş masası nişanlarını gizlədin

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!