Announcement

Collapse
No announcement yet.

TS Easy Print / slimprint / Thinprint selbst entwickeln?

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

  • TS Easy Print / slimprint / Thinprint selbst entwickeln?

    Hallo alle miteinader.

    Ich hab mal eine Frage und zwar. Seit Windows 2008 gibt es ja
    den Zusatz TS EasyPrint.

    Der ermöglicht es mir, Drucker ohne Treiber Installation auf dem Terminal Server zu nutzen. Leider sieht der Druckauftrag bescheiden aus und die kompriemierung ist auch nicht ser dolle. Zumindest kommt mir das so vor.

    Die Technik ist eigentlich ganz simpel wenn ich das so richtig verstanden habe.
    Alle lokalen Drucker werden gemappt, allerdings als XPS Drucker.
    Nur die Druckereigenschaften werden vom Client angezeigt, so das die Eigenschaften auch zum Client Drucker passen.

    Wird ein Druck ausgelöst, wird dieser in eine XPS geschrieben und zum Client egsendet. Dieser wrid dann auf dem Drucker mit den übergebenen Einstellungen gedruckt. Der Clintdruckertreiber wertet das XPS Dokument aus und bereitet Ihn für den Drucker auf. Somit brauch ich keinen Treiber auf dem Server. Ausser den XPS.

    Es gibt Alternativ Lösungen wie ThinPrint Slimprint etc. Sind aber extrem teuer.
    Ich dachte mir eigentlich das kann doch nicht so schwer sein.

    Mein Gedanken gang war : Auf dem Client eine Clientsoftware die ermittelt welche Drucker auf dem System sind.

    Dann per RDP Zwischenablage oder Dateiübermittlung
    (ich weiss noch nicht welche möglichkeiten der Datenübergabe ich per RDP habe)


    Auf dem Server läuft ein Dienst der den Drucker mittels PrintEntry.dll einen PS Drucker lokal anlegt mit rechten nur für diesen User, damit anderen den Drucker nicht sehen. Wenn darüber gedruckt wird eine PS datei erstellt und komprimiert, dann per RDp wieder zurücksendet und auf den richtigen Drucker ausdruckt (dies wird anhand des Namens festgemacht)

    Mein Problem war nur, wie bekomme ich die Druckereigenschaften vom Client Drucker?

    Ich habe mir das TS-Easyprint mal genauer angeschaut. Es ist wörtlich ein eigener Treiber mit eigenem anschluss. Denn wenn ich die Druckertreibereigenschaften auf der Remotesitzung öffne steht in einem Dialog dahinter das dies die Treiber von einem Umgeleiten Drucker ist.

    Soviel zu meiner Einleitung. Vielen Dank das ihr bis hierher durchgehalten
    habt.

    Nun zu meiner eigentlichen Frage. Ich habe im Netz nicht wirklich was dazu gefunden.


    Wie erstelle ich eine Druckerumleitung auf einen anderen Treiber / Anschluss in VB.net Weil was die anderen machen ist doch auch keine Hexenwerk habe ich mir gedacht.

    Vielleicht hat jemand ja eine Idee. Ich weiss nicht mal wo ich ansetzten soll.
    Denn ich möchte es in dem Microsft RDp-Clinet / bzw Coord für Mac umsetzten. Und diese unterstützen TS Easyprint. Nur ich möchte Easyprint nicht nutzen.
    Der zweite Grund ist der
    ERICOM Blaze Client unterstützt Easy Print garnicht. Den nutzen ich für ganz langsame Bandbreiten.

    Ich danke schon mal im voraus.

    Bis denne

    Lg Bonkersdeluxe

  • #2
    Hallo!

    Ich hätte da eine Idee, vielleicht könnt ihr mir helfen.

    Ich habe gelsen das es Virtual Channels in RDP sitzungen gibt um dort Daten von Client zum Server und umgekehrt zu senden.

    Auf folgender Seite habe ich etwas gefunden wie das in c# zu lösen wäre.
    Aber nicht vb.net.

    http://www.codeproject.com/KB/system...?display=Print

    Denn wenn ich die COM schnitstelle MSTSCLib hinzufüge und instanziere bekomme ich folgende Meldung von der IDE :

    Fehler 1 "MSTSCLib.MsRdpClientClass.Friend Sub New()" ist in diesem Kontext nicht zugreifbar, da es "Friend" ist.

    Die funktionen die ich benötige finde ich laut der Microsoft Seite in der wtsapi32.dll

    http://msdn.microsoft.com/en-us/libr...29.aspx?ppud=4

    Allerdings werde ich daraus nicht schlau wie ich in vb.net
    a) Eine TS Addin DLL erstellen soll.
    b) Überhaupt auf die WTSapi32.dll zugreifen kann.

    Denn über diesen Channel könnte ich die Druckaufträge komprimiert versenden und die Informationen holen welche Drucker der Client überhaupt hat.

    Vielleicht hat jemand ja eine Idee.

    Ich google dann mal weiter wozu ich aber nicht gescheites gefunden habe.
    Es kann doch nicht so schwer sein aus vb.net heraus, dieses zu nutzen.

    Vielen Dank!

    Lg Bonkersdeluxe

    Comment

    Working...
    X