10. Làm sao để play cỏc file: MID, WAV ?
Nếu bạn sử dụng Visual Basic 5.0 trở lờn thỡ cú thuộc tớnh Locked, nếu gỏn là True thỡ người dựng khụng thể thay đổi nội dung của TextBox (Read Only).
Cú một số ý kiến cho rằng, bạn cần chộp lấy sự kiện KeyPress và
KeyDown làm cho chỳng thành zero. Tuy nhiờn, giải phỏp tốt nhất vẫn là hàm Windows API SendMessage.
Global Const WM_USER = &H400
Global Const EM_SETREADONLY = (WM_USER + 31) Declare Function SendMessage Lib "User" (ByVal hWnd As Integer ByVal wMsg As Integer, ByVal wParam As Integer, lParam As Any) As Long
SendMessage(Text1.hWnd, EM_SETREADONLY, 1, 0)
Cỏch trờn người sử dụng vẫn cú thể Copy nội dung. Nếu cần bạn thực sự cần cấm người dựng Copy nội dung, bạn cú thể loại bỏ tổ hợp phớm Ctrl-C bằng cỏch "đún đỏnh" khi xảy ra sự kiện KeyPress.
9. Mở file với chương trỡnh liờn kết (associated program)
1. Kiểm tra việc nhập liệu vào TextBox
2. Chuyển đổi ký tự trong cỏc đối tượng cú khả năng hiệu chỉnh (Editbox) thành chữ hoa
3. Bỏ qua một số ký tự khi gừ văn bản trong TextBox 4. Xúa cỏc mục chọn (Item) trong Combo/List Box
5. Làm sao để tắt tớnh năng Wordwrap của Rich TextBox 6. Thờm một dũng mới vào cuối TextBox đang chứa văn bản 7. Làm sao để Shut down hay Reboot lại Windows ?
nội dung
9. Mở file với chương trỡnh liờn kết (associated program)
10. Làm sao để play cỏc file: MID, WAV ?
Hàm Shell() hơi bị bất tiện vỡ chỉ gọi được chương trỡnh trực tiếp từ file exe. Khụng giống như Windows, thớ dụ như khi double click lờn file DOC sẽ mở Microsoft Word, file TXT sẽ mở Notepad. Bạn cũng cú thể viết một Module tạo cỏc mối liờn kết như vậy trong Visual Basic để dễ dàng trong việc gọi cỏc ứng dụng.
Cỏc khai bỏo API
#IF WIN32 THEN
Private Declare Function ShellExecute Lib "shell32.dll" Alias _ "ShellExecuteA" ByVal hwnd As Long, ByVal lpOperation As String, _
ByVal lpFile As String, ByVal lpParameters As String, _ ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long
Private Declare Function GetDesktopWindow Lib "user32" () As Long
#ELSE
Declare Function ShellExecute Lib "SHELL" (ByVal hwnd%, _ ByVal lpszOp$, ByVal lpszFile$, ByVal lpszParams$, _
ByVal lpszDir$, ByVal fsShowCmd%) As Integer
Declare Function GetDesktopWindow Lib "USER" () As Integer
#END IF
Private Const SW_SHOWNORMAL = 1
Hàm phục vụ việc khởi động
Function StartDoc(DocName As String) As Long
Dim Scr_hDC As Long
Scr_hDC = GetDesktopWindow()
StartDoc = ShellExecute(Scr_hDC, "Open", _ DocName, "", "C:\", SW_SHOWNORMAL)
End Function
Kiểm chứng chương trỡnh
Private Sub Form_Click()
Dim r As Long
r = StartDoc("c:\mydoc\myletter.doc")
Debug.Print "Return code from Startdoc: "; r
End Sub