Vorrei selezionare il cassetto di una stampante laser da codice.
Uso delphi 7 e questo codice per selezionare il foglio:
procedure TFwps.setfoglio(foglio:string);
var
Device, Driver, Port: array[0..80] of Char;
DevMode: THandle;
pDevmode: PDeviceMode;
begin
// Get printer device name etc.
Printer.GetPrinter(Device, Driver, Port, DevMode);
// force reload of DEVMODE
Printer.SetPrinter(Device, Driver, Port, 0) ;
// get DEVMODE handle
Printer.GetPrinter(Device, Driver, Port, DevMode);
If Devmode <> 0 Then Begin
// lock it to get pointer to DEVMODE record
pDevMode := GlobalLock( Devmode );
If pDevmode <> Nil Then
try
With pDevmode^ Do Begin
// modify paper size
if foglio='A4' then dmPapersize := DMPAPER_A4;
if foglio='A5' then dmPapersize := DMPAPER_A5;
// tell printer driver that dmPapersize field contains
// data it needs to inspect.
dmFields := dmFields or DM_PAPERSIZE;
End;
finally
// unlock devmode handle.
GlobalUnlock( Devmode );
end;
End; { If }
//Peter Below (TeamB) 100113.1...@compuserve.com)
end;
ho dato una occhiata alla struttura di DEVMODE su Win32.HLP
ma non capisco se esista o no la possibilità di selezionare
un cassetto con un foglio e un cassetto con un altro,
per esempio:
Cassetto 1 ->foglio A5
Cassetto 2 ->foglio A4