View Full Version : Ermitteln ob Drucker im System vorhanden
Hi,
wie kann ich in einem Programm. Egal RPG oder CL ermittlen ob ein Drucker im System verfügbar ist. Gibt es eine Systemtabelle? Eine API? Oder RTVOBJD???
Hab mich schon an QGYRPRTA versucht aber entweder ich hab was falsch gemacht oder die ist dazu nicht wirklich gut zu gebrauchen. Kann mir jemand einen Tip geben?
Gruß Sascha
Versuch mal RTVCFGSTS !
Allerdings geht das nur mit DEVD-Druckern und nicht mit Remote-OUTQ's.
Okay danke für die schnelle Antwort. Wie mache ich es dann aber in RPG?
Hallo Sascha,
system sollte 0 zurück liefern, falls es klappt. Beispiele zur Verwendung von system gibt es auf meiner OpenSource Page en masse.
Dieter Bender
Okay danke für die schnelle Antwort. Wie mache ich es dann aber in RPG?
hallo sascha,
ist zwar schon etwas älter aber sollte noch funktionieren
***************** Datenanfang ******************************************
/************************************************** *******************/
/* */
/* Program: $PRFTAP */
/* */
/* Purpose: Determine if a given printer exists. */
/* */
/* Parms: &DEV IN 10A Name of printer */
/* &rtncde OUT 1A Y=Yes, N=No, ?=Error */
/* */
/************************************************** *******************/
PGM ( +
&DEV /* DEVICE name */ +
&rtncde /* Return code */ +
)
DCL &apierrcde *CHAR 8
DCL &DEV *CHAR 10
DCL &rcvvar *CHAR 64
DCL &rtncde *CHAR 1
DCL &#error *CHAR 1 '?'
DCL &#no *CHAR 1 'N'
DCL &#yes *CHAR 1 'Y'
MONMSG cpf0000 EXEC( GOTO error )
CHGVAR &rtncde &#yes
CHGVAR &apierrcde X'00000008'
CALL qdcrdevd ( +
&rcvvar /* Dummy receiving variable */ +
X'00000040' /* Length = 64 */ +
'DEVD0100' /* Use simplest data format */ +
&DEV /* DEVICE name */ +
&apierrcde /* API error code */ +
)
/* --------------------------------------------------------------- +
* Not a TAPE if QDCRDEVD ends in error, or +
* if the device category is not *TAPF. +
*/
IF ( %BIN( &apierrcde 5 4 ) > 0 ) DO
CHGVAR &rtncde &#no
ENDDO
IF ( %SST( &rcvvar 32 10 ) *NE '*PRT' ) DO
CHGVAR &rtncde &#no
ENDDO
RETURN
error:
CHGVAR &rtncde &#error
ENDPGM
******************Datenende *******************************************
LG
Hans-Joachim
Hey danke. Super Tip. Klappt bestens.
Wie immer gibts mehrere Methoden.
RTVOBJD liefert halt diverse Beschreibungen (auch den Objekttyp).
RTVCFGSTS prüft neben der Existenz halt auch, in welchen Status (abgehängt, angehängt, Nachricht, online,...) das Gerät ist.