Avatar billede mip Nybegynder
22. februar 2003 - 19:29 Der er 17 kommentarer og
1 løsning

Dialog startet med sendkey skal kører i baggrund

Hi Jer.

Jeg har et problem i word97, jeg skal kunne sætte printer driver tilbage til default, men det skal gøres med hjælp af genvejs knapper.
Det at skifte til anden printer ovs..., findes der masser info om, men hvordan man sætter printer driver tilbage til default, har jeg intet kunne finde om.
Jeg er kommet til det resultat, at sendkeys er eneste løsning, men dette kan åbenbart ikke gøres unden at printfilesetup dialogen kører synligt.
Kan nogen hjælpe mig med at få den til at kører i baggrunden.

Min kode ser ud som så:
Sub NulstilPrinter()
  pr = ActivePrinter
    Select Case True
      'pr12 to 15 is predefind printernames
      Case CP(pr, pr12), CP(pr, pr13), CP(pr, pr14), CP(pr, pr15)
      '^%n opens the fileprintersetup dialogbox, %i opens
fileprintersetup properties, from there i go around in
the driver setting the different options back to default
      SendKeys "^%n %i d %r %n %r +{TAB} {RIGHT} %r {ENTER} +{TAB} {RIGHT} %r %s %r {ENTER} {RIGHT} %r {RIGHT} %r {ENTER} {esc}"
      Case Else
      MsgBox ("Du har ikke valgt en Canon printer!")
    End Select
End Sub

Mik Agergaard
Avatar billede mortrr Praktikant
22. februar 2003 - 20:00 #1
Kunne man ikke sætte ActivePrinter i Word97?
Avatar billede kol Nybegynder
22. februar 2003 - 20:11 #2
Jeg tror at Printer Changer er lige dét, du trænger til.
Et lille gratis program, som genererer en lille ikon ved siden af uret nederst th. og hvor du ved et højreklik kan vælge lige hvilken printer, du ønsker.
F.eks. i Word når du lige har lavet en konvelut ellr etiket og må starte forfra, fordi du glemte at vælge printer først.
Prøv den. Du finder den hér: http://www.fullcircuit.com/index.htm#soft

Hilsen KOL
Avatar billede Slettet bruger
22. februar 2003 - 21:26 #3
Måske kan du bruge denne macro. Der udskriver til en anden printer i et netværk, og sætter tilbage til den printer brugeren brugte. Lægges som ikon i værktøjslinjen.



Sub PrinterOmstillingTilAndenPrinter()
'Udskriver på en anden printer end default
'***********************Vælger anden printer**********************'


With Dialogs(wdDialogFilePrintSetup)
    sPrinter = .Printer
  .Printer = "Printer sti og navn"
  .DoNotSetAsSysDefault = True
  .Execute
 
End With

'*******************Vælger at der skal udskrives side 1 fra bakke 3 og Side 2 fra bakke 4**************
With ActiveDocument.PageSetup
     
        .FirstPageTray = wdPrinterMiddleBin ' Bakke 3 i Lexmark Optra 612 printeren
        .OtherPagesTray = 257  'Bakke 4 i Lexmark Optra 612 printeren
     
    End With
   
'***********************Udskriver*****************
ActiveDocument.PrintOut

'***************sætter printer tilbage til Default*************


With Dialogs(wdDialogFilePrintSetup)
  .Printer = sPrinter
  .DoNotSetAsSysDefault = True
  .Execute
End With

End Sub
Avatar billede mip Nybegynder
23. februar 2003 - 01:32 #4
Tak for jeres svar, prøv lige at læse nedenstående, jeg tror ikke jeg forklarede mig godt nok.

Kunden bruger word hele dagen, hvor hun udskriver nogle dokumenter hæftede andre hæftede/hullet og til printerens mailbox, hun vil med andre ord lave om på printer driverens opsætning i tide og utide, og så vidt jeg ved vil både words printer opsætning og printerens egen, forblive som man efterlod den, ved sidste udskrift, med mindre man manuelt ændre opsætningen eller lukker og åbner word.
Så jeg kan ikke bruge knapper der skal activers med mus.
Jeg kan heller ikke forstå hvordan det at skifte printer skulle hjælpe mig, men jeg er også helt ny inden for vb-script, så hvis i kan forklare mig nærmere?
Avatar billede mip Nybegynder
23. februar 2003 - 01:47 #5
Tak for jeres svar, prøv lige at læse nedenstående, jeg tror ikke jeg forklarede mig godt nok.

Kunden bruger word hele dagen, hvor hun udskriver nogle dokumenter hæftede andre hæftede/hullet og til printerens mailbox, hun vil med andre ord lave om på printer driverens opsætning i tide og utide, og så vidt jeg ved vil både words printer opsætning og printerens egen, forblive som man efterlod den, ved sidste udskrift, med mindre man manuelt ændre opsætningen eller lukker og åbner word.
Så jeg kan ikke bruge knapper der skal activers med mus.
Jeg kan heller ikke forstå hvordan det at skifte printer skulle hjælpe mig, men jeg er også helt ny inden for vb-script, så hvis i kan forklare mig nærmere?
Avatar billede kol Nybegynder
23. februar 2003 - 11:43 #6
Den bedste løsning vil nok være at installere den pågældende printer flere gange med forskellige opsætninger.
Altså således, at man kan vælge den samme printer med forsk. standardopsætninger: Printer 1 std., Printer 1 hæftet, Printer hæftet/hullet, osv.

Når det er gjort, er det ikke noget problem på den lokale PC at lave makroer og tildele dem hver sin knap på værktøjslinien. Hver makro skal slutte med at stille om til Printer 1 std.

Hilsen KOL
Avatar billede mip Nybegynder
23. februar 2003 - 12:59 #7
Hi Kol.

Dette har jeg også tænkt på, men det vil give en masse printere, kunden har i forvejen 25 printere, disse er alle multi maskiner, der kan en hulens masse ting, så resultat vil blive, 25 X mindst 10 forskellige kombinationer, så hvis bare jeg kunne løse mit problem med at få kørt sendkey scriptet i baggrunden, ville jeg kunne nøjes med 25 X 3 printere.

Hilsen Mik
Avatar billede kol Nybegynder
23. februar 2003 - 14:35 #8
OK!
Det ser ud til at være en mægtig opgave.

Men alle arbejdsstationer skal vel ikke nødvendigvis kunne skrive ud til en hvilken som helst printer i en hvilken som helst indstilling?

Mon ikke en bedre printerstrategi er vejen frem?

Hilsen KOL
Avatar billede mip Nybegynder
23. februar 2003 - 15:15 #9
Hi Kol.
Du har ret, hver arbejdsstation skal selvfølgelig ikke kunne printe på alle printere, men det vil jo ikke begrænse antallet af printere på print serveren, hvorfra de enkelte brugere for presset deres lokale printere ud.
Angående indstillinger, brugeren " skal " have mulighed for at vælge hvilke funktioner han vil bruge.
Hvad siger du til spørgsmålet om at få kørt sendkey scriptet i baggrunden?

Den umulige
Avatar billede kol Nybegynder
23. februar 2003 - 15:21 #10
Jeg kan desværre ikke hjælpe yderligere. Min erfaring stopper hér.
Får den stakkels printersever aldrig åndenød med sådan en belastning?

Good luck.

KOL
Avatar billede mortrr Praktikant
23. februar 2003 - 15:23 #11
Det er muligt at lave et script som giver mulighed for at gemme en opsætning under et navn. Enten i en "ini-fil" eller database (eller registry, men så er den besværlig at flytte til en anden computer).

Brugeren kunne så opsætte printeren som ønsket, og gemme opsætningen.
Og hente en navngiven opsætning fra en liste.

Der bliver lidt udforskning med at hente alle opsætningerne fra
ActiveDocument.PageSetup og Dialogs(wdDialogFilePrintSetup), men det er absolut muligt.

Din idé med at bruge SendKey er ikke vejen frem. Det bliver alt for besværligt.
Og du kan IKKE bruge sendkey i baggrunden. Ideen med den er netop at den simulerer at en bruger trykker på tasterne.
(man kan dog skifte fokus frem og tilbage, men det kommer an på hvad der er i forgrunden)

- Morten

- Morten
Avatar billede mip Nybegynder
23. februar 2003 - 15:32 #12
Hi Morten.

Det du har gang i her, er vejen frem, ideen med en ini fil eller database, lyder godt, da denne kan ligge på et sharet drev.
Ideen lyder også godt, fordi alle printere, bruger samme driver opsætning, det vil sige driveren ser ens ud, men jeg har igen ide om hvordan man gør, kunne du skubbe mig lidt igang?
Den uvidende
Avatar billede mortrr Praktikant
23. februar 2003 - 16:19 #13
Nu fik jeg dykket lidt mere ned i det, og det er en større omgang end jeg lige huskede, men stadig absolut muligt.

Du kan ikke bruge PageSetup og wdDialogFilePrintSetup til så meget, kun hvis det er helt basale ting der skal gemmes.
Og så må vi håbe at det er en forholdsvis ny printer, som er skrevet foruftigt.

Man skal bruge et par API funktioner i winspool.
Kig på:
http://pubs.logicalexpressions.com/Pub0009/LPMArticle.asp?ID=116
http://www.kulpa-online.de/tipps/visualbasic/508.htm
http://msdn.microsoft.com/library/en-us/gdi/prntspol_8nle.asp
http://support.microsoft.com/?kbid=230743

Det første link viser en vba funktion til at ændre på og hente printer opsætningen.
Det er en lang artikel, men forholdsvis nem at gå til.
Den anden artikel viser lidt det samme.
Den tredie er flere informationer om hvilke informatiner man kan hente/sætte med DEVMODE via DocumentProperties funktionen.
Den fjerde er et MS eksempel på at sætte duplex.

(og lad nu være med at fortvivle helt. Det kan blive en rigtig lækker funktion, som man burde kunne sælge)

- Morten
Avatar billede mortrr Praktikant
23. februar 2003 - 16:20 #14
Er det en pre SP4?

- Morten
Avatar billede mortrr Praktikant
23. februar 2003 - 16:21 #15
Sorry - det havde ikke noget med den her at gøre. ;-)
Avatar billede mip Nybegynder
24. februar 2003 - 18:14 #16
Hi Morten.

Hvis du skal have dine point skal du lige lave et svar, dine hints har hjulpet mig godt på, og det Canon produkt jeg arbejder med har en god indbygning til sdk, så jeg er fortrøstnings fuld.

Mik
Avatar billede mortrr Praktikant
24. februar 2003 - 19:08 #17
Jamen så siger jeg tak.

- Morten
Avatar billede mortrr Praktikant
25. februar 2003 - 16:11 #18
Øh - først siger du at jeg skal lægge et svar, og så giver du point til kol.

Du skal vist til at få lidt søvn, så du kan holde øjnene åbne.

- Morten
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Tag et kursus i Word og øg effektiviteten

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester