| 
   
    | ...den Standard Drucker auslesen / setzen? |   
    | Autor: 
      Ulli Conrad |  | [ Tip ausdrucken ] |  |  |  
 
 
 
 
usesPrinters, Messages;
 
 function GetDefaultPrinter: string;
 var
 ResStr: array[0..255] of Char;
 begin
 GetProfileString('Windows', 'device', '', ResStr, 255);
 Result := StrPas(ResStr);
 end;
 
 procedure SetDefaultPrinter1(NewDefPrinter: string);
 var
 ResStr: array[0..255] of Char;
 begin
 StrPCopy(ResStr, NewdefPrinter);
 WriteProfileString('windows', 'device', ResStr);
 StrCopy(ResStr, 'windows');
 SendMessage(HWND_BROADCAST, WM_WININICHANGE, 0, Longint(@ResStr));
 end;
 
 procedure SetDefaultPrinter2(PrinterName: string);
 var
 I: Integer;
 Device: PChar;
 Driver: PChar;
 Port: PChar;
 HdeviceMode: THandle;
 aPrinter: TPrinter;
 begin
 Printer.PrinterIndex := -1;
 GetMem(Device, 255);
 GetMem(Driver, 255);
 GetMem(Port, 255);
 aPrinter := TPrinter.Create;
 try
 for I := 0 to Printer.Printers.Count - 1 do
 begin
 if Printer.Printers = PrinterName then
 begin
 aprinter.PrinterIndex := i;
 aPrinter.getprinter(device, driver, port, HdeviceMode);
 StrCat(Device, ',');
 StrCat(Device, Driver);
 StrCat(Device, Port);
 WriteProfileString('windows', 'device', Device);
 StrCopy(Device, 'windows');
 SendMessage(HWND_BROADCAST, WM_WININICHANGE,
 0, Longint(@Device));
 end;
 end;
 finally
 aPrinter.Free;
 end;
 FreeMem(Device, 255);
 FreeMem(Driver, 255);
 FreeMem(Port, 255);
 end;
 
 procedure TForm1.Button1Click(Sender: TObject);
 begin
 label1.Caption := GetDefaultPrinter2;
 end;
 
 //Fill the combobox with all available printers
 procedure TForm1.FormCreate(Sender: TObject);
 begin
 Combobox1.Items.Clear;
 Combobox1.Items.AddStrings(Printer.Printers);
 end;
 
 //Set the selected printer in the combobox as default printer
 procedure TForm1.Button2Click(Sender: TObject);
 begin
 SetDefaultPrinter(Combobox1.Text);
 end;
 
 
 
 
   
   
    | 
         
          | Bewerten Sie diesen Tipp: |  |  |