Hiển thị MessageBox & tự đóng sau khoảng thời gian ấn định

Liên hệ QC
Tôi tuân thủ nội quy khi đăng bài

Dai Minh Kim

Thành viên mới
Tham gia
22/1/20
Bài viết
5
Được thích
11
Do nhu cầu công việc, mình cần 1 MessageBox hiện thì nội dung tin theo mong muốn & sẽ tự đóng lại sau 1 khoảng thời gian ấn định ( tự ấn định luôn :p ).

Mình đã tìm hiểu nhiều trên mạng về Sleep, Wait, TimeSerial, DateAdd, Sendkey ... nhưng không đáp ứng được mong muốn ( có cái chạy được nhưng hoạt động không ổn định )

Với sự trợ giúp từ ChatGPT, mình đã tìm ra được 1 Module toàn vẹn, hoạt động ổn định. Chia sẻ đến các bạn

Code :

Private Declare PtrSafe Function MessageBoxTimeout Lib "user32" Alias "MessageBoxTimeoutA" _
(ByVal hWnd As LongPtr, ByVal lpText As String, ByVal lpCaption As String, ByVal uType As Long, _
ByVal wLanguageId As Long, ByVal dwMilliseconds As Long) As Long

Private Const MB_SETFOREGROUND = &H100
Private Const MB_TOPMOST = &H40000
Private Const MB_OK = &H0

Public Sub ShowCustomMessageBoxWithTimeout(ContentMessage As String, TimerOut As Integer)

Dim Result As Long

' Hien thi cua so thông báo tùy chinh và tu dóng sau TimerOut giây (miligiây)
Result = MessageBoxTimeout(0, ContentMessage, "Thông Báo", MB_OK + MB_SETFOREGROUND + MB_TOPMOST, 0, 2000)

End Sub

Ps : Lần đầu đăng bài, nếu có sai sót gì mong nhận được sự chỉ giáo của Ad. Thanks
 
Do nhu cầu công việc, mình cần 1 MessageBox hiện thì nội dung tin theo mong muốn & sẽ tự đóng lại sau 1 khoảng thời gian ấn định ( tự ấn định luôn :p ).

Mình đã tìm hiểu nhiều trên mạng về Sleep, Wait, TimeSerial, DateAdd, Sendkey ... nhưng không đáp ứng được mong muốn ( có cái chạy được nhưng hoạt động không ổn định )

Với sự trợ giúp từ ChatGPT, mình đã tìm ra được 1 Module toàn vẹn, hoạt động ổn định. Chia sẻ đến các bạn

Code :

Private Declare PtrSafe Function MessageBoxTimeout Lib "user32" Alias "MessageBoxTimeoutA" _
(ByVal hWnd As LongPtr, ByVal lpText As String, ByVal lpCaption As String, ByVal uType As Long, _
ByVal wLanguageId As Long, ByVal dwMilliseconds As Long) As Long

Private Const MB_SETFOREGROUND = &H100
Private Const MB_TOPMOST = &H40000
Private Const MB_OK = &H0

Public Sub ShowCustomMessageBoxWithTimeout(ContentMessage As String, TimerOut As Integer)

Dim Result As Long

' Hien thi cua so thông báo tùy chinh và tu dóng sau TimerOut giây (miligiây)
Result = MessageBoxTimeout(0, ContentMessage, "Thông Báo", MB_OK + MB_SETFOREGROUND + MB_TOPMOST, 0, 2000)

End Sub

Ps : Lần đầu đăng bài, nếu có sai sót gì mong nhận được sự chỉ giáo của Ad. Thanks
Rắc rối quá. Thay vì hiển thị Msgbox thì cho hiển thị UserForm và chèn cái Label cho tiện. Khi cần đóng sau 5s thì gọi cái sub Unload cái form này là xong.
 
Upvote 0
ai tò mò mời qua bển ngó chơi

 
Upvote 0
Web KT

Bài viết mới nhất

Back
Top Bottom