English
Forum

Druckerauftrag detect

 
- 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?
 
12/20/08  
 



 
- Page 11 -



Rolf
Koch
get unfortunately a warning: Error in the Assembler Linker ???
 
02/24/13  
 



normal not,

liegts on the way? gentry time to c:\dev\Test\Test.xprf
 
02/24/13  
 




Rolf
Koch
Jo works - Kapiere what you mean.
 
02/24/13  
 



If the Kameraeinstellungen something like How "Automatische exposure/ Helligkeit"
offer then would I these function to deaktivieren.
 
02/24/13  
 




Rolf
Koch
Jo everything clear
 
02/24/13  
 




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
 
02/24/13  
 



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.
 
02/24/13  
 




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 */
 
02/24/13  
 



Höllencode,

should first whole thread.pcu expanded go.

set time SendMessage(previewHandle, WM_CAP_SET_OVERLAY, true, 0) on
false instead of true.
 
02/24/13  
 




Rolf
Koch
was me clear, was Yes only n testcode
and the Change on false changes unfortunately too nothing remaining with 255.
 
02/24/13  
 



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!
 
02/25/13  
 




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
 
02/25/13  
 




Answer


Topictitle, max. 100 characters.
 

Systemprofile:

no Systemprofil laid out. [anlegen]

XProfan:

 Posting  Font  Smilies  ▼ 

Please register circa a Posting To verfassen.
 

Topic-Options

111.010 Views

Untitledvor 0 min.
rquindt05/17/20
Rainer Hoefs03/10/18
Rolf Koch01/20/18
p.specht02/08/17
More...

Themeninformationen



Admins  |  AGB  |  Applications  |  Authors  |  Chat  |  Privacy Policy  |  Download  |  Entrance  |  Help  |  Merchantportal  |  Imprint  |  Mart  |  Interfaces  |  SDK  |  Services  |  Games  |  Search  |  Support

One proposition all XProfan, The there's!


My XProfan
Private Messages
Own Storage Forum
Topics-Remember-List
Own Posts
Own Topics
Clipboard
Log off
 Deutsch English Français Español Italia
Translations

Privacy Policy


we use Cookies only as Session-Cookies because of the technical necessity and with us there no Cookies of Drittanbietern.

If you here on our Website click or navigate, stimmst You ours registration of Information in our Cookies on XProfan.Net To.

further Information To our Cookies and moreover, How You The control above keep, find You in ours nachfolgenden Datenschutzerklärung.


all rightDatenschutzerklärung
i want none Cookie