Deutsch
Forum

Druckerauftrag ermitteln

 
- Seite 1 -



Rolf
Koch
Hallöchen heut frag ich mal so in die Runde, da ich mit Drucken nie soviel gemacht habe.
Folgende Problemstellung:
Wir haben bei uns ein Computer mit Drucker auf dem Lager.
Wenn ein Kunde ein Gerät gekauft hat und an der Kasse bezahlt hat, so kommt bei uns ein entsprechender Beleg aus dem Drucker, damit wir die Waschmaschine, TV oder solch ein Zeugs raussuchen können.
Jetzt würde ich gerne ein nebenbeilaufendes Tool schreiben, welches einen Sound abspielt, wenn ein solcher Beleg aus dem Drucker kommt.
Meint Ihr, ich könnte dies irgendwie erreichen?
 
20.12.2008  
 



 
- Seite 8 -


Ja,

das erlaubt XProfan nicht -

ein Return innerhalb While/ Repeat Schleife.

Ein Programmierfehler.

Schleifen mit Break durchbrechen.
 
11.11.2012  
 




Rolf
Koch
Jepp, hab sowas in Erinnerung. Naja, das kann ich ja lösen.
Wie das Leben so spielt, ist mir auch noch der Drucker verreckt LOOOOL. Also hab ich Fileprinter eingestellt und siehe da (nachdem ich es testweise ohne XPSE laufen lasse), da kommt nix an. HEEEEUUUULLLL.
So wie das Programm aussieht, wäre es genau das, was ich will, sogar das wichtige DOKUMENTTITEL ist dabei!

Nachtrag: Egal ob der Drucker am A..h ist, Druckaufträge gehen ja raus und zum Testen reicht es. Kommen also an. Aber Rest, mal kucken.

Nachtrag 2: Im Profaninterpreter läuft es einwandfrei, wenn ich es pur wie geschrieben mit Profan compiliere und eine Exe erstelle, kommt eine EAccess Violation ????
 
11.11.2012  
 




Andreas
Miethe


Rolf Koch (11.11.12)

Jepp, hab sowas in Erinnerung. Naja, das kann ich ja lösen.


Das wird aber nicht so einfach sein, denn genau an dieser Stelle musst Du raus aus der Prozedur, sonst wirst du eine Fehlermeldung bekommen. Ob XProfan das erlaubt ?, MUSS erlauben . Bei mir funktioniert das nur so

Funktioniert denn die EXE ?
 
Gruss
Andreas
________ ________ ________ ________ _
Profan 3.3 - XProfanX2
Win 95,98,ME,2000,XP,Vista - Win 7 32 / 64 Bit
ASUS X93S - Intel Core I7-NVIDIA GForce 540M 8GB Arbeitsspeicher
Homepage :  [...] 
11.11.2012  
 




Rolf
Koch
Nein leider nicht Andreas, wie geschrieben EAccess Violation ..... irgendwas mit Lesen von Adresse.
Man kann doch raus? Indem man eine globale Variable setzt und vor dem Return diese füllt, oder bin ich zu lange raus gewesen? ^^
Also falsch ausgedrückt.
Anstatt Return eine Variable füllen so meinte ich.
 
11.11.2012  
 




Rolf
Koch
Keine Ahnung ob es Erfolgsversprechend ist, aber hab gerade über den Rechner meiner Frau einen Druck rausgeschickt. Wie gesagt im Interpreter läuft es ja und dieser Druck wurde fein angezeigt.
Die Frage ist nun: Verhält sich ein direkt angeschlossener Drucker per Netzwerkkabel genauso? Also die Frage, wird wirklich alles abgefragt?
Dann müsste ich nur noch den Code laufbar bekommen als EXE.
Kann es kaum erwarten, denn diese Sache nagt schon Monatelang an mir rum und ich drehe noch ab.
 
11.11.2012  
 



@Andreas: Was spricht gegen Break und dagegen, nach dem Schleifenkörper

die Funktion zu verlassen? Return innerhalb von Schleifen bringt Stacks durcheinander -

beim interpretierten XProfan imho gleichermassen wie beim nativen (n)Profan.

Darum meldet XPSE das auch als Fehler, XProfan meldet das imho erst zur Laufzeit

als Fehler aber ich weiß nicht bei welchen Versionen.
 
12.11.2012  
 




Andreas
Miethe


Hallo Rolf,
,
das sollte mit Windows7 auch mit der Dll funktionieren, nur besser, da kein Zweitprocess benötigt wird.
Der Aufruf der Funktion sollte so aussehen:

Result$ = String$(WMIResult1("SELECT Document,Caption,TimeSubmitted FROM Win32_PrintJob","root\\CIMV2","","",""),0)

Also alle Leerstrings auch leer lassen, nicht 0.0.0.0
 
Gruss
Andreas
________ ________ ________ ________ _
Profan 3.3 - XProfanX2
Win 95,98,ME,2000,XP,Vista - Win 7 32 / 64 Bit
ASUS X93S - Intel Core I7-NVIDIA GForce 540M 8GB Arbeitsspeicher
Homepage :  [...] 
12.11.2012  
 




Rolf
Koch
Okay ich versuch es dann nochmal so
 
12.11.2012  
 




Rolf
Koch
Ähhh Andreas folgendes liegt mir in Deinem Code vor:
KompilierenMarkierenSeparieren
WINDOW 800,700
CLS
Var OldR& = 0
Var s& = Create("listbox",%hwnd,"",10,20,200,600)
Var s2& = Create("listbox",%hwnd,"",210,20,500,600)
Var ende& = 0

WhileNot ende&

    WaitInput 200'alle 200 Millisekunden aktualisieren
    'Daten von Printjobs auflisten
    '                               Parameter: 'Query,'Adresse,'IP,Computername,Passwort,Listbox1,Listbox2
    OldR& = external("AMP_WMI.DLL","WMIResult","Win32_PrintJob","root\CIMV2","192.168.0.3","","",S&,S2&)
    'Prozessordaten auflisten
    'OldR& = external("AMP_WMI.DLL","WMIResult","Win32_Processor","root\CIMV2","","","",S&,S2&)
    'Cdrom drives auflisten
    'OldR& = external("AMP_WMI.DLL","WMIResult","Win32_CDROMDrive","root\CIMV2","","","",S&,S2&)
    'Sound-Device auflisten
    'OldR& = external("AMP_WMI.DLL","WMIResult","Win32_SoundDevice","root\CIMV2","","","",S&,S2&)
    'Base-Board auflisten
    'OldR& = external("AMP_WMI.DLL","WMIResult","Win32_Bios","root\CIMV2","","","",S&,S2&)
    Locate 0,0
    Print " Anzahl : " ;oldR&

    If OldR& = 0

        SendMessage(s&,$184,0,0)'listen löschen
        SendMessage(s2&,$184,0,0)

    EndIf

EndWhile

End

Wo bau ich denn Deinen Result$ String ein? Sorry!
 
12.11.2012  
 




Andreas
Miethe


Ups, da hast Du noch den alten Code.
Versuch den hier.
KompilierenMarkierenSeparieren
 $H Windows.ph
ImportDll("AMP_WMI.DLL","")
WINDOW 800,600
WindowTitle "WMI-Test"
UseIcon "A"
CLS  ~GetSysColor(~COLOR_3DFACE)
Var OldR& = 0
Var Result$ = ""
Var ende& = 0
Declare A$[]
Declare B$[]
Declare s$[]
Declare Jobs&
Var PrintTjobs& = Create("Text",%hwnd,"Printjobs",10,60,300,20)
SetFont PrintTjobs&,~GetStockObject(~DEFAULT_GUI_FONT)
Var T$ = "Job;0;160;Drucker;0;200;Dokument;0;200;Zeit;0;200"
Var Grid& = Create("GridBox", %hwnd,T$,0,10,80,764,360)

Proc Printjobs

    ~Lockwindowupdate(Grid&)

    Repeat

        DeleteString(Grid&,0)

    Until GetCount(Grid&) = 0

    Result$ = String$(WMIResult1("SELECT Document,Caption,TimeSubmitted FROM Win32_PrintJob","root\\CIMV2","","",""),0)
    A$[] = Explode(Result$,chr$(10)+chr$(13))
    Jobs& = (A$[0])

    WhileLoop 0, SizeOf(A$[]) - 1

        If Left$(A$[&loop],8) = "Document"

            B$[] = Explode(A$[&loop],";")

            Whileloop 1,Jobs&

                s$[&loop] = s$[&loop]+"|"+Translate$(B$[&loop],";",":")

            EndWhile

        ElseIf Left$(A$[&loop],7) = "Caption"

            B$[] = Explode(A$[&loop],";")

            Whileloop 1,Jobs&

                s$[&loop] = Str$(&loop)+"|"+Translate$(B$[&loop],";",":")

            EndWhile

        ElseIf Left$(A$[&loop],13) = "TimeSubmitted"

            B$[] = Explode(A$[&loop],";")

            Whileloop 1,Jobs&

                s$[&loop] = s$[&loop]+"|"+String$(DateTime(B$[&loop]),0)

            EndWhile

        EndIf

    EndWhile

    Whileloop 1, Jobs&

        Addstring(Grid&,s$[&loop])

    EndWhile

    ~Lockwindowupdate(0)

EndProc

KeinFlackern()
PrintJobs()

WhileNot ende&

    WaitInput 1000'alle 1 Sekunden aktualisieren
    PrintJobs()

EndWhile

End

Proc KeinFlackern

    ~SetClassLong(%hwnd,~GCL_STYLE,(~GetClassLong(%hwnd,~GCL_STYLE)- ~CS_HREDRAW - ~CS_VREDRAW))
    SetStyle %hwnd, GetStyle(%hwnd) | ~WS_CLIPCHILDREN
    SetStyle 1,%hwnd, GetStyle(1,%hwnd) | $2000000'WS_EX_COMPOSITED (Double Buffer)

EndProc

 
Gruss
Andreas
________ ________ ________ ________ _
Profan 3.3 - XProfanX2
Win 95,98,ME,2000,XP,Vista - Win 7 32 / 64 Bit
ASUS X93S - Intel Core I7-NVIDIA GForce 540M 8GB Arbeitsspeicher
Homepage :  [...] 
12.11.2012  
 




Rolf
Koch
OK
 
12.11.2012  
 




Rolf
Koch
Leider wieder was, siehe Anhang.

11 kB
Hochgeladen:12.11.2012
Ladeanzahl86
Herunterladen
 
12.11.2012  
 




Antworten


Thementitel, max. 100 Zeichen.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Beitrag  Schrift  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Themenoptionen

111.759 Betrachtungen

Unbenanntvor 0 min.
rquindt17.05.2020
Rainer Hoefs10.03.2018
Rolf Koch20.01.2018
p.specht08.02.2017
Mehr...

Themeninformationen



Admins  |  AGB  |  Anwendungen  |  Autoren  |  Chat  |  Datenschutz  |  Download  |  Eingangshalle  |  Hilfe  |  Händlerportal  |  Impressum  |  Mart  |  Schnittstellen  |  SDK  |  Services  |  Spiele  |  Suche  |  Support

Ein Projekt aller XProfaner, die es gibt!


Mein XProfan
Private Nachrichten
Eigenes Ablageforum
Themen-Merkliste
Eigene Beiträge
Eigene Themen
Zwischenablage
Abmelden
 Deutsch English Français Español Italia
Übersetzungen

Datenschutz


Wir verwenden Cookies nur als Session-Cookies wegen der technischen Notwendigkeit und bei uns gibt es keine Cookies von Drittanbietern.

Wenn du hier auf unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung von Informationen in unseren Cookies auf XProfan.Net zu.

Weitere Informationen zu unseren Cookies und dazu, wie du die Kontrolle darüber behältst, findest du in unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Ich möchte keinen Cookie