Français
Forum

Druckerauftrag ermitteln

 
- 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?
 
20.12.2008  
 



 
- page 11 -



Rolf
Koch
Bekomme malheureusement une avertissement: faute im Assembler Linker ???
 
24.02.2013  
 



Normal pas,

Il se trouve am Pfad? Pack la fois pour c:\dev\test\test.xprf
 
24.02.2013  
 




Rolf
Koch
Jo klappt - Kapiere quoi Du meinst.
 
24.02.2013  
 



si qui Kameraeinstellungen quelque chose comme comment "Automatische Belichtung/ Helligkeit"
anbieten ensuite serait je cet Funktion hierzu désactiver.
 
24.02.2013  
 




Rolf
Koch
Jo alles bien sûr
 
24.02.2013  
 




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
 
24.02.2013  
 



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.
 
24.02.2013  
 




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 */
 
24.02.2013  
 



Höllencode,

devrait erstmal ganze thread.pcu étendu volonté.

mets la fois SendMessage(previewHandle, WM_CAP_SET_OVERLAY, vrai, 0) sur
faux statt vrai.
 
24.02.2013  
 




Rolf
Koch
était mir bien sûr, était oui seulement n testcode
et cela changement sur faux ändert malheureusement aussi rien bleibt chez 255.
 
24.02.2013  
 



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!
 
25.02.2013  
 




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
 
25.02.2013  
 




répondre


Topictitle, max. 100 marque.
 

Systemprofile:

ne...aucune Systemprofil angelegt. [anlegen]

XProfan:

 Posting  Font  Smilies  ▼ 

s'il te plaît s'inscrire um une Beitrag trop verfassen.
 

Options du sujet

110.863 Views

Untitledvor 0 min.
rquindt17.05.2020
Rainer Hoefs10.03.2018
Rolf Koch20.01.2018
p.specht08.02.2017
plus...

Themeninformationen



Admins  |  AGB  |  Applications  |  Auteurs  |  Chat  |  protection des données  |  Télécharger  |  Entrance  |  Aider  |  Merchantportal  |  Empreinte  |  Mart  |  Interfaces  |  SDK  |  Services  |  Jeux  |  cherche  |  Support

un projet aller XProfaner, qui il y a!


Mon XProfan
Privé Nouvelles
Eigenes Ablageforum
Sujets-La liste de voeux
Eigene Posts
Eigene Sujets
Zwischenablage
Annuler
 Deutsch English Français Español Italia
Traductions

protection des données


Wir verwenden Cookies seulement comme Session-Cookies à cause de qui technischen Notwendigkeit et chez uns gibt es aucun Cookies de Drittanbietern.

si du ici sur unsere Webseite klickst ou bien navigierst, stimmst du unserer Erfassung de Informationen dans unseren Cookies sur XProfan.Net trop.

Weitere Informationen trop unseren Cookies et en supplément, comment du qui Kontrolle par-dessus behältst, findest du dans unserer nachfolgenden Datenschutzerklärung.


d'accordDatenschutzerklärung
je voudrais keinen Cookie