PDA

Vollständige Version anzeigen : Drucker auswählen


ian_mcdeath
03.08.2001, 09:38
Moin,

ich habe da ein kleines Problem. Ich möchte eine Form ausdrucken (geht) den Drucker dafür aber auswählen können. Bisher wird automatisch der Standarddrucker gewählt.

Kann mir da einer weiterhelfen???


Danke schon mal,


Ian.

Stefan Kulpa
03.08.2001, 19:56
<font face="Verdana" size="2">Hallo,

das geht wie folgt (zur Abwechslung mal ohne API;-):
</font>
<div><link href="http://www.ms-office-forum.net/forum/externals/codeconv.css" rel="stylesheet"><pre><span class="TOKEN">Private Sub</span> Form_Load()
&nbsp;
<span class="TOKEN">Dim</span> sCurrent <span class="TOKEN">As</span> <span class="TOKEN">String</span>
<span class="TOKEN">Dim</span> lIndex <span class="TOKEN">As</span> <span class="TOKEN">Long</span>
<span class="TOKEN">Dim</span> lCount <span class="TOKEN">As</span> <span class="TOKEN">Long</span>
&nbsp;
<span class="REM">'** Ist ein Drucker installiert?</span>
<span class="TOKEN">If</span> Printers.Count &gt; 0 <span class="TOKEN">Then</span>
<span class="REM"> '** Aktuellen Drucker ermitteln</span>
sCurrent = Printer.DeviceName
<span class="REM"> '** Alle Drucker in eine ComboBox schreiben</span>
<span class="TOKEN">For</span> lCount = 0 <span class="TOKEN">To</span> Printers.Count - 1
<span class="REM"> '** Druckername in die Liste aufnehmen</span>
Combo1.AddItem Printers(lCount).DeviceName
<span class="REM"> '** Druckerindex merken</span>
Combo1.ItemData(Combo1.NewIndex) = lCount
<span class="REM"> '** Name vergleichen</span>
<span class="TOKEN">If</span> Printers(lCount).DeviceName = sCurrent <span class="TOKEN">Then</span>
lIndex = Combo1.NewIndex
<span class="TOKEN">End</span> <span class="TOKEN">If</span>
<span class="TOKEN">Next</span>
<span class="REM"> '** Aktuellen drucker vorw&auml;hlen</span>
Combo1.ListIndex = lIndex
<span class="TOKEN">End</span> <span class="TOKEN">If</span>
&nbsp;
<span class="TOKEN">End</span> <span class="TOKEN">Sub</span><hr>&nbsp;
&nbsp;
<span class="TOKEN">Private Sub</span> Command1_Click()
&nbsp;
<span class="REM">'** Drucker wechseln;</span>
<span class="REM">'** Der Wechsel findet tempor&auml;r statt und ver&auml;ndert</span>
<span class="REM">'** nicht systemweit den Drucker!</span>
<span class="TOKEN">Dim</span> sCurrent <span class="TOKEN">As</span> <span class="TOKEN">String</span>
&nbsp;
sCurrent = Printer.DeviceName
<span class="TOKEN">If</span> sCurrent &lt;&gt; Combo1.Text <span class="TOKEN">Then</span>
<span class="REM"> '** Standard-Drucker umbiegen</span>
<span class="TOKEN">Set</span> Printer = _
Printers(Combo1.ItemData(Combo1.ListIndex))
<span class="REM"> '** Testen</span>
MsgBox Printer.DeviceName
<span class="TOKEN">End</span> <span class="TOKEN">If</span>
&nbsp;
<span class="TOKEN">End</span> <span class="TOKEN">Sub</span></pre></div>

<font face="Verdana" size="2">In diesem Beispiel wird eine ComboBox mit den verfügbaren Druckern gefüllt. Über die Schaltfläche wird der zur Zeit ausgewählte Drucker zum Standard-Drucker erhoben - allerdings nur temporär in dieser Session. Der Systemdrucker außerhalb der Applikation bleibt unverändert - das erspart das Zurücksetzen ...

HTH</font>

Raller
04.10.2001, 16:06
Ich hoffe, dies liest noch jemand:
Ich habe versucht, den Code in Excel-VBA zu übertragen, aber das VBA kennt das Object Printers nicht.
Woran liegts?
(Ziel ist die autom. Steuerung der Schächte mit VBA).
Please help.
Danke.
Raller

Nobinx
02.12.2011, 09:47
Kann man diesen hübschen Code direkt in den VBA Quelltext zum Formular mit reinschreiben?
Und warum braucht man einen extra Button um den Drucker auszuwählen, kann man den nicht einfach in der Combobox anklicken?

Danke :)