Forum | | | | - Page 1 - |
| Rolf Koch | Hallöchen today frag I time so into round, I with Print never so much made have. following approach to the problem: we've with us one computer with printer on the camp. If one customer one unit bought has and on the cash-desk payd has, so comes with us one entsprechender voucher from the printer, so we The washing-machine, TV or such one Zeugs raussuchen can. now would I gladly one nebenbeilaufendes Tool write, which a Sound abspielt, if one such voucher from the printer comes. means your, I could this somehow achieve? |
| | | | |
| | | | - Page 11 - |
| | Rolf Koch | get unfortunately a warning: Error in the Assembler Linker ??? |
| | | | |
| | | normal not,
liegts on the way? gentry time to c:\dev\Test\Test.xprf |
| | | | |
| | Rolf Koch | Jo works - Kapiere what you mean. |
| | | | |
| | | If the Kameraeinstellungen something like How "Automatische exposure/ Helligkeit" offer then would I these function to deaktivieren. |
| | | | |
| | Rolf Koch | | | | | |
| | Rolf Koch | I komm lest clear. I Have now testweise times without Scroller and attempts the Cambild abzufragen. Papercolor alike which colour is always 255 |
| | | | |
| | | The first Param of getPaperColor must the DC his on the The Pixel lying - look time on welchem DC the Kamerabild painted becomes. can You time your Kameracode post? important is thereby that the image in the "preview"-mode painted becomes instead of by Overlay. tommorrow could I a Webcam come and too self testing. |
| | | | |
| | Rolf Koch | here the code (is your IFanta) adjusted: CompileMarkSeparation {$cleq}
{$res nomanifest,noversioninfo}
{$res icon if.ico}
const appTitle="iFantaCam"
const appVer=0.0
#include C:\\p00x\\thread.archive\\thread.archive\\lib\\thread.pcu = thread.
long paperColor,oldPaperColor,diff,h
declare _dulcoiF%
proc dulcoiF
case _dulcoiF% : return
_dulcoiF%:=1
settimer 1;waitinput;killtimer
_dulcoiF%:=0
endproc
Proc BILDSAVE
Parameters Filename$
Sendmessage(previewHandle,&WM_CAP_FILE_SAVEDIB,0,ADDR(Filename$))
EndProc
long 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 mouse.mem
}
Def &WM_CAP_FILE_SAVEAS 1047
Def &WM_CAP_FILE_SAVEDIB 1049
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
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,8
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
nProc getPaperColor(long dc,x,y){
long r,g,b,col,q,w
whileloop 0,2 {
q=loop
whileloop 0,2 {
w=loop
col=getPixel(dhwnd,x+q,y+w)
add r,getRValue(col)
add g,getGValue(col)
add b,getBValue(col)
}
}
div r,9
div g,9
div b,9
add r,g
add r,b
div r,3
return r
}
dhWnd.contextMenu{
createmenu
if getstyle(dhwnd)==349118464 {
appendmenu 2000,"Shot"
} else {
appendmenu 2000,"Shot"
}
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 : BILDSAVE "C:\\TEMP\\TEST.BMP"
caseof 3000 : return wm_close
endselect
setmenuitem 0
return false
}
thread.do{
BILDSAVE "C:\\TEMP\\TEST.BMP"
oldPaperColor=paperColor
paperColor=getPaperColor(hDC,100,100)
diff=paperColor-oldPaperColor
if diff>64 {
SetText dhwnd,"BOING, Blatt wurde gedruckt! "+Str$(diff)
} elseif diff<-64 {
SetText dhwnd,"BOING, Blatt wurde aus dem drucker genommen!"
}
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
put tri(getwindowlong(hwnd,gwl_style))
349118464
256
-1810948096-1810948096
256
setstyle hwnd,-1810948096
*/
|
| | | | |
| | | Höllencode,
should first whole thread.pcu expanded go.
set time SendMessage(previewHandle, WM_CAP_SET_OVERLAY, true, 0) on false instead of true. |
| | | | |
| | Rolf Koch | was me clear, was Yes only n testcode and the Change on false changes unfortunately too nothing remaining with 255. |
| | | | |
| | | Löl, Have ne WebCam rausgekrümelt and it fix umgefärcht: CompileMarkSeparation {$cleq}
const appTitle="iFantaCam"
const appVer=0.0
long paperColor,oldPaperColor,diff,h
Proc BILDSAVE
Parameters Filename$
Sendmessage(previewHandle,&WM_CAP_FILE_SAVEDIB,0,ADDR(Filename$))
EndProc
long mouse.x,mouse.y
mem mouse.mem=point
mouse.doLeftKlick {
mouse_event(2, 0,0 ,0,0)
mouse_event(4, 0,0 ,0,0)
}
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 mouse.mem
}
Def &WM_CAP_FILE_SAVEAS 1047
Def &WM_CAP_FILE_SAVEDIB 1049
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
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, false, 0)
SendMessage(previewHandle, WM_CAP_SET_PREVIEW, true, 0)
usermessages wm_close,wm_size,wm_contextmenu
long hWndXX=width(dhwnd),hWndYY=height(dhwnd)
setWIndowPos previewHandle=0,0 - 320,200
//
long dc=getDC(previewHandle)
//
do {
waitinput 100
thread.do()
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
nProc getPaperColor(long dc,x,y){
long r,g,b,col,q,w
whileloop 0,2 {
q=loop
whileloop 0,2 {
w=loop
col=getPixel(dc,x+q,y+w)
add r,getRValue(col)
add g,getGValue(col)
add b,getBValue(col)
}
}
div r,9
div g,9
div b,9
add r,g
add r,b
div r,3
return r
}
dhWnd.contextMenu{
createmenu
if getstyle(dhwnd)==349118464 {
appendmenu 2000,"Shot"
} else {
appendmenu 2000,"Shot"
}
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 : BILDSAVE "C:\\TEMP\\TEST.BMP"
caseof 3000 : return wm_close
endselect
setmenuitem 0
return false
}
thread.do{
//BILDSAVE "C:\\TEMP\\TEST.BMP"
oldPaperColor=paperColor
paperColor=getPaperColor(dc,160,120)
diff=paperColor-oldPaperColor
if diff>64 {
SetText dhwnd,"BOING, Blatt wurde gedruckt! "+Str$(diff)
} elseif diff<-64 {
SetText dhwnd,"BOING, Blatt wurde aus dem drucker genommen!"
}
return null
}
/*
clearclip
putclip stri(getwindowlo d,gwl_style))
349118464
256
-1810948096-1810948096
256
setstyle hwnd,-1810948096
*/
How jolly is the because... functions! |
| | | | |
| | Rolf Koch | Bohaaaa How GEIIIILLL - THANK YOU IF - now Have I a basis If you me now betray can, How I it umgehe, I do not in C:\DEV\TEST Save must. always if I elsewhere save, I get Assembler Message |
| | | | |
|
AnswerTopic-Options | 111.010 Views |
Themeninformationenthis Topic has 6 subscriber: |
|