Thông tin
  • Đánh dấu xác nhận câu hỏi đã được giải quyết để giúp diễn đàn nâng cao chất lượng [cách sử dụng]
  • Vui lòng đọc nội qui diễn đàn để tránh bị xóa bài viết [nội qui]
  • Tìm kiếm trước khi đặt câu hỏi

Hướng dẫn sử dụng VB 6.0 Resource Editor

Các bài viết hướng dẫn, giúp các bạn hiểu và tiếp cận với Visual Basic nhanh hơn

Cách tạo một chương trình Portable bằng VB6

Gửi bàigửi bởi T7 » Chủ nhật 06/04/2008 3:05 pm

Tên bài viết: Tạo một chương trình Portable bằng VB6
Tác giả: T7
Cấp độ bài viết: Beginner
Tóm tắt: Ai cũng biết phần mềm portable rồi phải hok ?. Trong bài viết này em sẽ hướng dẫn mọi người cách tạo ra một phần mềm portable từ VB6


Chắc hẳn mọi người ai cũng biết đến các chương trình Portable - rất gọn :D , chỉ có 1 file. Nguyên tắt hoạt động của nó là khi được kích hoạt thì nó sẽ xuất các file thực chất của chương trình được nén trong file chạy đó vào thư mục tạm rồi tiếng hành chạy, khi nào chạy xong thì thực hiện việc xóa các file ấy đi hoàn toàn và không còn một dấu vết nào cả . Và hôm nay em xin giới thiệu với mọi người cách tạo một chương trình như vậy cho chương trình của chính mình (hoặc bất kì chương trình nào khác, có thể sau khi học được các này mọi người có thể tạo một bộ Office Portable bằng VB6 cho riêng mình không chừng ấy chứ ).
Lý do để tạo một chương trình Portable:
- Sau khi tạo chương trình chỉ còn một file duy nhất so với một số chương trình có cả "đám rừng" file.
- Người dùng cũng thích xài chương trình portable hơn.
- Không sợ người dùng xóa bớt, lấy hoặc, thay đổi các file của chương trình - không lo chương trình bị hư hại gì cả ;)

---------------------------------------------------------

Và bây giờ chúng ta bắt đầu thiết kế một chương trình portable bằng VB6. :>

Trước tiên, ta tạo một project mới, tạo một module đặt tên tùy ý (tuy trong đây chúng ta sẽ không sử dụng đến form nhưng hãy cứ để đó để ta tạo icon cho chương trình - vì nếu không có form thì không tạo được icon cho chương trình portable của mình đâu). Sau đó bạn hãy dùng công cụ VB Resource Editor (biểu tượng giống registry, màu xanh ở trên thanh công cụ, nếu chưa có thì hãy vào Add-Ins > Add-Ins Manager... Trong list bên phải, chọn vào VB 6 Resource Editor và chọn hai dấu chọn bên dưới là Loaded/Unloaded và Load on Startup)
Sau đó chọn vào biểu tượng Add Custom Resource...(biểu tượng hình cửa sổ bị chia bốn, bên cạnh biểu tượng dấu chấm hỏi) và chọn những file của chương trình mình. Lưu ý: bạn nên chọn từng file để biết file mình add vô tên gì để lúc viết code xuất ra dễ dàng hơn. Xong bạn click vào nút lưu để lưu file này vào nơi lưu project cho tiện.

Và trong module, bạn thêm đoạn code này vô:
Mã: Chọn tất cả
  1. Option Explicit
  2. 'Trong trường hợp muốn xuất ra các file font để cài đặt thì thêm hai hàm api này vào:
  3. Private Declare Function AddFontResource Lib "gdi32" Alias "AddFontResourceA" (ByVal lpFileName As String) As Long
  4. Private Declare Function RemoveFontResource Lib "gdi32" Alias "RemoveFontResourceA" (ByVal lpFileName As String) As Long
  5. '--------------------------------------------------------------------------------
  6. Private Declare Function DeleteFile Lib "kernel32" Alias "DeleteFileA" (ByVal lpFileName As String) As Long 'Dùng để xóa file
  7. Private Declare Function GetTempPath Lib "kernel32" Alias "GetTempPathA" (ByVal nBufferLength As Long, ByVal lpBuffer As String) As Long 'Dùng để lấy thư mục tạm (Temp, không phải cái Window\Temp đâu nhé ^^) của máy tính - nơi mà tất cả các chương trình portable xuất file tạm của chương trình mình vô
  8.  
  9. Sub Main()
  10. Dim strTemp As String
  11. strTemp = String(100, Chr$(0))
  12. GetTempPath 100, strTemp 'Lấy path của thư mục tạm vào biến strTemp
  13. strTemp = Left$(strTemp, InStr(strTemp, Chr$(0)) - 1)
  14. '-----------------------------------
  15. Dim File() As Byte
  16. Dim Cong
  17. Cong = FreeFile
  18.  
  19. '<<<<<<<<<Vị trí 1>>>>>>>>>>
  20. '-----------------------------------
  21.  
  22. '<<<<<<<<<Vị trí 2>>>>>>>>>>
  23.  
  24. Dim WshShell
  25. Set WshShell = CreateObject("WScript.Shell")
  26. WshShell.Run """" & strTemp & "<Tên của file thực thi chương trình (exe)>""", , True 'Tiến hành chạy file của chương trình đã xuất ra trong thư mục tạm, biến True ở đây là để gán giá trị Wait=True (Giá trị để cho lúc chạy chương trình đã dùng để tạo chương trình portable của ta thì nó sẽ đợi cho đến khi chương trình tắt mà thực hiện lện tiếp theo)
  27. '-----------------------------------
  28. '<<<<<<<<<Vị trí 3>>>>>>>>>>
  29.  
  30. End Sub


Ở đây, vị trí 1 bạn sẽ đánh code theo mẫu sau:
Mã: Chọn tất cả
  1. File = LoadResData(<STT của file trong resource>, "CUSTOM")
  2. Open strTemp & "<Tên File>" For Binary As Cong
  3.     Put Cong, , File
  4. Close Cong


Tùy theo chương trình của bạn có bao nhiêu file đã add vô resource mà viết đoạn code trên bấy nhiêu (nhớ là phải viết đúng tên của từng file tương ứng được xuất ra trong resource, đó cũng là lí do mà lúc add file vô resource em khuyên mọi người nên add từng file để nhớ tên của file, tránh bị nhầm lẫn :D )

vị trí 2, nếu chương trình của chúng ta mang theo font và đã xuất ra tại thư mục tạm thì ta sẽ thực hiện lệnh cài đặt các font này vào hệ thống để chương trình của chúng ta có thể hiển thị đúng font, ta cài đặt từng font theo mẫu:
Mã: Chọn tất cả
  1. AddFontResource strTemp & "<Tên Font>"

Vd:
Mã: Chọn tất cả
  1. AddFontResource strTemp & "myfont.ttf"

Chú ý là file font được xuất ra ở vị trí 1 tên gì thì ta cũng phải viết code để add đúng tên đó

Và ở Vị trí 3, ta sẽ đánh code tương ứng để xóa các file mình đã xuất ra theo mẫu sau (thế mới là Portable chứ ;) )
Còn nếu muốn xóa luôn mấy cái font đã cài đặt thì dùng lệnh:
Mã: Chọn tất cả
  1. RemoveFontResource strTemp & "<Tên Font>"

VD:
Mã: Chọn tất cả
  1. RemoveFontResource strTemp & "myfont.ttf"

và sau đó ta xóa file
Mã: Chọn tất cả
  1. DeleteFile strTemp & "<Tên File>"

Lưu ý là ta cần thực hiện lệnh xóa font cài đặt trước rồi mới thực hiện lệnh xóa file


Mọi người chú ý ở phần:
WshShell.Run """" & strTemp & "<Tên của file thực thi chương trình (exe)>""", , True
phải đánh đúng tên của file chạy chương trình nhé

Rồi, việc cuối cùng là vào menu project > [Tên Project] Properties, chọn Startup Object là Sub Main. Còn nếu muốn thêm icon cho chương trình portable của mình thì cứ chọn icon cho cái form rãnh hơi em đã kêu đừng xóa (ở trên đầu) là được =D>
Ok, chạy thử chương trình và tận hưởng thành quả đi :D
Nếu đủ kiên trì thì mọi người cũng có thể tạo luôn cho mình một VB6 Portable luôn cũng được :>
Còn đây là một chương trình portable mẫu + SOURCE, Portable Easy EjectCD v1.2 B-)
Đánh giá chủ đề: Evaluations: 0, 0.00 on the average.Evaluations: 0, 0.00 on the average.Evaluations: 0, 0.00 on the average.Evaluations: 0, 0.00 on the average.Evaluations: 0, 0.00 on the average.Evaluations: 0, 0.00 on the average.
Thanks T7 for your sharing!
Sửa lần cuối bởi T7 vào ngày Chủ nhật 07/12/2008 9:05 am với 1 lần sửa trong tổng số.
While (i <= you) i++;
Hình đại diện của thành viên
T7
Thành viên danh dự
Thành viên danh dự
 
Bài viết: 415
Ngày tham gia: Thứ 5 24/05/2007 8:19 pm
Đến từ: Long Xuyên - An Giang
Đã cảm ơn: 0 lần
Được cảm ơn: 12 lần

Sử dụng Resources

Gửi bàigửi bởi hdn » Chủ nhật 06/04/2008 7:00 pm

Tên bài viết: Sử dụng Resources
Tác giả: Sưu tầm
Cấp độ bài viết: Mọi cấp độ
Tóm tắt: Sử dụng Resouces để đính kèm mọi tập tin vào chương trình của bạn


Đây là bài viết mình sưu tầm được trên PSCode, rất hữu dụng!!! Giúp bạn có thể đính kèm mọi tập tin (OCX, hình ảnh, âm thanh, phim, Flash...) vào ứng dụng của bạn mà không cần dùng bất cứ phần mềm gì khác...

BƯỚC 1: Vào menu Add-Ins chọn Add-In Manager
Hình ảnh
BƯỚC 2: Chọn VB 6 Resource Editor
Hình ảnh
BƯỚC 3: Mở Resource Editor và Add 1 CUSTOM Resource
Hình ảnh
BƯỚC 4: Add vào một file bạn cần, ở đây là file TABCTL32.OCX
Hình ảnh
BƯỚC 5: Lưu lại bằng nút hình cái đĩa mềm
BƯỚC 6: Code - Dùng khi nào bạn muốn xuất file OCX đó ra
Mã: Chọn tất cả
  1. Private Sub InstallTabCTL32_OCX()
  2.   On Error Resume Next
  3.   MKDir “c:\Program Files\”
  4.   MKDir “c:\Program Files\MyAppFolder\”
  5.   On Error GoTo 0
  6.   Dim bytResourceData()   As Byte
  7.   bytResourceData = LoadResData(101, "CUSTOM")
  8.   Open "c:\Program Files\MyApp\TABCTL32.OCX" For Binary Shared As #1
  9.   Put #1, 1, bytResourceData
  10.   Close
  11. End Sub

Xong rồi, chỉ thế thôi, với các đối tượng khác, bạn cũng làm tương tự như vậy
:|
Hình đại diện của thành viên
hdn
Thành viên tâm huyết
Thành viên tâm huyết
 
Bài viết: 319
Ngày tham gia: Thứ 4 26/03/2008 7:09 pm
Đã cảm ơn: 1 lần
Được cảm ơn: 3 lần

Re: Sử dụng Resources

Gửi bàigửi bởi hdn » Thứ 5 03/07/2008 10:26 pm

mình phải tự viết code cho nó đăng kí, code thì như thế này:
Mã: Chọn tất cả
  1. shell "regsvr32 /s 'đường dẫn đến file ocx vừa bung'", 1

tức là dùng hàm shell gọi lệnh regsvr32 để đăng kí
:|
Hình đại diện của thành viên
hdn
Thành viên tâm huyết
Thành viên tâm huyết
 
Bài viết: 319
Ngày tham gia: Thứ 4 26/03/2008 7:09 pm
Đã cảm ơn: 1 lần
Được cảm ơn: 3 lần

Re: Sử dụng Resources

Gửi bàigửi bởi thuat » Thứ 6 04/07/2008 5:27 am

Ồ thì ra là dùng hàm Shell để gọi trình đăng ký mà mình không nghĩ ra! Cảm ơn hdn nhé! À đó là đăng ký các file OCX và DLL còn file tlb thì đăng ký như thế nào ấy nhỉ? Trong Inno Setup thì dùng lệnh regtypelib còn trong VB6 thì mình không biết, chỉ mình với nhé!
http://ththanhdinh.pgdviettri.edu.vn
thuat
Guru
Guru
 
Bài viết: 184
Ngày tham gia: Thứ 5 27/03/2008 8:24 pm
Đến từ: Việt Trì - Phú Thọ
Đã cảm ơn: 0 lần
Được cảm ơn: 5 lần

Re: Sử dụng Resources

Gửi bàigửi bởi hdn » Thứ 6 04/07/2008 8:20 am

TLB thì có thể dùng cái này
Mã: Chọn tất cả
  1. Public Declare Function RegisterTLB Lib "vb6stkit.dll" (ByVal lpTLBName As String) As Integer

cách dùng
Mã: Chọn tất cả
  1. RegisterTLB "đường dẫn"

(mình chưa thử :D)
:|
Hình đại diện của thành viên
hdn
Thành viên tâm huyết
Thành viên tâm huyết
 
Bài viết: 319
Ngày tham gia: Thứ 4 26/03/2008 7:09 pm
Đã cảm ơn: 1 lần
Được cảm ơn: 3 lần

Re: Sử dụng Resources

Gửi bàigửi bởi tuyen_dt18 » Thứ 5 16/10/2008 4:34 pm

Có anh em nào biết cách dùng Resource để lưu Cursor và khi dùng thì Load ra thế nào không ?

Lưu thì tôi đã là thử thành công rồi , và khi dùng hàm LoadResPictures để tải nó ra thì nhận được một số dạng Long, nhưng không biết đưa kết quả này vào đâu để thay đổi hình con chuột nữa .
Xin các pro chỉ giáo !
Lưu Cursor :
Mở ResourceEditor ra , nhấn vào biểu tượng con trỏ chuột trên thanh công cụ của cửa sổ
Sau đó Browse đến tệp tin .Cur
Nhấn OK là xong

Tải con trỏ chuột :
Dim hCur As Long
hCur = LoadResPictures(101,vbResCursor)
Đến đây thì chịu luôn !
TRƯỜNG SA, HOÀNG SA THUỘC CHỦ QUYỀN CỦA NƯỚC CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM !
Hình đại diện của thành viên
tuyen_dt18
Guru
Guru
 
Bài viết: 253
Ngày tham gia: Thứ 7 19/04/2008 8:46 pm
Đến từ: Hưng Yên
Đã cảm ơn: 0 lần
Được cảm ơn: 40 lần

Re: Sử dụng Resources

Gửi bàigửi bởi DQHung » Thứ 5 16/10/2008 4:52 pm

Đơn giản thôi :
Mã: Chọn tất cả
  1. Private Sub Form_Load()
  2.     Set Screen.MouseIcon = LoadResPictures(101,vbResCursor)
  3.     Screen.MousePointer = 99
  4. End Sub
Hình đại diện của thành viên
DQHung
Guru
Guru
 
Bài viết: 575
Ngày tham gia: Thứ 2 12/02/2007 3:24 pm
Đến từ: Rach Gia - Kien Giang
Đã cảm ơn: 0 lần
Được cảm ơn: 39 lần

Hướng dẫn sử dụng VB 6.0 Resource Editor

Gửi bàigửi bởi truongphu » Thứ 3 13/01/2009 8:28 am

Tên bài viết: Hướng dẫn sử dụng VB 6.0 Resource Editor
Tác giả: NoBi và nhiều người
Cấp độ bài viết: Chưa đánh giá
Tóm tắt: Hướng dẫn sử dụng VB 6.0 Resource Editor



Hướng dẫn sử dụng VB 6.0 Resource Editor
gửi bởi NoBi vào ngày Thứ 4 25/05/2005 12:25 am

Một vấn đề mà người lập trình VB hay gặp phải là sai đường dẫn tập tin dùng trong chương trình. Ví dụ như khi sử dụng tập tin (file) ảnh với hàm LoadPicture(), nếu vì lý do nào đó mà file này không hiện diện ở đúng đường dẫn thì sẽ gây báo lỗi hoặc chương trình thực thi không theo đúng thiết kế. Để giải quyết vấn đề này, VB 6.0 có một công cụ rất hay, không thể thiếu cho các nhà lập trình VB chuyên nghiệp, đó là RESOURCE EDITOR (RE).

Đây là công cụ cho phép tạo cho chương trình một nguồn dữ liệu gồm các file, được lưu dưới dạng file *.RES khi lập trình và được ghi chung vào file *.EXE khi biên dịch ra file thực thi.
RE làm việc với 5 loại tài nguyên chính: file ảnh (bitmap), file biểu tượng (icon), file con trỏ của Windows (cursor), bảng chuỗi ký tự (string table) và các dạng file dữ liệu khác do người dùng định nghĩa. Các file tài nguyên được RE quản lý theo số chỉ mục (Index – viết tắt là ID), định dạng tài nguyên (type) và ngôn ngữ (language). ID trong RE có giá trị từ 1 đến 32767 (đối với string table thì từ 1 đến 65535) và được tự động đánh số bắt đầu từ 101.
Bạn cũng có thể dùng dạng chuỗi ký tự cho ID của file tài nguyên (riêng string table chỉ cho phép ID dạng số), lưu ý là ký tự trắng (space) sẽ được tự động bỏ còn các ký tự đặc biệt (ví dụ: &,^,%,$,@,# ...) thì không được dùng. Nếu nguồn tài nguyên của bạn có nhiều file thì tốt nhất nên đánh ID dưới dạng tên file tương ứng để dễ nhớ.
VB có 3 hàm hỗ trợ việc truy cập và sử dụng các file trong resource.

Xem chi tiết tại đây :
http://www.pcworld.com.vn/pcworld/magaz%20...%205c585e5c5e
Ta cứ tưởng trần gian là cõi thật
Thế cho nên tất bật đến bây giờ.



Re: Sử dụng resource
gửi bởi ngochoan2006 vào ngày Thứ 2 11/02/2008 10:03 am

Mình copy 1 bài viết của PC World cho bạn đọc này :
Một vấn đề mà người lập trình VB hay gặp phải là sai đường dẫn tập tin dùng trong chương trình. Ví dụ như khi sử dụng tập tin (file) ảnh với hàm LoadPicture(), nếu vì lý do nào đó mà file này không hiện diện ở đúng đường dẫn thì sẽ gây báo lỗi hoặc chương trình thực thi không theo đúng thiết kế. Để giải quyết vấn đề này, VB 6.0 có một công cụ rất hay, không thể thiếu cho các nhà lập trình VB chuyên nghiệp, đó là RESOURCE EDITOR (RE).

Đây là công cụ cho phép tạo cho chương trình một nguồn dữ liệu gồm các file, được lưu dưới dạng file *.RES khi lập trình và được ghi chung vào file *.EXE khi biên dịch ra file thực thi.
RE làm việc với 5 loại tài nguyên chính: file ảnh (bitmap), file biểu tượng (icon), file con trỏ của Windows (cursor), bảng chuỗi ký tự (string table) và các dạng file dữ liệu khác do người dùng định nghĩa. Các file tài nguyên được RE quản lý theo số chỉ mục (Index – viết tắt là ID), định dạng tài nguyên (type) và ngôn ngữ (language). ID trong RE có giá trị từ 1 đến 32767 (đối với string table thì từ 1 đến 65535) và được tự động đánh số bắt đầu từ 101.
Bạn cũng có thể dùng dạng chuỗi ký tự cho ID của file tài nguyên (riêng string table chỉ cho phép ID dạng số), lưu ý là ký tự trắng (space) sẽ được tự động bỏ còn các ký tự đặc biệt (ví dụ: &,^,%,$,@,# ...) thì không được dùng. Nếu nguồn tài nguyên của bạn có nhiều file thì tốt nhất nên đánh ID dưới dạng tên file tương ứng để dễ nhớ.
VB có 3 hàm hỗ trợ việc truy cập và sử dụng các file trong resource:

Cửa sổ chính của Resource Editor

LoadResPicture(index,format) as Picture

LoadResString(index) as String

LoadResData(index,format) as ByteArray

• Hàm LoadResPicture(index,format) có giá trị trả về phụ thuộc vào tham số format, giá trị này có thể tham khảo trong bảng 1.

Tuỳ theo loại file trong resource mà ta truyền tham số tương ứng cho hàm LoadResPicture để có giá trị trả về phù hợp.

• Hàm LoadResString(index) trả về String tương ứng với index trong String Table.

• Hàm LoadResData(index,format) trả về một mảng các giá trị byte (Byte Array). Tham số format là tên của loại dữ liệu mà người dùng định nghĩa trong RE (mặc định là “Custom” khi thêm loại dữ liệu khác). Đây là một hàm đặc biệt cho phép người dùng nạp vào bộ nhớ hầu hết các loại dữ liệu với dung lượng có thể lên tới hàng chục MB hay hơn. Có thể dùng hàm này thay cho hàm LoadResPicture và LoadResString để nạp các loại dữ liệu đã giới thiệu ở trên (bitmap, icon, cursor), tuy nhiên việc làm này sẽ khá phức tạp vì hàm LoadResData trả về một chuỗi các byte chứ không trả về một file đã được định dạng sẵn (như file bitmap). Sau đây là một số ví dụ về sử dụng

các hàm truy cập tài nguyên trong Resource File.

Ví dụ 1: Dùng hàm LoadResPicture và LoadResString để lấy tài nguyên từ trong file *.RES.

Sau khi tạo một project mới có tên là prj_VbResource bạn hãy thao tác theo các bước sau:

Bước 1:

Vào menu Add-Ins/Add-Ins Manager, khi xuất hiện cửa sổ Add-Ins Manager chọn mục VB 6 Resource Editor bên cột Available Add-Ins (nếu không có, bạn hãy tìm “path” của file resedit.dll, thường là “Program Files\Microsoft Visual Studio\VB98\Wizards”, và “đăng ký” thư viện này bằng cách vào Start.Run, nhập lệnh regsvr32 <path>\resedit.dll). Chọn mục Loaded/Unloaded nếu bạn muốn nạp/dừng nạp RE ngay lập tức và Load On Startup nếu bạn muốn VB tự động nạp RE mỗi khi VB khởi chạy, sau cùng chọn OK.

Bước 2:

Vào menu Tools, chọn Resource Editor hoặc biểu tượng của RE trên toolbar.

Bước 3:

Đây là bước quan trọng, bạn phải thiết lập hệ thống các file resource của mình cẩn thận và chính xác. Trên toolbar của RE là một số nút cho phép nhập các loại file cơ bản vào resource của chương trình: String Table, Cursor, Icon, Bitmap và Custom Data.

• Chọn biểu tượng String Table sẽ xuất hiện một bảng gồm 2 cột ID và Language. Khi nhấn đúp vào nhãn
Language bạn sẽ thấy xuất hiện một Combo box các ngôn ngữ trên thế giới. Nội dung của Combo box này được lấy chủ yếu từ mục Region Setting trong Control Panel của Windows. Để tạo một String table gồm nhiều ngôn ngữ bạn có thể chọn ngôn ngữ cho một cột rồi tiếp tục nhấn vào biểu tượng , bảng sẽ có thêm cột mới. Tạo một String Table như minh hoạ sau:

Như vậy có thể thấy với cùng một ID nhưng có đến 2 String tương ứng với hai loại ngôn ngữ. Khi gọi ID 101 hàm LoadResString sẽ tự động kiểm tra ngôn ngữ hiện tại máy đang dùng rồi đối chiếu với các loại ngôn ngữ tương ứng trong String Table, nếu không có trong String Table thì hàm sẽ tự động nạp String ở cột đầu tiên (ở ví dụ này là “Xin Chào !” nếu bạn chọn ngôn ngữ của máy là Vietnamese).

• Thêm một Cursor (ID=103), một Icon (ID=104) và một Bitmap (ID=105) tuỳ ý vào resource.

• Chọn Save, ghi resource vào file .../prj_VbResource.res

• Trong project prj_VbResource tạo một Form mới (Form1) cùng 3 Command Button (Command1, Command2, Command3), một TextBox (Text1) và một Image (Image1) rồi gõ đoạn code sau vào phần code của form:

Mã: Chọn tất cả
  1. Option Explicit
  2.  
  3. Private Sub Form_Load()
  4.  
  5. Form1.Caption = LoadResString(102)
  6.  
  7. Form1.Icon = LoadResPicture(104, 1)
  8.  
  9. Form1.MousePointer = vbCustom
  10.  
  11. Form1.MouseIcon = LoadResPicture(103, 2)
  12.  
  13. Command1.Caption = “String
  14.  
  15. Command2.Caption = “Picture”
  16.  
  17. Command3.Caption = “Exit
  18.  
  19. Text1.Font.Size = 12
  20.  
  21. Text1.ForeColor = vbBlue
  22.  
  23. Text1.Text = “”
  24.  
  25. Image1.BorderStyle = 1
  26.  
  27. Image1.Stretch = True
  28.  
  29. End Sub
  30.  
  31.  
  32. Private Sub Command1_Click()
  33.  
  34. Text1.Text = LoadResString(101)
  35.  
  36. End Sub
  37.  
  38. Private Sub Command2_Click()
  39.  
  40. Image1.Picture = LoadResPicture(105, 0)
  41.  
  42. End Sub
  43.  
  44.  
  45. Private Sub Command3_Click()
  46.  
  47. End
  48.  
  49. End Sub
  50.  
  51. ‘ ********* End Code *********




Hãy thử chuyển ngôn ngữ hiện tại sang English (dùng Region Setting trong Control Panel của Windows), bạn sẽ thấy sự khác biệt!

Ví dụ 2: Dùng định dạng file “custom”

Nếu chỉ sử dụng 2 hàm LoadResString và LoadResPicture thì bạn chỉ có thể sử dụng resource từ những file có định dạng *.ico, *.cur, *.bmp, còn với những file có định dạng khác như *.gif, *.wav, *.avi , *.mdb v.v... thì hai hàm này thì chưa đủ. Hàm LoadResData trả về một định dạng hoàn toàn không xác định đó là một mảng các byte (Byte Array). Kết hợp mảng dữ liệu này với một số hàm WinAPI và các lệnh thao tác file của VB, bạn hoàn toàn có thể có được một resource theo ý muốn. Ví dụ sau sẽ hướng dẫn bạn tạo một resource chứa file *.wav và *.avi

Mở một Project mới, dùng VB Resource Editor thêm vào resource một file *.wav với ID=101 và Type=”Sound” cùng một file *.avi với ID=102 và Type=”Video”.
Tạo một Form mới (Form1) với 4 Command Button. Chọn menu Project/Components, chọn Microsoft Windows Common Controls-2 6.0, sau đó tạo một control Animation mới. Tạo một Module mới có nội dung sau:

Mã: Chọn tất cả
  1. Option Explicit
  2.  
  3. ‘ ********* Module Code **********
  4.  
  5. Private Declare Function sndPlaySound Lib “WINMM.DLL” Alias_ “sndPlaySoundA” (lpszSoundName As Any, ByVal uFlags As Long) As Long
  6.  
  7. Const SND_ASYNC = &H1
  8.  
  9. Const SND_NODEFAULT = &H2
  10.  
  11. Const SND_MEMORY = &H4
  12.  
  13. Dim SoundBuffer() As Byte
  14.  
  15. Public Sub BeginPlaySound(ByVal ResourceID As Integer)
  16.  
  17. SoundBuffer = LoadResData(ResourceId, “Sound”)
  18.  
  19. sndPlaySound SoundBuffer(0), SND_ASYNC Or SND_NODEFAULT Or SND_MEMORY
  20.  
  21. End Sub
  22.  
  23. Public Sub EndPlaySound()
  24.  
  25. sndPlaySound ByVal vbNullString, 0&
  26.  
  27. End Sub
  28.  
  29. Public Function CreateFileRs(ByVal FilePath As String, ByVal ResID As String, ByVal ResType As String) As
  30.  
  31. Boolean
  32.  
  33. Dim hFile As Long
  34.  
  35. Dim FileArr() As Byte
  36.  
  37. FileArr = LoadResData(ResID, ResType)
  38.  
  39. On Error Resume Next
  40.  
  41. If Len(FileArr(1)) > 0 Then
  42.  
  43. hFile = FreeFile()
  44.  
  45. Open FilePath For Binary Access Write As #hFile
  46.  
  47. Put #hFile, 1, FileArr
  48.  
  49. Close #hFile
  50.  
  51. CreateFileRs = True
  52.  
  53. End If
  54.  
  55. End Function
  56.  
  57. ‘ ***** End Module Code *****


Sau đó tiếp tục nhập đoạn code sau vào phần form code:

Mã: Chọn tất cả
  1. Option Explicit
  2.  
  3. ‘ ********* Form Code *******
  4.  
  5. Private Sub Command1_Click()
  6.  
  7. Animation1.Play
  8.  
  9. End Sub
  10.  
  11. Private Sub Command2_Click()
  12.  
  13. Animation1.Stop
  14.  
  15. End Sub
  16.  
  17. Private Sub Command3_Click()
  18.  
  19. BeginPlaySound 101
  20.  
  21. End Sub
  22.  
  23. Private Sub Command4_Click()
  24.  
  25. End
  26.  
  27. End Sub
  28.  
  29. Private Sub Form_Load()
  30.  
  31. Command1.Caption = “Play”
  32.  
  33. Command2.Caption = “Stop”
  34.  
  35. Command3.Caption = “Play Sound”
  36.  
  37. Command4.Caption = “Exit
  38.  
  39. If Dir(“c:\vbResAvi.avi) = “” Then
  40.  
  41. CreateFileRs “c:\vbResAvi.avi”, 102, “Video”
  42.  
  43. End If
  44.  
  45. Animation1.Open “c:\vbResAvi.avi
  46.  
  47. End Sub
  48.  
  49.  
  50.  
  51. Private Sub Form_Unload(Cancel As Integer)
  52.  
  53. EndPlaySound
  54.  
  55. End Sub



Hàm CreateFileRs() nhận 3 tham số sau:

- FilePath: tham số xác định đường dẫn trên đĩa cứng nơi sẽ sao chép dữ liệu trong Reource ra một file mới. Đường dẫn này phải gồm cả tên và phần mở rộng của file. Ví dụ: “C:\temp\vbRes.AVI”.

- ResID và ResType là các tham số xác định ID và định dạng của file cần copy trong Resource.

Có thể ví RE như một chiếc “máy ảnh” chuyên sao chụp file thông tin lên “phim”, còn hàm CreateFileRs “rửa” những đoạn “phim” đó ra giấy. Bạn cũng có thể sử dụng hàm này thay cho hàm LoadResPicture để sao chép các tài nguyên bitmap trong Resource ra các file ảnh thông thường rồi dùng hàm LoadPicture để sử dụng các file ảnh đó. Kết hợp RE với hàm CreateFileRs, bạn hoàn toàn có thể đọc vào và ghi ra từ resource của chương trình tất cả các loại file dữ liệu, việc sử dụng các file này như thế nào là tuỳ ứng dụng. Hy vọng với công cụ Resource Editor, bạn không còn phải băn khoăn trong việc lựa chọn và xây dựng hệ thống tài nguyên cho chương trình để chạy trên bất kỳ máy tính nào. Chúc bạn thành công!

Trần Nam Khanh - FPT APTECH
trannamkhanh@yahoo.com
Kiến thức là vô hạn!Hiểu biết của tui thì có hạn !Nên dừng có ngạc nhiên khi tôi không biết 1+2 =? !
ngochoan2006
Coder Group


Tìm ví dụ mở file động gif có sử dụng Resource Editor
gửi bởi dong vào ngày Thứ 5 23/08/2007 10:57 am


Resource Editor và bitmap
gửi bởi dong vào ngày Thứ 5 13/09/2007 1:33 pm

hỏi cách tạo files *.RES

gửi bởi duy_mm25 vào ngày Thứ 3 03/10/2006 12:44 pm

Làm thế nào để khi chương trình chạy sẽ sinh ra một file nào đó?

gửi bởi le dac luyen vào ngày Thứ 5 15/09/2005 8:22 am
o0o--truongphu--o0o

.........
Ghé thăm:
Chuyện Linh Tinh
Hình đại diện của thành viên
truongphu
VIP
VIP
 
Bài viết: 4724
Ngày tham gia: Chủ nhật 04/11/2007 10:57 am
Đến từ: Cam Đức, Khánh hòa
Đã cảm ơn: 13 lần
Được cảm ơn: 471 lần

Re: Hướng dẫn sử dụng VB 6.0 Resource Editor

Gửi bàigửi bởi truongphu » Thứ 4 14/01/2009 12:50 pm

Để minh họa bài viết ở trên: 'Hướng dẫn sử dụng VB 6.0 Resource Editor"
tôi gởi project có chứa 4 file: 101 = MDB, 102 = file ảnh...
Hy vọng các bạn thích
Tập tin đính kèm
Resource Custom File Demo.zip
(353.46 KiB) Đã tải về 2058 lần
o0o--truongphu--o0o

.........
Ghé thăm:
Chuyện Linh Tinh
Hình đại diện của thành viên
truongphu
VIP
VIP
 
Bài viết: 4724
Ngày tham gia: Chủ nhật 04/11/2007 10:57 am
Đến từ: Cam Đức, Khánh hòa
Đã cảm ơn: 13 lần
Được cảm ơn: 471 lần


Quay về [VB] Bài viết hướng dẫn

Ai đang trực tuyến?

Đang xem chuyên mục này: Không có thành viên nào đang trực tuyến1 khách

cron