Thứ Tư, 8 tháng 4, 2009

Mỗi ngày một wallpaper

Có không ít ứng dụng có chức năng quản lý wallpaper, tự động đổi wallpaper… Trong VB6, chỉ cần biết sử dụng một số điều khiển cơ bản và cách thiết lập wallpaper là ta có thể viết những ứng dụng tương tự. Bài viết sau hướng dẫn cách thiết lập wallpaper trong VB6 thông qua việc viết một ứng dụng nhỏ có chức năng tự động thay đổi wallpaper tương ứng với mỗi ngày trong tuần.

1. Trước tiên, bạn cần 7 file hình bmp để làm wallpaper (tương ứng với 7 ngày trong tuần), được đặt tên “Sun.bmp”, “Mon.bmp”, “Tue.bmp”, “Wed.bmp”, “Thu.bmp”, “Fri.bmp”, “Sat.bmp”. Bạn đặt 7 file hình này trong cùng thư mục với chương trình (bạn có thể đặt chúng ở nơi khác nhưng nhớ đổi lại đường dẫn khi viết mã).

2. Bạn tạo một project mới kiểu Standard EXE. Vì chương trình không cần sử dụng Form nên bạn vào menu Project\ Remove Form1 để xóa bỏ Form1. Do đó, Sub Main sẽ được gọi đầu tiên khi thực hiện chương trình.

3. Bạn vào menu Project\ Add module để thêm một module. Sub Main được đặt trong module này. Bạn viết mã cho module như sau:

Option Explicit

Private Declare Function SystemParametersInfo Lib "user32" Alias "SystemParametersInfoA" (ByVal uAction As Long, ByVal uParam As Long, ByVal lpvParam As String, ByVal fuWinIni As Long) As Long

Const SPIF_UPDATEINIFILE = &H1

Const SPI_SETDESKWALLPAPER = 20

Private Sub Main()

Dim TenFile As String

TenFile = App.Path + "\" & Left(Format(Now, "dddd"), 3) & ".bmp"

SystemParametersInfo SPI_SETDESKWALLPAPER, 0, TenFile, SPIF_UPDATEINIFILE

End

End Sub

* Giải thích mã nguồn:

- Hàm API SystemParametersInfo dùng thiết lập wallpaper. Hàm này gửi yêu cầu (qua giá trị các tham số) cho hệ thống thực hiện. Muốn yêu cầu Windows thiết lập wallpaper, tham số thứ nhất phải là hằng số SPI_SETDESKWALLPAPER, tham số thứ hai mang giá trị 0, tham số thứ 3 chứa đường dẫn tới file hình làm wallpaper (file hình này phải có kiểu mở rộng bmp) - nếu tham số này là chuỗi rỗng sẽ bỏ wallpaper hiện tại, tham số thứ tư là hằng số SPIF_UPDATEINIFILE.

- Lệnh App.path cho biết thư mục chứa chương trình.

- Lệnh Format(Now, "dddd") cho biết thứ (bằng tiếng Anh) của ngày hiện tại (ví dụ Tuesday). Lệnh Left(Format(Now, "dddd"), 3) lấy 3 ký tự đầu của thứ này (ví dụ Tue) để phù hợp tên file hình.

4. Cuối cùng, bạn biên dịch chương trình thành file exe rồi tạo shortcut cho file exe này trong menu Startup (lưu ý là bạn không được chép file exe vào menu Startup vì chương trình cần nằm cùng thư mục với các file hình). Như vậy, mỗi khi máy tính khởi động, chương trình được gọi và xem hiện tại là ngày nào trong tuần để thiết lập wallpaper tương ứng.

Ngô Bảo Khoa
(Thế giới @ số 85)

Không có nhận xét nào:

Đăng nhận xét