22. februar 2003 - 19:29Der 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
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
Synes godt om
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
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?
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?
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.
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.
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?
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)
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
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.
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)
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.
Ø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
Synes godt om
Ny brugerNybegynder
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.