hn4u @ Last updated 21/11/04 22:42
Go to my homepage at http://4u.jcisio.com
Full version available at http://4u.jcisio.com/r/article381.htm

Không rõ

Khoá (lock) máy tính không cho sử dụng các chương trình khác.

Các bạn tạo một dự án mới và tạo các control có trong đoạn code sau. Sau đó bạn dán đoạn code vào và thực thi chương trình

Option Explicit

Private Declare Function SystemParametersInfo Lib ''user32'' Alias ''SystemParametersInfoA'' (ByVal uAction As Long, ByVal uParam As Long, ByRef lpvParam As Any, ByVal fuWinIni As Long) As Long

Private Const SPI_SCREENSAVERRUNNING = 97

Private m_LastLeft As Single

Private m_LastTop As Single

Private m_LastWidth As Single

Private m_LastHeight As Single

Private Declare Function SetWindowPos Lib ''user32'' (ByVal hwnd As Long, ByVal hWndInsertAfter As Long, ByVal X As Long, ByVal Y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As Long

Private Const SWP_NOMOVE = &H2

Private Const SWP_NOSIZE = &H1

Private Const HWND_TOPMOST = -1

Private Const HWND_NOTOPMOST = -2

Private Sub cmdExit_Click()

Unload Me

End Sub

Private Sub cmdLockWorkstation_Click()

Dim prev_value As Long

Dim wid As Long

Dim hgt As Long

cmdLockWorkstation.Enabled = False

cmdUnlockWorkstation.Enabled = True

cmdExit.Enabled = False

m_LastLeft = Left

m_LastTop = Top

m_LastWidth = Width

m_LastHeight = Height

wid = Screen.Width / Screen.TwipsPerPixelX

hgt = Screen.Height / Screen.TwipsPerPixelY

SetWindowPos hwnd, HWND_TOPMOST, 0, 0, wid, hgt, 0

SystemParametersInfo SPI_SCREENSAVERRUNNING, True, prev_value, 0

End Sub

Private Sub cmdUnlockWorkstation_Click()

Dim prev_value As Long

cmdLockWorkstation.Enabled = True

cmdUnlockWorkstation.Enabled = False

cmdExit.Enabled = True

Move m_LastLeft, m_LastTop, m_LastWidth, m_LastHeight

SystemParametersInfo SPI_SCREENSAVERRUNNING, False, prev_value, 0

End Sub

Private Sub Form_Load()

Move (Screen.Width - Width) / 2, (Screen.Height - Height) / 2

cmdLockWorkstation.Enabled = True

cmdUnlockWorkstation.Enabled = False

cmdExit.Enabled = True

End Sub

Private Sub Form_Resize()

Const GAP = 60

Dim X As Single

Dim Y As Single

X = (ScaleWidth - cmdLockWorkstation.Width) / 2

Y = ScaleHeight / 2 - 1.5 * cmdLockWorkstation.Height - GAP

cmdLockWorkstation.Move X, Y

Y = Y + cmdLockWorkstation.Height + GAP

cmdUnlockWorkstation.Move X, Y

Y = Y + cmdLockWorkstation.Height + GAP

cmdExit.Move X, Y

End Sub

Private Sub Form_Unload(Cancel As Integer)

cmdUnlockWorkstation_Click

End Sub


hainam4u @ Last updated 21/11/04 22:42
Go to my homepage at http://4u.jcisio.com