Giữ cho các tiến trình Dos tiếp tục bị che

(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