WWW.ИСХОДНИКИ.РУ cpp.sources.ru
java.sources.ru web.sources.ru soft.sources.ru
jdbc.sources.ru asp.sources.ru api.sources.ru

  Форум на исходниках
  Visual Basic
  Как определить: закрыт или открыт сидюк?

СПРОСИТЬ  ОТВЕТИТЬ
профайл | регистрация | faq

Автор Тема:   Как определить: закрыт или открыт сидюк?
AlexR опубликован 20-12-2001 09:14 MSK   Click Here to See the Profile for AlexR   Click Here to Email AlexR  
Как определить: закрыт или открыт сидюк?
Vasya2000 опубликован 20-12-2001 14:26 MSK     Click Here to See the Profile for Vasya2000  Click Here to Email Vasya2000     
Может это подойдет---->>>©®


Как определить когда появляется и изымается компакт-диск из устройства CD-ROM?
Public Declare Function CallWindowProc Lib "user32" _
Alias "CallWindowProcA" (ByVal lpPrevWndFunc As Long, _
ByVal hwnd As Long, _
ByVal Msg As Long, _
ByVal wParam As Long, _
ByVal lParam As Long) As Long

Public Declare Function GetWindowLong Lib "user32" _
Alias "GetWindowLongA" (ByVal hwnd As Long, _
ByVal nIndex As Long) As Long

Public Declare Function SetWindowLong Lib "user32" _
Alias "SetWindowLongA" (ByVal hwnd As Long, _
ByVal nIndex As Long, _
ByVal dwNewLong As Long) As Long

Public Const GWL_WNDPROC = (-4)
Public Const WM_DEVICECHANGE = &H219

Public glngPrevWndProc As Long




Public Function MyWindowProc(ByVal hwnd As Long, ByVal Msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
If Msg = WM_DEVICECHANGE Then
Select Case wParam

' If device (CD-ROM) arrive...
' Событие возникает при появлении нового диска в CD-ROM'е.
Case &H8000&
Call Form1.DeviceArrival

' If CD-ROM has ejected...
' Событие возникает при изъятии диска из CD-ROM'а
Case &H8004&
Call Form1.DeviceRemoveComplete
End Select
MyWindowProc = 0
Exit Function
End If

' pass the rest messages onto VB's own Window Procedure
' остальные сообщения передаются для обработки стандартной
' процедуре окна
MyWindowProc = CallWindowProc(glngPrevWndProc, hwnd, Msg, wParam, lParam)
End Function

Использование: Создайте форму и поместите в неё следующий код:
Private Sub Form_Load()
' Перенаправление сообщений Windows от формы к собственной
' процедуре обработки сообщений Module1.MyWindowProc
glngPrevWndProc = GetWindowLong(hwnd, GWL_WNDPROC)
SetWindowLong hwnd, GWL_WNDPROC, AddressOf MyWindowProc
End Sub

Private Sub Form_Unload(Cancel As Integer)
' Возвращение управления форме
SetWindowLong hwnd, GWL_WNDPROC, glngPrevWndProc
End Sub

Sub DeviceArrival()
' Здесь вы можете поместить код, который будет выполнятся при
' появление компакт-диска в устройстве CD-ROM
Label2.Caption = "Появилось устройство"
End Sub


Sub DeviceRemoveComplete()
' Здесь вы можете поместить код, который будет выполнятся при
' удалении компакт-диска из устройства CD-ROM
Label2.Caption = "Устройство исчезло"
End Sub

AlexR опубликован 20-12-2001 15:39 MSK     Click Here to See the Profile for AlexR  Click Here to Email AlexR     
Не работает :((
Lamer опубликован 23-12-2001 01:39 MSK     Click Here to See the Profile for Lamer  Click Here to Email Lamer     
Определить это очень легко - если латок закрыт, то он не открыт, если же открыт, то не закрыт...
sharig опубликован 25-12-2001 00:16 MSK     Click Here to See the Profile for sharig  Click Here to Email sharig     
Для Vasya2000 - отличный пример. все работает.
AlexR опубликован 25-12-2001 08:56 MSK     Click Here to See the Profile for AlexR  Click Here to Email AlexR     
Работает!!!

СПРОСИТЬ  ОТВЕТИТЬ
Перейти:


E-mail | WWW.ИСХОДНИКИ.RU

Powered by: Ultimate Bulletin Board, Freeware Version 5.10a
Purchase our Licensed Version- which adds many more features!
© Infopop Corporation (formerly Madrona Park, Inc.), 1998 - 2000.