(Access 97/95 – Visual Basic (32-bit)
Trong khi làm việc, có nhiều khi chúng ta cần thực thi một lệnh Dos nào đó hay phải gọi đến Shell Command từ trong ứng dụng của mình. Để không bị gián đoạn điều khiển màn hình hiện hành của chương trình đang chạy, bạn muốn ngăn không cho hệ điều hành trao “điều khiển” từ tiến trình đang thi hành này cho một tiến trình Dos hay Windows khác đang được thực thi trong chế độ nền.
Đoạn mã sau có thể giúp bạn giữ cho tiến trình đang thực thi tiếp tục chạy ở chế độ foreground và buộc các tiến trình Dos hay Windows được gọi đến vẫn chạy ở chế độ background:
Declare Function SetFocus Lib “user32” _
(ByVal hWnd As Long) As Long
Declare Function GetTopWindow Lib_ “user32” (ByVal hWnd As Long) As Long
Sub Main()
On Error Resume Next
Dim Ret As Variant
Dim lngAct As Long
Dim lngRet As Long
lngAct = GetTopWindow
Ret = Shell(Command, vbMinimizedNoFocus)
lngRet = SetFocus(lngAct)
End Sub