Announcement

Collapse
No announcement yet.

Überlegungen zu einem Programm (Anfängerfrage)

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Überlegungen zu einem Programm (Anfängerfrage)

    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

  • #2
    Hallo Rolf und willkommen,

    Ich möchte (noch) nicht oder nur nebenbei mit Lehrbüchern arbeiten,
    Dann wird es schwer. Es gibt auch gute Lehrbücher die sehr beispielhaft aufgebaut sind so dass der Code bzw. die Syntax während dem Lesen und selbst nachprogrammieren besser gelernt wird. Für VB.net zB das OpenBook Einstieg in VB.NET und das OpenBook Visual Basic 2005. Um so etwas wirst auch du nicht herumkommen


    Für dein Programm kann ich dir leider nicht helfen denn dies ist nicht mein Gebiet. Aber es gibt auch andere....


    mfG Gü
    "Any fool can write code that a computer can understand. Good programmers write code that humans can understand". - Martin Fowler

    Comment


    • #3
      Hallo gfoidl,

      vielen Dank für deine schnelle Antwort! Die beiden verlinkten Galileo OpenBooks habe ich schon zu meinen Favoriten hinzugefügt, letztgenanntes allerdings in der 2008er Version - birgt das 2005er Exemplar zusätzlich irgendwelche Vorteile?

      Comment


      • #4
        allerdings in der 2008er Version - birgt das 2005er Exemplar zusätzlich irgendwelche Vorteile?
        Ich hab bei der schnelle Google-Recherche nur das 2005er gefunden. Somit ist das 2008er schon OK.

        Da ich allerdings mit C# arbeitete hab ich keines der beiden gelesen und somit kann ich nicht sagen ob die 2005er Version Vorteile hat. Aus der C#-Erfahrung kann ich sagen dass es aber nicht schadet einen Blick in die ältere Version zu werfen denn in der neueren musste Platz für die neuen Technologien geschaffen werden (LINQ, WPF) so dass ein paar fundamentale .net-Sachen gestrichen worden sind.


        mfG Gü
        "Any fool can write code that a computer can understand. Good programmers write code that humans can understand". - Martin Fowler

        Comment


        • #5
          Ich denke doch dass die aktuellste wohl die beste Version ist.

          Comment


          • #6
            Ich werde einfach beide Bücher als Referenzen benutzen.
            Vielen Dank schonmal für eure Antworten.

            Jetzt würde ich mich natürlich noch über Kommentare zu meinen Fragen bezüglich des Programms freuen :-)

            Comment


            • #7
              zu Punkt 2. Kann da nicht wirklich helfen. Du bist dir aber sicher das die Druckerfreigabe auch für den User gilt mit dem du den Code ausführst?

              zu Punkt 1. Für lokale Drucker gibts in .NET die PrinterSettings.InstalledPrinter Property. Für Drucker im Netz gibts soweit ich weiß nichts vorbereitetes. Die beiden Alternativen sind WinAPI (EnumPrinters) oder die von dir angesprochenen WMI Abfrage (Win32_Printer). Wobei es dann in NET zumindest Unterstützung für WMI git.

              Comment


              • #8
                Danke für die Antwort Ralf!

                zu Punkt 2. Ja da bin ich sicher, es ist ein Account mit administrativen Rechten auf dem Printserver.

                zu Punkt 1. Dann werde ich mich mal versuchen mit der WMI Abfrage herumzuschlagen wenn dort ein wenig durch .NET möglich ist. WMI an sich ist ja auch auf relativ vielen Scriptingseiten und in der MSDN ganz gut dokumentiert, um das eigentlich verbinden des Druckers kann ich mich dann auch kümmern wenn ich die Drucker erstmal ausgelesen habe.

                Comment


                • #9
                  http://stackoverflow.com/questions/2...-info-in-c-net

                  Comment

                  Working...
                  X