Level Extreme platform
Subscription
Corporate profile
Products & Services
Support
Legal
Français
Printer Status
Message
 
 
To
04/05/2006 11:46:44
General information
Forum:
Visual FoxPro
Category:
Coding, syntax & commands
Title:
Miscellaneous
Thread ID:
01118502
Message ID:
01119234
Views:
35
?cnPRINTER_STATUS_OFFSET

Also I removed with this from the code.

>Okay. Here is the magic code:
>
>
>
>*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
>*-- GetPrinterStatus
>*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
>LPARAMETERS tcPrinterName
>
>*-- Printer status flags used with PRINTER_INFORMATION_2
>#DEFINE cnPRINTER_STATUS_READY								 0x00000000
>#DEFINE cnPRINTER_STATUS_PAUSED								 0x00000001
>#DEFINE cnPRINTER_STATUS_ERROR								 0x00000002
>#DEFINE cnPRINTER_STATUS_PENDING_DELETION 					 0x00000004
>#DEFINE cnPRINTER_STATUS_PAPER_JAM 							 0x00000008
>#DEFINE cnPRINTER_STATUS_PAPER_OUT 							 0x00000010
>#DEFINE cnPRINTER_STATUS_MANUAL_FEED 						 0x00000020
>#DEFINE cnPRINTER_STATUS_PAPER_PROBLEM 						 0x00000040
>#DEFINE cnPRINTER_STATUS_OFFLINE 							 0x00000080
>#DEFINE cnPRINTER_STATUS_IO_ACTIVE 							 0x00000100
>#DEFINE cnPRINTER_STATUS_BUSY 								 0x00000200
>#DEFINE cnPRINTER_STATUS_PRINTING 							 0x00000400
>#DEFINE cnPRINTER_STATUS_OUTPUT_BIN_FULL 					 0x00000800	
>#DEFINE cnPRINTER_STATUS_NOT_AVAILABLE						 0x00001000
>#DEFINE cnPRINTER_STATUS_WAITING 							 0x00002000
>#DEFINE cnPRINTER_STATUS_PROCESSING 						 0x00004000
>#DEFINE cnPRINTER_STATUS_INITIALIZING						 0x00008000
>#DEFINE cnPRINTER_STATUS_WARMING_UP 						 0x00010000
>#DEFINE cnPRINTER_STATUS_TONER_LOW 							 0x00020000
>#DEFINE cnPRINTER_STATUS_NO_TONER 							 0x00040000
>#DEFINE cnPRINTER_STATUS_PAGE_PUNT 							 0x00080000
>#DEFINE cnPRINTER_STATUS_USER_INTERVENTION 					 0x00100000
>#DEFINE cnPRINTER_STATUS_OUT_OF_MEMORY						 0x00200000
>#DEFINE cnPRINTER_STATUS_DOOR_OPEN 							 0x00400000
>#DEFINE cnPRINTER_STATUS_SERVER_UNKNOWN 					 0x00800000
>#DEFINE cnPRINTER_STATUS_POWER_SAVE 						 0x01000000
>
>
>DECLARE INTEGER GetPrinter IN winspool.drv AS GetPrinterA INTEGER hPrinter, INTEGER Lvl, STRING @pPrinter, INTEGER cbBuf, INTEGER @pcbNeeded
>DECLARE INTEGER OpenPrinter IN winspool.drv AS OpenPrinterA STRING pPrinterName, INTEGER @phPrinter, INTEGER pDefault
>DECLARE INTEGER ClosePrinter IN winspool.drv AS ClosePrinterA INTEGER hPrinter
>
>LOCAL lcPrinterInfo
>LOCAL lcPrinterStatus
>
>LOCAL lnResult
>LOCAL lnPrinterStatus
>LOCAL lnHandle
>LOCAL lnBufferSize
>LOCAL lnBytesUsed
>
>WITH THIS
>	lcPrinterStatus = ''
>	lnHandle 	    = 0
>	
>	lnResult	    = OpenPrinterA(tcPrinterName, @lnHandle, 0)
>
>	IF lnResult # 0
>		lnBufferSize  = 4096
>		lcPrinterInfo = REPLICATE(CHR(0), lnBufferSize)
>
>		lnResult	  = GetPrinterA(lnHandle, 2, @lcPrinterInfo, lnBufferSize, @lnBytesUsed)
>
>		IF lnResult # 0
>
>		    lnPrinterStatus = INT(Buf2DWord(SUBSTR(lcPrinterInfo, cnPRINTER_STATUS_OFFSET, 4)))
>
>			DO CASE
>				CASE lnPrinterStatus = cnPRINTER_STATUS_READY
>					lcPrinterStatus = 'Ready'
>
>				CASE lnPrinterStatus = cnPRINTER_STATUS_PAUSED
>					lcPrinterStatus = 'Paused'
>
>				CASE lnPrinterStatus = cnPRINTER_STATUS_ERROR
>					lcPrinterStatus = 'Error'
>
>				CASE lnPrinterStatus = cnPRINTER_STATUS_PENDING_DELETION
>					lcPrinterStatus = 'Deleting...'
>
>				CASE lnPrinterStatus = cnPRINTER_STATUS_PAPER_JAM
>					lcPrinterStatus = 'Paper Jam'
>
>				CASE lnPrinterStatus = cnPRINTER_STATUS_PAPER_OUT
>					lcPrinterStatus = 'Paper Out'
>
>				CASE lnPrinterStatus = cnPRINTER_STATUS_MANUAL_FEED
>					lcPrinterStatus = 'Manual Feed Required'
>
>				CASE lnPrinterStatus = cnPRINTER_STATUS_PAPER_PROBLEM
>					lcPrinterStatus = 'Paper Problem'
>
>				CASE lnPrinterStatus = cnPRINTER_STATUS_OFFLINE
>					lcPrinterStatus = 'Offline'
>
>				CASE lnPrinterStatus = cnPRINTER_STATUS_IO_ACTIVE
>					lcPrinterStatus = 'Downloading Job'
>
>				CASE lnPrinterStatus = cnPRINTER_STATUS_BUSY
>					lcPrinterStatus = 'Busy'
>
>				CASE lnPrinterStatus = cnPRINTER_STATUS_PRINTING
>					lcPrinterStatus = 'Printing'
>
>				CASE lnPrinterStatus = cnPRINTER_STATUS_OUTPUT_BIN_FULL
>					lcPrinterStatus = 'Output Bill Full'
>
>				CASE lnPrinterStatus = cnPRINTER_STATUS_NOT_AVAILABLE
>					lcPrinterStatus = 'Not Available'
>
>				CASE lnPrinterStatus = cnPRINTER_STATUS_WAITING
>					lcPrinterStatus = 'Waiting'
>
>				CASE lnPrinterStatus = cnPRINTER_STATUS_PROCESSING
>					lcPrinterStatus = 'Processing Job'
>
>				CASE lnPrinterStatus = cnPRINTER_STATUS_INITIALIZING
>					lcPrinterStatus = 'Initializing'
>
>				CASE lnPrinterStatus = cnPRINTER_STATUS_WARMING_UP
>					lcPrinterStatus = 'Warming Up'
>
>				CASE lnPrinterStatus = cnPRINTER_STATUS_TONER_LOW
>					lcPrinterStatus = 'Toner Low'
>
>				CASE lnPrinterStatus = cnPRINTER_STATUS_NO_TONER
>					lcPrinterStatus = 'Toner Out'
>
>				CASE lnPrinterStatus = cnPRINTER_STATUS_PAGE_PUNT
>					lcPrinterStatus = 'Page too Complex'
>
>				CASE lnPrinterStatus = cnPRINTER_STATUS_USER_INTERVENTION
>					lcPrinterStatus = 'User Intervention Required'
>
>				CASE lnPrinterStatus = cnPRINTER_STATUS_OUT_OF_MEMORY
>					lcPrinterStatus = 'Out of Memory'
>
>				CASE lnPrinterStatus = cnPRINTER_STATUS_DOOR_OPEN
>					lcPrinterStatus = 'Door Open'
>
>				CASE lnPrinterStatus = cnPRINTER_STATUS_SERVER_UNKNOWN
>					lcPrinterStatus = 'Unable to connect'
>
>				CASE lnPrinterStatus = cnPRINTER_STATUS_POWER_SAVE
>					lcPrinterStatus = 'Power Save Mode'
>
>				OTHERWISE
>					lcPrinterStatus = ALLTRIM(STR(lnPrinterStatus))
>			ENDCASE
>
>		ENDIF
>		
>	   lnResult = ClosePrinterA(lnHandle)
>		
>	ENDIF
>
>
>ENDWITH
>
>RETURN lcPrinterStatus
>
>
>
>*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
>*-- Buf2DWord
>*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
>LPARAMETER tcBuffer
>
>LOCAL lnReturn
>
>lnReturn = ASC(SUBSTR(tcBuffer, 1,1)) + ASC(SUBSTR(tcBuffer, 2,1)) * 256 + ASC(SUBSTR(tcBuffer, 3,1)) * 65536 + ASC(SUBSTR(tcBuffer, 4,1)) * 16777216
>
>RETURN lnReturn
>
>
>
>
>
If it's not broken, fix it until it is.


My Blog
Previous
Next
Reply
Map
View

Click here to load this message in the networking platform