在窗体中加入combobox和两个button
你自己TRY!
我测试通过!
procedure TForm1.Button1Click(Sender: TObject);
begin
ComboBox1.Items := Printer.Printers;
{populates ComboBox}
ComboBox1.ItemIndex := Printer.PrinterIndex;
{sets display to current printer}
end;
procedure TForm1.Button2Click(Sender: TObject);
var
Device: array[0..255] of Char;
Driver: array[0..255] of char;
Port: array[0..255] of char;
s : array[0..255] of Char;
hDeviceMode: THandle;
begin
Printer.PrinterIndex := ComboBox1.ItemIndex;
Printer.GetPrinter (Device, Driver, Port, hDeviceMode);
StrCopy (s, Device);
StrCat (s, ',');
StrCat (s, Driver);
StrCat (s, ',');
StrCat (s, Port);
WriteProfileString ('windows', 'device', s);
StrCopy (s, 'windows');
SendMessage (HWND_BROADCAST, WM_WININICHANGE, 0, LongInt(@s));
end;