Hente status fra en printer
DOS application:Generalt:
Jeg har en lidt speciel printer som bruges til at skrive foto ud med, og i den forbindelse
skal jeg ha skrevet et lille program som afvikles i DOS og skriver hvor mange print jeg har
tilbage på forbrugsstofferne:
Printeren er en Citizen CW-01 - http://www.citizen.co.uk/drivers/photo.htm
info:
Jeg har windows API/CwStat.dll hvor i der kan trækkes alle mulige forskellige information ud om printeren,
samt manualen til dette. alt dette kan naturligvis sendes hvis der er brug for der er både VBS og C++ eksempeler
men hvordan jeg får dette til at køre som en ren DOS application er ude for mit område..
Jeg vil gerne om jeg kunne få lidt hjælp til dette jeg har Visual Basic Express til rådighed :)
fra manualen har jeg dette.:
--------------------------------------------------------------------------------------------------------------
DLL Initialize
[Format] long PortInitialize(LPWSTR p);
long CvInitialize(LPWSTR p);
[Parameter] p: Pointer to the port name WSTR (2 byte Unicode)
[Return] True: Port number
False: -1
[Note] Initializes API and returns the port number. If more than one port are used, please get each port
number by generating the command repeatedly.
[Sample Coding]
< Visual C >
long Cw1;
if(( Cw1 = PortInitialize( L"USB001" )) < 0 ){
// error
}
< Visual Basic >
Dim Cw1
Cw1 = PortInitialize(StrPtr("USB001"));
If Cw1 < 0 Then GoTo Error
--------------------------------------------------------------------------------------------------------------
Get Printer Counter Value
[Format] long GetCounterL( long lPortNum );
long CvGetCounterL( long lPortNum );
long GetCounterA( long lPortNum );
long CvGetCounterA( long lPortNum );
long GetCounterB( long lPortNum );
long CvGetCounterB( long lPortNum );
[Parameter] lPortNum: Port number
[Return] True: Counter Value
False: -1
[Note] GetCounterL(),CvGetCounterL() Returns Life Counter Value.
GetCounterA(),CvGetCounterA() Returns Counter A Value.
GetCounterB(),CvGetCounterB() Returns Counter B Value.
Each counter returns the number of prints of PC or L size photos, and is counted up 1 for each photo
printed.
When printing A5W, A5 or 2L size, it will be counted up as two. When printing dual image of PC size, it
will be counted up 2 when the second image is printed.
[Sample Coding]
< Visual C >
long counter;
if(( counter = GetCounterL( Cw1 )) >= 0 ){
counter
// Returns Life Counter Value to
}
< Visual Basic >
Dim counter As Long
counter = GetCounterL(Cw1)
--------------------------------------------------------------------------------------------------------------
Clear Printer Counter Value
[Format] BOOL SetClearCounterA( long lPortNum );
BOOL CvSetClearCounterA( long lPortNum );
BOOL SetClearCounterB( long lPortNum );
BOOL CvSetClearCounterB( long lPortNum );
[Parameter] lPortNum: Port number
[Return] True: TRUE
False: FALSE
[Note] SetClearCounterA(),CvSetClearCounterA() Clears Counter A.
SetClearCounterB(),CvSetClearCounterB() Clears Counter B.
[Sample Coding]
< Visual C >
if( SetClearCounterA( Cw1 )){
// Counter A was cleared
}
< Visual Basic >
If SetClearCounterA(Cw1) <> 0 Then
’ Counter A was cleared
EndIf
--------------------------------------------------------------------------------------------------------------
-Anders