"Henry" <henry@nomail.com> skrev i en meddelelse
news:40bcad1d$0$471$edfadb0f@dread14.news.tele.dk...
> > > >
> > > > Nogen her der kender noget til OLE automation sammen med Microsoft
> Word
> > > > 2003?
> > > > Jeg ville lige høre inden jeg kommer med en lang forklaring om mit
> > > problem.
> > > >
> > > > Bruger Delphi 7 prof.
> > >
> > > Jeg har brugt det et par gange til simple applikationer, men er ingen
> haj
> > > til det, derimod er Debora Pate temmelig dygtig jeg vil anbefale dig
at
> gå
> > > på borlands newsgroups under oleautomation.
> >
> > Jeg havde ikke set at der var en oleautomation gruppe men den har jeg
> smidt
> > et spørgsmål ind på nu.
> > Men det jeg gerne vil er at ændre printeren for et dokument i word 2003,
> jeg
> > vil ikke bruge ActivePrinter da den blot ændrer standard printeren for
> hele
> > windows.
> >
> > Jeg kan få fat i Udskriv dialog boksen sådan her:
> >
> > var
> > Dialog : WordXP.Dialog;
> > begin
> > Dialog:=WordApplication1.Dialogs.Item(WordXP.wdDialogFilePrint);
> > Dialog.Show(EmptyParam);
> > .
> > end;
> >
> > men så er spørgsmålet hvordan jeg så får ændret printeren.
>
> Jeg er ked af det men jeg kan ikke hjælpe dig, men jeg vil gerne se
> løsningen når du finder den, det lyder interessant.
>
> En metode jeg har benyttet en del er at optag en makro i excel (jeg ved du
> taler om word) og så kikke i den hvad det er der sker
bare et tip.
>
> Her er hvad der sker, måske kan du bruge det.
>
> Sub Macro1()
> '
> ' Macro1 Macro
> ' Macro recorded 01-06-2004 by Henry
> '
> ActivePrinter = "HP LaserJet III"
> Application.PrintOut FileName:="", Range:=wdPrintAllDocument, Item:= _
> wdPrintDocumentContent, Copies:=1, Pages:="",
> PageType:=wdPrintAllPages, _
> ManualDuplexPrint:=False, Collate:=True, Background:=True,
> PrintToFile:= _
> False, PrintZoomColumn:=0, PrintZoomRow:=0,
PrintZoomPaperWidth:=0,
> _
> PrintZoomPaperHeight:=0
> End Sub
Jeg har fået svar i den NG du nævnte og løsningen var dette:
OleVariant(WordApplication.WordBasic).FilePrintSetup(Printer:=strPrinterName
, DoNotSetAsSysDefault := 1);
Man kan også bruge ActivePrinter problemet er bare at den ændre standard
printeren i windows hvilket jo ikke er særlig smart.
/HK