Verzeichnis auslesen - erste Datei Drucken

the snake II

Erfahrenes Mitglied
Hallo zusammen,

ich habe hier einen alten Laserdrucker, für den es keine Treiber für WinXP gibt (und geben wird).
Jetzt haben wir uns einen kleinen Homeserver eingerichtet, der Tag und Nacht läuft. Wir haben Win98SE istalliert um den Drucker noch nutzen zu können.
Wenn man jetzt den Drucker als Netzwerkdrucker an seinem WinXP Rechner hinzufügt, bracuht man nätürlich auch die Treiber - also nix da.
Dann hatte ich eine Idee: "einfach" einen Ordner auf dem Win98 Server anlegen und die Dokumente zum Drucken einfach übers Netzwerk in den Ordner Schicken.
Ein kleines Programm auf dem Server guckt dann alle paar Sekunden in den Ordner un prüft, ob eine neue Datei da ist. Wenn ja druckt dieses Programm die Datei aus.
Um dieses Programm geht es.
Ich bin gerade dabei C++ zu lernen und hab auch schon ein Bisschen was zusammengestümpert, was euch aber wahrscheinlich nichts nützen wird:
Code:
#include <stdio.h> 
#include <windows.h> 
#include <iostream.h>
#include <string>
using namespace std;

string filename;
string begin = "PRINT E:\\C++\\Printer\\";
string query;

int drucken(){
    system("echo off");

    //An dieser Stelle soll das Programm prüfen,
    //ob eine Neue Datei da ist.
    //Wenn ja, den Namen in "filename" speichern.

    query = begin + filename;
    system(query.c_str());
    Sleep(6000);
}

int main (){
    for(;;){
    drucken();
    }
}
Ich weiß nicht wie ich den Ordner auslesen soll. Wie kann ich das machen? Nach dem Drucken soll die Datei übrigens noch gelöscht werden.


Vielen Dank schonmal,


The Snake
 
Fürs Ordner durchsuchen nach Dateien gibts die Funktion FindFirstFile(...) und FindNextFile(...). Wie die genau verwendet werden weiß ich grad auch nicht - schau mal in die MSDN, da ist glaub ich ein gutes Beispiel.
 
Hi.

Alternativ könntest du auch Ghostscript auf dem Win98 Rechner installieren und einfach auf dem Client Win XP Rechner einen Postscript Printer Treiber verwenden.

Schau mal hier, da ist das ganze näher beschrieben.
 
Hi,

wenn du jetzt wegen dieses Druckerproblems angefangen hast, c zu lernen, dürfte das ganze ein bisschen heftiger brocken werden.

Ich würde Dir vorschlagen, die ganze Automatisierung über Visual Basic zu realisieren, da Du dort fast alle gesuchten Funktionen bereits vorfindest.

Alternativ könntest Du das ganze über ein Script laufen lassen, z.B.AutoIt.
Das ganze ist relativ simpel zu realisieren in der AutoIt Skriptsprache.

Beste Grüße
 
BadPhantom hat gesagt.:
wenn du jetzt wegen dieses Druckerproblems angefangen hast, c zu lernen, dürfte das ganze ein bisschen heftiger brocken werden.
Um Gottes Willen...ich hab vor kurzem damit angefangen, dannach kam erst das Druckerproblem.

deepthroat hat gesagt.:
Alternativ könntest du auch Ghostscript auf dem Win98 Rechner installieren und einfach auf dem Client Win XP Rechner einen Postscript Printer Treiber verwenden.

Schau mal hier, da ist das ganze näher beschrieben.
Danke für den Link. Ich werds mal durchlesen, hört sich danach an, dass es das richtige ist. (Boa ist mein Englisch in Ferien eingerostet^^)

Vielen Dank an die anderen (@ C Coder: ich guck ma ^^),

The Snake
 
Nein, darauf wollte ich ja hinaus. Reine Textdateien kannst Du relativ einfach drucken (Ausgabe auf einem Drucker-DC). Alles Andere wird ziemlich kompliziert. Bei DOC's könnte es so gehen, indem Du Word mit der Datei und dem Parameter /P aufrufst (system("Winword.exe Dateiname /P") oder so ähnlich). Dazu muß Word natürlich auf dem Rechner installiert sein. Ähnlich könnte es mit PDF's gehen, wenn Du den Acrobat Reader aufrufst.
 
Zurück