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 ).
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
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