|
KINH NGHIỆM LẬP
TRÌNH |
|
Viết chương trình sao chép
nhạc từ WINAMP |
|
Khi nghe nhạc từ chương trình WinAmp, có thể
bạn có nhu cầu như thế này: các bản nhạc trong danh
sách chọn (playlist) nằm rải rác ở nhiều thư mục
khác nhau và bạn muốn sao chép chúng vào một thư mục
dành riêng của mình. Tôi viết chương trình bằng VB6
để đáp ứng nhu cầu nêu trên, xin chia sẻ kinh nghiệm
"vừa làm vừa... chơi" cho những bạn mới làm quen với
VB. |
|
Thiết kế giao diện |
|
Bạn hãy tạo dự án mới, đặt các
thuộc tính cho biểu mẫu: [Caption: “Copy
Utility”, BorderStyle: 1-Fixed Single,
MinButton: True]. Bạn kéo các điều khiển lên
biểu mẫu (hình 1) với thuộc tính như sau: |
- Label->Caption=”Select file:”
- TextBox->Name=txtFile
- CommandButton->Name=cmdSelectFile
- Label->Caption=”Select folder”
- TextBox->Name=txtFolder
- CommandButton->Name=cmdSelectFolder
- CommandButton->Name=cmdCopy
- CommandButton->Name=cmdExit |

H1 |
|
Ô txtFile dùng để lưu đường dẫn của tập tin
nhạc, ô txtFolder sẽ lưu đường dẫn của thư
mục dành riêng mà bạn muốn cất giữ tập tin nhạc. Để
cho tiện lợi, mỗi khi chạy chương trình, ta sẽ nạp
nội dung từ bảng nhớ của hệ điều hành vào ô này. |
|
Viết mã chương trình |
|
Bạn bấm đôi vào phần trống của biểu mẫu vừa tạo, gõ
vào đoạn mã như sau: |
|
Private Sub Form_Load()
txtFile.Text = Clipboard.GetText
End Sub |
|
Bạn
mở WinAmp, bấm phải chuột vào tên tập tin nhạc đang
chơi, chọn View file info rồi sao chép đường
dẫn tập tin nhạc từ ô đầu tiên (hình 2) vào bộ nhớ
đệm (clipboard). Quay lại với chương trình VB, bấm
phím F5 để chạy thử, ta thấy đường dẫn của tập tin
nhạc đã nằm sẵn trong ô txtFile rồi. Bạn bấm
đôi vào nút cmdCopy và gõ vào đoạn mã 1 để
thực hiện việc sao chép tập tin nhạc. Thế là xong,
bạn lưu chương trình và biên dịch thành ứng dụng
bằng cách chọn File > Make Copy.Exe. |
|

H2 |
|
Đoạn mã 1 |
Private Sub cmdCopy_Click()
Dim fso As Object
Rem tạo một đối tượng FileSystemObject
Set fso = CreateObject("Scripting.FileSystemObject")
Dim f_source, f_destionation As String
f_source = txtFile.Text
If Right(txtFolder.Text, 1) = "\" Then
f_dest = txtFolder.Text & Dir(txtFile.Text)
Else
f_dest = txtFolder.Text & "\" & Dir(txtFile.Text)
End If
Rem kiểm tra xem trong thư mục để chép đã có tập tin
nào trùng với tập tin đang xét không
If fso.FileExists(f_dest) = True Then
Rem hỏi xem người dùng có muốn chép đè lên không
If MsgBox("File Exist, Overwrite?", vbYesNo +
vbInformation) = vbYes Then
FileCopy f_source, f_dest
MsgBox "Copy Ok!"
Rem sau khi chép xong thì thoát khỏi chương trình
End
Else
Exit Sub
End If
Else
FileCopy f_source, f_dest
MsgBox "Copy Ok!"
End
End If
End Sub
Private Sub cmdExit_Click()
End
End Sub |
|
Một
tiện ích cực kì nhỏ như vậy nhưng chính tôi tìm hoài
cũng không thấy phần mềm có sẵn nào đáp ứng nhu cầu
của mình. Bạn có thể tải về từ www.echip.com.vn
chương trình CopyUtility hoàn chỉnh của tôi,
có thêm các chức năng: |
|
-
Nút cmdSelectFile cho phép bạn chọn tập tin.
- Nút cmdSelectFolder cho phép bạn chọn thư
mục.
- Lưu đường dẫn cuối vào Registry để mỗi lần
khởi động chương trình, bạn không phải gõ lại đường
dẫn.
- Kiểm tra sự tồn tại của thư mục với chức năng tự
động tạo thư mục. |
|
Chúc bạn thành công. |
|
Nguyễn Trần Huy Phong (Đà Lạt) |
|
|