Source/ Codesnippets | | | | | si qui aussi la fois avec quelque chose comme herumspielen voudrais: KompilierenMarqueSéparation {$cleq}
{$res nomanifest,noversioninfo}
{$res icon if.ico}
const appTitle=iFantaCam
const appVer=0.0
#include thread.pcu = thread.
#include mouse.inc
const wm_cap_start = $400
const wm_cap_edit_copy = (wm_cap_start + 30)
const wm_cap_driver_connect = (wm_cap_start + 10)
const wm_cap_set_previewrate = (wm_cap_start + 52)
const wm_cap_set_overlay = (wm_cap_start + 51)
const wm_cap_set_preview = (wm_cap_start + 50)
const wm_cap_set_scale = (wm_cap_start + 53)
const wm_cap_driver_disconnect = (wm_cap_start + 11)
const wm_cap_dlg_videocompression = (wm_cap_start + 46)
const wm_cap_dlg_videodisplay = (wm_cap_start + 43)
const wm_cap_dlg_videosource = (wm_cap_start + 42)
const wm_cap_dlg_videoformat = (wm_cap_start + 41)
long dll=usedll(avicap32.dll)
windowtitle appTitle+ V+appVer
windowstyle 80 | 1024
window 0,0 - 0,0
windowstyle 1 | 2 | 4 | 8 | 16 | 512
long dhWnd=createwindow(0,apptitle,100,100,350,300)
setStyle dhwnd,349118464
long nCameraID
long previewHandle = external(avicap32.dll,capCreateCaptureWindowA,Video, WS_CHILD + WS_VISIBLE, 0, 0, width(dhwnd), height(dhwnd), dhwnd, 1)
SendMessage(previewHandle, WM_CAP_DRIVER_CONNECT, nCameraID, 0)
SendMessage(previewHandle, WM_CAP_SET_PREVIEWRATE, 200, 0)
SendMessage(previewHandle, WM_CAP_SET_SCALE, true, 0)
SendMessage(previewHandle, WM_CAP_SET_OVERLAY, true, 0)
SendMessage(previewHandle, WM_CAP_SET_PREVIEW, true, 0)
usermessages wm_close,wm_size,wm_contextmenu
long hWndXX=width(dhwnd),hWndYY=height(dhwnd)
do {
thread.start 1
waitinput
thread.stop 1
select %umessage
caseof wm_close : break
caseof wm_contextmenu
select dhWnd.contextMenu()
caseof wm_close : break
endselect
endselect
}
SendMessage(previewHandle, WM_CAP_DRIVER_DISCONNECT, nCameraID, 0)
destroywindow(previewHandle)
freedll dll
end
dhWnd.borderToggle{
setStyle dhwnd,if(getstyle(dhwnd)==349118464,-1810948096,349118464)
showwindow(dhWnd,0)
showwindow(dhWnd,1)
}
dhWnd.contextMenu{
createmenu
if getstyle(dhwnd)==349118464 {
appendmenu 2000,Rahmenlos
} else {
appendmenu 2000,Fensterrahmen anzeigen
}
separator
appendmenu 1000,Videosource
appendmenu 1010,Videoformat
appendmenu 1020,Videodisplay
appendmenu 1030,Videokompression
separator
appendmenu 3000,Beenden
getmousepos()
trackmenu mouse.x,mouse.y
select %menuitem
caseof 1000 : sendmessage(previewHandle,WM_CAP_DLG_VIDEOSOURCE,0,0)
caseof 1010 : sendmessage(previewHandle,WM_CAP_DLG_VIDEOFORMAT,0,0)
caseof 1020 : sendmessage(previewHandle,WM_CAP_DLG_VIDEODISPLAY,0,0)
caseof 1030 : sendmessage(previewHandle,WM_CAP_DLG_VIDEOCOMPRESSION,0,0)
caseof 2000 : dhwnd.borderToggle()
caseof 3000 : return wm_close
endselect
setmenuitem 0
return false
}
thread.do{
long xx=width(dhwnd),yy=height(dhwnd)
if xx-hwndXX+yy-hwndyy {
setwindowpos previewHandle=0,0 - width(dhwnd),height(dhwnd);0
hWndXX=xx
hWndYY=yy
}
return null
}
/*
clearclip
putclip stri(getwindowlong(hwnd,gwl_style))
349118464
256
ss=s1>-1810948096-1810948096
256
setstyle hwnd,-1810948096
*/
|
| | | | |
| | Rolf Koch | et qui mouse.inc? |
| | | | |
| | | Sorry *g* KompilierenMarqueSéparationlong mouse.x,mouse.y
mem mouse.mem=point
mouse.doLeftKlick {
mouse_event(2, 0,0 ,0,0)
mouse_event(4, 0,0 ,0,0)
dulcoiF
}
lm_{return if(getasynckeystate(1)==0,false,true)}
rm_{return if(getasynckeystate(2)==0,false,true)}
whilem_{
while (lm_() | rm_()){
sleep 10
}
}
getmousepos{
GetCursorPos(mouse.mem)
mouse.x=mouse.mem::x&
mouse.y=mouse.mem::y&
}
setmousepos(long x,y){;setcursorpos(x,y);}
clipmouse(long x,y,xx,yy){
mem mem=rect
mem::left&=x
mem::top&=y
mem::right&=xx
mem::bottom&=yy
clipcursor(mem)
dispose mem
}
mouse.close{
dispose | 05.10.2007 ▲ | |
| |
|
Zum QuelltextOptions du sujet | 4.892 Views |
Themeninformationencet Thema hat 2 participant: |
|