Hallo
da es bei uns in der Firma doch nicht gebraucht wird
Ist es von interesse Wer wie Viel Druckt?
dan ist das Script das Richtigte
Spoiler anzeigen
#cs ----------------------------------------------------------------------------
AutoIt Version: 3.2.0.1
Author: Uli Effinger
#ce ----------------------------------------------------------------------------
#include <file.au3>
#include <Process.au3>
#Include <Constants.au3>
#NoTrayIcon
Opt("TrayMenuMode",1) ; Default tray menu items (Script Paused/Exit) will not be shown.
Global $objWMIService, $OEvent, $var
Global $stoploop = 0
$Druckerini = @ScriptDir & "\Drucker.ini"
$Log = @ScriptDir &"\Druckerlog.log"
$settingsitem = TrayCreateMenu("Programm")
$displayitem = TrayCreateItem("Einstellungen", $settingsitem)
$statistikitem = TrayCreateItem("Statistik", $settingsitem)
$logitem = TrayCreateItem("Log Datei Anzeigen", $settingsitem)
TrayCreateItem("")
$aboutitem = TrayCreateItem("About")
TrayCreateItem("")
$exititem = TrayCreateItem("Exit")
TraySetState()
TraySetClick(16)
$OEvent=ObjEvent("AutoIt.Error","nothing")
$strcomputer = "."
$objWMIService = ObjGet("winmgmts:\\" & $strcomputer & "\root\cimv2")
if "" == $objWMIService then
if 1 == $debug then MsgBox(0,"WMI Error", "Can connect to WMI service")
Exit
endif
While 1 And ($stoploop == 0)
$slots = $objWMIService.ExecQuery("Select * from Win32_PrintJob")
if Not IsObj( $slots ) then
if 1 == $debug then MsgBox(0, "WMI Error", "No WMI objects found")
Exit
endif
$i = 0
for $Drucker in $slots
$besitzer = $Drucker.Owner
$status = $Drucker.Status
$jobstatus = $Drucker.JobStatus
$Dokumet = $Drucker.JobId
$DruckerName = $Drucker.Name
$Seiten_insgesamt = $Drucker.TotalPages
$Seiten_Printed = $Drucker.PagesPrinted
$Seiten_gedruckt = IniRead ( $Druckerini, $besitzer, "Seiten", "0" )
$Letzes_Dokumet = IniRead ( $Druckerini, $besitzer, "JobNummer", "0" )
if ($Letzes_Dokumet <> $Dokumet) and ($jobstatus <> "Spoolvorgang") Then
$Seiten = $Seiten_insgesamt + $Seiten_gedruckt + $Seiten_Printed
IniWrite ( $Druckerini, $besitzer, "Seiten",$Seiten)
IniWrite ( $Druckerini, $besitzer, "JobNummer", $Dokumet)
;~ _FileWriteLog($Log,"Besizer: " & $besitzer & " Status: " & $status & " JobStaus: " & $jobstatus & " Jobnummer: " & $Dokumet & " Druckername: " & $DruckerName & " Seiten Inggesamt: " & $Seiten_insgesamt& " Seiten_Printed: " & $Seiten_Printed)
EndIf
;~ $start = $Drucker.Resume
;~ $stopp = $Drucker.Pause
next
$msg = TrayGetMsg()
Select
Case $msg = 0
ContinueLoop
Case $msg = $aboutitem
Msgbox(64,"About:","Ein Nettes Script" & @CRLF & "Danke")
Case $msg = $exititem
ExitLoop
Case $msg = $displayitem
MsgBox(0,"Anzeige","Einstellungen")
Case $msg = $statistikitem
MsgBox(0,"Anzeige","statistik")
Case $msg = $logitem
run(@WindowsDir &"\system32\notepad.exe "& $Log)
EndSelect
WEnd
Es ist nicht fertig
wird aber auch nicht weiter gemacht
die Eistellungen und Statisi sollten eine eigen Exe werden