- 註冊時間
 - 2006-3-13 
 - 最後登錄
 - 2025-7-23 
 - 在線時間
 - 675 小時 
 - 閱讀權限
 - 200 
 - 積分
 - 417 
 - 帖子
 - 1109 
 - 精華
 - 0 
 - UID
 - 2 
  
 
 
 
    
 | 
 
- 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[I] = 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;
 
  複製代碼- sprint := GetDefaultPrinter;     //取得原始預設印表機   
 
 - SetDefaultPrinter2(sPrnName);    // 更改預設印表機   
 
 - ShellExecute(Application.Mainform.Handle,'Print',Pchar(要列印的pdf 路徑),nil, nil, SW_SHOW);               
 
 - SetDefaultPrinter2(sprint);   // 恢復原始預設印表機   
 
  複製代碼 http://delphi.ktop.com.tw/board.php?cid=30&fid=69&tid=91080 |   
 
  
 |