Forum | | | | - page 1 - |
| Rolf Koch | Hallöchen heut frag je la fois so dans qui Runde, là je avec Drucken nie soviel gemacht habe. Folgende Problemstellung: on a chez uns un ordinateur avec Drucker sur dem le lit. si un Kunde un Gerät gekauft hat et à qui caisse bezahlt hat, so venez chez uns un entsprechender Beleg aus dem Drucker, avec cela wir qui machine à laver, TV ou bien solch un Zeugs raussuchen peut. maintenant serait je volontiers un nebenbeilaufendes Tool écrivons, welches une Sound abspielt, si un solcher Beleg aus dem Drucker venez. Meint son, je pourrait ca irgendwie erreichen? |
| | | | |
| | | | - page 11 - |
| | Rolf Koch | Bekomme malheureusement une avertissement: faute im Assembler Linker ??? |
| | | | |
| | | Normal pas,
Il se trouve am Pfad? Pack la fois pour c:\dev\test\test.xprf |
| | | | |
| | Rolf Koch | Jo klappt - Kapiere quoi Du meinst. |
| | | | |
| | | si qui Kameraeinstellungen quelque chose comme comment "Automatische Belichtung/ Helligkeit" anbieten ensuite serait je cet Funktion hierzu désactiver. |
| | | | |
| | Rolf Koch | | | | | |
| | Rolf Koch | je komm avec cela pas bien sûr. je hab maintenant testweise la fois sans Scroller et versucht cela Cambild abzufragen. Papercolor égal quelle la couleur ist toujours 255 |
| | | | |
| | | qui erste Param de getPaperColor muss qui DC son sur dem qui Pixel liegen - exposition la fois sur welchem DC cela Kamerabild gemalt wird. peux Du la fois Deinen Kameracode posten? important ist dabei dass cela Bild im "preview"-Modus gemalt wird statt per Overlay. demain pourrait je à une Webcam venons et aussi selbst testen. |
| | | | |
| | Rolf Koch | ici qui Code (ist Dein IFanta) angepasst: KompilierenMarqueSéparation {$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,
devrait erstmal ganze thread.pcu étendu volonté.
mets la fois SendMessage(previewHandle, WM_CAP_SET_OVERLAY, vrai, 0) sur faux statt vrai. |
| | | | |
| | Rolf Koch | était mir bien sûr, était oui seulement n testcode et cela changement sur faux ändert malheureusement aussi rien bleibt chez 255. |
| | | | |
| | | Löl, hab ne WebCam rausgekrümelt et es fix umgefärcht: KompilierenMarqueSéparation {$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
*/
comment lustig ist cela car... funktioniert! |
| | | | |
| | Rolf Koch | Bohaaaa comment GEIIIILLL - DANKE IF - maintenant hab je une Grundlage si Du mir eh bien verraten peux, comment je es umgehe, dass je pas dans C:\DEV\TEST Sauver muss. toujours si je woanders speichere, bekomme je Assembler annonce |
| | | | |
|
répondreOptions du sujet | 110.863 Views |
Themeninformationencet Thema hat 6 participant: |
|