AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

StandardDrucker setzten

Ein Thema von eagle1985 · begonnen am 14. Mär 2006
Antwort Antwort
eagle1985

Registriert seit: 14. Mär 2006
11 Beiträge
 
#1

StandardDrucker setzten

  Alt 14. Mär 2006, 16:42
Hallo zusammen,

ich setzte den Standardrucker von Windows mit folgendem Code:

Code:
procedure TForm1.MySetDefaultPrinter2(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.Strings[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;
Dies klappt auch wunderbar und in der Systemsteuerung--> Drucker ist der Standarddrucker geändert.

Wenn ich anschliessend gleich folgenden Code starte erhalte ich immer eine Fehlermeldung, dass kein Drucker installiert ist.
Code:
shellexecute (application.Handle,'print',PChar('C:\Test\Test.doc'),nil,nil,SW_SHOWNORMAL);
Der Auschschnitt im Code sieht folgendermassen aus:
Code:
procedure TForm1.Button1Click(Sender: TObject);
begin
  MySetDefaultPrinter2('FreePDF XP');
  shellexecute (application.Handle,'print',PChar('C:\Test\Test.doc'),nil,nil,SW_SHOWNORMAL);
end;
Weiss jemand wiso diese Fehlermeldung auftaucht??

PS: Wenn der Drucker durch Delphi gewechselt wurde und in einem beliebigen anderen Programm drucken möchte, geschiedt dies erfolgreich auf dem neuen Standarddrucker.

greez eagle
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:23 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz