Hallo zusammen,
mein erster Beitrag hier im Forum ist, wie vieleicht nicht bei jedem, keine direkte Frage sondern eher ein paar Grundüberlegungen zu einem Programm das ich schreiben möchte.
Erstmal kurz zu mir: Ich bin 31 und habe mich schon des öfteren mit Scripting und z.B. der Programmierung mit Delphi beschäftigt. Da das aber schon einige Zeit her ist und ich mich nun mit Visual Basic beschäftigen möchte habe ich ein paar Grundsatzfragen.
Ich möchte (noch) nicht oder nur nebenbei mit Lehrbüchern arbeiten, da ich sehr viel besser lerne wenn ich aktiv an etwas nützlichem arbeite. Das ich um grundlegendes wie Syntax, Variablentypen und definitionen, Kontrollstrukturen etc. pp. nicht herumkomme ist mir schon klar aber auch das würde ich am liebsten beim arbeiten an einem Programm lernen.
Das Programm welches ich schreiben möchte, will ich kurz beschreiben...
Es soll eine Oberfläche zur Verfügung stellen über die sich Anwender auf einfach Art und weise einen Netzwerkdrucker hinzufügen können, ich stelle mir eine ComboBox vor in der alle, auf einem Printserver verfügbaren Drucker aufgelistet werden, zusätzlich eine CheckBox um aktivieren zu können das der Drucker als Standarddrucker eingerichtet werden soll und eine Schaltfläche um das Event zum verbinden auszulösen.
Folgende Fragen stellen sich mir in Bezug auf das Programm:
1. Befüllen der ComboBox
Wie befülle ich die ComboBox mit den auf dem Printserver freigegebenen Druckern? Meine erste Idee wäre eine WMI Abfrage durchzuführen und die ComboBox mit den Ergebnissen zufüttern (wie weiß ich noch nicht, aber das lässt sich sicher recherchieren). Ist dies ein für VB gängiger Weg oder stellt das .NET Framework hierfür eine Klasse Bereit die ich nutzen kann?
2. Druckerverbindung herstellen
Ich habe im Internet recherchiert und folgendes Codebeispiel für diese Aufgabe gefunden:
[highlight=vbnet]Public Shared Sub AddNetworkPrinter(ByRef printerName As String, ByRef networkPath As String, _
Optional ByRef useExistingDriver As Boolean = 0, Optional ByRef setDefaultPrinter As Boolean = 0)
Dim cmdToSend As String = "rundll32 printui.dll,PrintUIEntry /in /m " & Chr(34) & printerName & Chr(34) & " /f " & networkPath
If useExistingDriver Then cmdToSend += " /u" ' /u = use the existing printer driver if it's already installed
If setDefaultPrinter Then cmdToSend += " /y" ' /y = set printer as the default
Shell(cmdToSend, AppWinStyle.Hide) ' execute the command
End Sub[/highlight]
rufe ich das ganze mit fest vorgegebenen Werten auf, erhalte ich eine Fehlermeldung das der Drucker auf dem Server nicht mehr existiert, dies ist aber definitiv der Fall. Der Aufruf erfolte dabei folgendermaßen
[highlight=vbnet]
AddNetworkPrinter("Name des Druckers auf dem Server"//myserver/Printer", True, True)[/highlight]
Das soll es fürs erste gewesen sein, für jeden Tip, Fingerzeig, Link oder Kommentar bedanke ich mich schon im voraus!
Viele Grüße
Rolf
mein erster Beitrag hier im Forum ist, wie vieleicht nicht bei jedem, keine direkte Frage sondern eher ein paar Grundüberlegungen zu einem Programm das ich schreiben möchte.
Erstmal kurz zu mir: Ich bin 31 und habe mich schon des öfteren mit Scripting und z.B. der Programmierung mit Delphi beschäftigt. Da das aber schon einige Zeit her ist und ich mich nun mit Visual Basic beschäftigen möchte habe ich ein paar Grundsatzfragen.
Ich möchte (noch) nicht oder nur nebenbei mit Lehrbüchern arbeiten, da ich sehr viel besser lerne wenn ich aktiv an etwas nützlichem arbeite. Das ich um grundlegendes wie Syntax, Variablentypen und definitionen, Kontrollstrukturen etc. pp. nicht herumkomme ist mir schon klar aber auch das würde ich am liebsten beim arbeiten an einem Programm lernen.
Das Programm welches ich schreiben möchte, will ich kurz beschreiben...
Es soll eine Oberfläche zur Verfügung stellen über die sich Anwender auf einfach Art und weise einen Netzwerkdrucker hinzufügen können, ich stelle mir eine ComboBox vor in der alle, auf einem Printserver verfügbaren Drucker aufgelistet werden, zusätzlich eine CheckBox um aktivieren zu können das der Drucker als Standarddrucker eingerichtet werden soll und eine Schaltfläche um das Event zum verbinden auszulösen.
Folgende Fragen stellen sich mir in Bezug auf das Programm:
1. Befüllen der ComboBox
Wie befülle ich die ComboBox mit den auf dem Printserver freigegebenen Druckern? Meine erste Idee wäre eine WMI Abfrage durchzuführen und die ComboBox mit den Ergebnissen zufüttern (wie weiß ich noch nicht, aber das lässt sich sicher recherchieren). Ist dies ein für VB gängiger Weg oder stellt das .NET Framework hierfür eine Klasse Bereit die ich nutzen kann?
2. Druckerverbindung herstellen
Ich habe im Internet recherchiert und folgendes Codebeispiel für diese Aufgabe gefunden:
[highlight=vbnet]Public Shared Sub AddNetworkPrinter(ByRef printerName As String, ByRef networkPath As String, _
Optional ByRef useExistingDriver As Boolean = 0, Optional ByRef setDefaultPrinter As Boolean = 0)
Dim cmdToSend As String = "rundll32 printui.dll,PrintUIEntry /in /m " & Chr(34) & printerName & Chr(34) & " /f " & networkPath
If useExistingDriver Then cmdToSend += " /u" ' /u = use the existing printer driver if it's already installed
If setDefaultPrinter Then cmdToSend += " /y" ' /y = set printer as the default
Shell(cmdToSend, AppWinStyle.Hide) ' execute the command
End Sub[/highlight]
rufe ich das ganze mit fest vorgegebenen Werten auf, erhalte ich eine Fehlermeldung das der Drucker auf dem Server nicht mehr existiert, dies ist aber definitiv der Fall. Der Aufruf erfolte dabei folgendermaßen
[highlight=vbnet]
AddNetworkPrinter("Name des Druckers auf dem Server"//myserver/Printer", True, True)[/highlight]
Das soll es fürs erste gewesen sein, für jeden Tip, Fingerzeig, Link oder Kommentar bedanke ich mich schon im voraus!
Viele Grüße
Rolf
Comment