Page 1 of 1

Cursor WebCAM

Posted: Mon Sep 17, 2007 8:39 pm
by oryaaaaa
Camviewer hug your cursor :lol:

Code: Select all

#Window = 1
#WM_CAP_START = #WM_USER
#WM_CAP_DRIVER_CONNECT = #WM_CAP_START + 10
#WM_CAP_DRIVER_DISCONNECT = #WM_CAP_START + 11
#WM_CAP_DRIVER_GET_CAPS = #WM_CAP_START + 14
#WM_CAP_EDIT_COPY = #WM_CAP_START + 30
#WM_CAP_SET_PREVIEW = #WM_CAP_START + 50
#WM_CAP_SET_PREVIEWRATE = #WM_CAP_START + 52
#WM_CAP_STOP = #WM_CAP_START + 68
#WM_CAP_SET_SCALE = #WM_CAP_START + 53
#WM_CAP_START = #WM_USER
#WM_CAP_DLG_VIDEOSOURCE = #WM_CAP_START + 42 
#CameraSizeX= 200 ; CAM SIZE X
#CameraSizeY= 150 ; CAM SIZE Y
#CursorMergin= 40 ; Cursor ... CaptureWindow Distance
#Enable_CameraFile= "C:\Camera.txt" ; ******** CHECK ********

If OpenWindow(#Window, 0, 0, #CameraSizeX, #CameraSizeY, "CursorCam", #PB_Window_Invisible | #PB_Window_BorderLess)
  SetWindowLong_(WindowID(#Window),#GWL_EXSTYLE,#WS_EX_TOOLWINDOW) 
  ShowWindow_(WindowID(#Window),#SW_SHOW)
  StickyWindow(#Window, #True)
  Ccam_file.l = CreateFile(#PB_Any,  #Enable_CameraFile)
  WriteString(Ccam_file, "CAMERA")
  CloseFile(Ccam_file)
  
  Ccam_lib1.l = OpenLibrary(#PB_Any, "avicap32.dll")
  If Ccam_lib1
    *capAddress = GetFunction(Ccam_lib1, "capCreateCaptureWindowA")
    
    hWndC.l = CallFunctionFast(*capAddress, "My Capture Window", #WS_CHILD | #WS_VISIBLE, 0,0, #CameraSizeX , #CameraSizeY, WindowID(#Window),0)
    SendMessage_(hWndC, #WM_CAP_DRIVER_CONNECT, 0, 0)
    SendMessage_(hWndC, #WM_CAP_SET_PREVIEW, #True, 0)
    SendMessage_(hWndC, #WM_CAP_SET_PREVIEWRATE, 1, 0)
    SendMessage_(hWndC, #WM_CAP_SET_SCALE, #True, 0) 
    SendMessage_(hWndC, #WM_CAP_DLG_VIDEOSOURCE, 0, 0) 
    
    hwd = #Window : mergin = #CursorMergin
    
    Repeat
      mouse.POINT
      GetCursorPos_(mouse.POINT) 
      If mouse\x<(WindowX(hwd)-mergin)
        ResizeWindow(hwd, mouse\x+mergin, WindowY(hwd), WindowWidth(hwd), WindowHeight(hwd))  
      ElseIf mouse\y<(WindowY(hwd)-mergin)
        ResizeWindow(hwd, WindowX(hwd), mouse\y+mergin, WindowWidth(hwd), WindowHeight(hwd))  
      ElseIf mouse\x>(WindowX(hwd)+WindowWidth(hwd)+mergin)
        ResizeWindow(hwd, mouse\x-WindowWidth(hwd)-mergin, WindowY(hwd), WindowWidth(hwd), WindowHeight(hwd)) 
      ElseIf mouse\y>(WindowY(hwd)+WindowHeight(hwd)+mergin+25*TitleBar)
        ResizeWindow(hwd, WindowX(hwd), mouse\y-WindowHeight(hwd)-mergin-25*TitleBar, WindowWidth(hwd), WindowHeight(hwd)) 
      EndIf 
      Delay(1)
      While WindowEvent(): Wend 
      
    Until FileSize(#Enable_CameraFile)<0
    
    SendMessage_(hWndC, #WM_CAP_STOP, 0, 0)
    SendMessage_(hWndC, #WM_CAP_DRIVER_DISCONNECT, 0, 0)
    DestroyWindow_(hWndC)
    CloseLibrary(Ccam_lib1)
  EndIf
EndIf   

End 

Posted: Mon Sep 17, 2007 9:10 pm
by AND51
Nice, indeed!