Gunakan VB untuk mengontrol sepenuhnya ikon desktop Anda. Apakah Anda bosan dengan susunan ikon desktop di Windows dan ingin mengatur ikon sesuai dengan ide Anda sendiri? Apakah Anda ingin mengubah latar belakang teks ikon desktop tanpa menyebabkan munculnya blok warna jelek di bawah teks ikon? Di sini saya akan memperkenalkan cara mengubah ikon desktop sepenuhnya melalui VB.
Faktanya, desktop dan taskbar di Windows semuanya adalah objek jendela. Kita dapat menggunakan fungsi Windows API FindWindow dan FindWindowEx untuk mendapatkan pegangannya, lalu memanggil fungsi API lain yang sesuai untuk mengontrolnya. Jendela tempat ikon desktop ditempatkan adalah objek ListView. Gunakan fungsi SendMessage untuk mengirim pesan terkait ke jendela, dan ikon dapat dimodifikasi. Berikut ini adalah implementasi program secara spesifik.
Pertama, buat proyek baru di VB, tambahkan tiga kontrol CommandButton ke Form1, lalu tambahkan kode berikut ke jendela kode Form1:
Option Explicit
Tipe Pribadi POINTAPI x Selama, y Selama
Tipe Akhir
Fungsi Deklarasi Pribadi FindWindow Lib user32 Alias FindWindowA _ (ByVal lpClassName As String, ByVal lpWindowName As String) Selama
Fungsi Deklarasi Pribadi FindWindowEx Lib user32 Alias FindWindowExA _ (ByVal hWnd1 Selama, ByVal hWnd2 Selama, ByVal lpsz1 Sebagai String, _ ByVal lpsz2 Sebagai String) Selama
Pembaruan Fungsi Deklarasi PribadiWindow Lib user32 (ByVal hwnd Selama) Selama
Fungsi Deklarasi Pribadi SendMessage Lib user32 Alias SendMessageA (ByVal _ hwnd Selama, ByVal wMsg Selama, ByVal wParam Selama, ByVal lParam Selama) _ Selama
Fungsi Deklarasi Pribadi SendMessageP Lib user32 Alias SendMessageA (ByVal _ hwnd Selama, ByVal wMsg Selama, ByVal wParam Selama, lParam Selamanya) _ Selama
Fungsi Deklarasi Pribadi GetSysColor Lib user32 (ByVal nIndex Selama) Selama
Fungsi Deklarasi Pribadi SetSysColors Lib user32 (ByVal nChanges Selama, _ lpSysColor Selama, lpColorValues Selama) Selama
Konstan LVM_FIRST = &H1000
Konst LVM_GETITEMCOUNT = LVM_FIRST + 4
Konstanta LVM_SETTEXTCOLOR = LVM_FIRST + 36
Konstan LVM_REDRAWITEMS = LVM_FIRST + 21
Konstanta LVM_SETTEXTBKCOLOR = LVM_FIRST + 38
Konstanta LVM_SETITEMPOSITION = LVM_FIRST + 15
Const COLOR_DESKTOP = 1'Fungsi RestoreColor mengembalikan warna teks ikon default dan latar belakang
SubPemulihanWarna()
Redupkan Warna Selamanya
lWarna = GetSysColor(COLOR_DESKTOP)
SetSysColors 1, COLOR_DESKTOP, lWarna
Akhiri Sub
Sub SetIconText(clFore, clBack Selama, bTrans Sebagai Boolean)
Redupkan Jendela Selamanya
Redupkan lItemCount As Long 'Temukan jendela tempat grafik desktop ditempatkan dalam tiga langkah
hWindow = FindWindow(Manajer Program, Manajer Program)
hWindow = TemukanWindowEx(hWindow, 0, SHELLDLL_DefView, )
hWindow = TemukanWindowEx(hWindow, 0, SysListView32, )
Jika bTrans Lalu 'Latar belakang transparan
Kirim Pesan hWindow, LVM_SETTEXTBKCOLOR, 0, & HFFFFFFFF
Lain 'Latar belakang tidak transparan
SendMessage hWindow, LVM_SETTEXTBKCOLOR, 0, clBack
Akhiri Jika
'Atur warna teks ikon
SendMessage hWindow, LVM_SETTEXTCOLOR, 0, clFore 'Gambar ulang semua ikon
lItemCount = KirimPesan(hWindow, LVM_GETITEMCOUNT, 0, 0)
SendMessage hWindow, LVM_REDRAWITEMS, 0, lItemCount - 1
'Perbarui jendela
UpdateWindow hWindowEnd SubSub ArrangeDesktopIcon (iWidth Sebagai Integer, iHeight Sebagai Integer)
Redupkan hWindow Selama Redupkan i1, i2, i, iCount Sebagai Integer
Redupkan po Sebagai POINTAPI
'Temukan jendela tempat grafik desktop ditempatkan dalam tiga langkah
hWindow = FindWindow(Manajer Program, Manajer Program)
hWindow = TemukanWindowEx(hWindow, 0, SHELLDLL_DefView, )
hWindow = TemukanWindowEx(hWindow, 0, SysListView32, )
i1 = 20: i2 = 20
iCount = Kirim Pesan(hWindow, LVM_GETITEMCOUNT, 0, 0)
Untuk i = 0 Ke iCount - 1
po.x = i1: po.y = i2
'Kirim pesan LVM_SETITEMPOSITION untuk mengatur ikon
Hubungi SendMessage(hWindow, LVM_SETITEMPOSITION, i, i2 * 65536 + i1)
i1 = i1 + iLebar
Jika i1 > ((Lebar Layar / 15) - 32) Lalu
i1 = 20
i2 = i2 + iTinggi
Akhiri Jika
berikutnya saya
Kirim Pesan hWindow, LVM_REDRAWITEMS, 0, iCount - 1
'Perbarui jendela
PerbaruiJendela hWindow
Akhiri Sub
Sub Perintah Pribadi1_Klik()
'Atur warna teks ikon menjadi biru, warna latar belakang menjadi hitam, dan latar belakang menjadi transparan
SetIconText vbBlue, vbBlack, Benar
Akhir
Sub Perintah Sub Pribadi2_Klik()
Pulihkan Warna
Akhiri Sub
Sub Perintah Pribadi3_Klik()
'Susun ikon dalam satuan 100x100 piksel
SusunDesktopIcon 100, 100
Akhiri Sub
Sub Formulir_Load() Pribadi
Command1.Caption = Mengatur latar belakang teks
Command2.Caption = Mengembalikan latar belakang teks
Command3.Caption = Menyusun ikon desktop
Akhiri Sub
Jalankan program dan klik Command1. Anda dapat melihat bahwa latar belakang teks pada ikon desktop berubah menjadi biru. Jika Anda mengatur gambar desktop, Anda juga dapat melihat bahwa latar belakang teks menjadi transparan dan bukan blok warna jelek di bawah untuk mengembalikan pengaturan default Windows. Klik Command3 untuk mengatur ikon desktop Anda secara horizontal, tetapi hanya jika properti pengaturan otomatis ikon desktop diatur ke False. Program di atas berhasil berjalan di VB6, Windows98, dan Windows2000.