Autor Beitrag
NeoXan
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 81

WinXP Sp1 Home
D7 Prof
BeitragVerfasst: So 15.08.04 21:47 
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
 FFinder := FindFirstPrinterChangeNotification(FPrinter, FFlags, 0nil);
  if FFinder = INVALID_HANDLE_VALUE then
    raise Exception.Create(\'Cannot create notification object\');
  try
    while not Terminated do
      if WaitForSingleObject(FFinder, 50) = WAIT_OBJECT_0 then
      begin
        if FindNextPrinterChangeNotification(FFinder, FFlags, nil, Pointer(FNotifyInfo)) then
        begin
          Synchronize(DoNotify);
          FreePrinterNotifyInfo(FNotifyInfo);
        end;
      end;

  finally
    FindClosePrinterChangeNotification(FFinder);
  end;


Das Prob ist, dass hat schon die Notification ausgelöst wird, wenn ein neuer Job in den PrinterQueue kommt. Nun versuche ich schon ziemlich lange folgendes...
Ich möchte einfach dann wahlweise diesen Job (sprich den letzten oder der der dieses Event ausgelöst hat) zu pausieren bzw. gestatten weiterzulaufen. Gibt es da eine bessere Möglichkeit oder muss ich wenn dieses NotifyEvent ausgelöst wird noch mal eine Prozedur mit EnumJobs etc. etc. machen. Nur wie bekomme ich dann heraus, welchen Job ich schon überprüft habe und welche nicht???

Hoffe mich hat jemand verstanden... :wink:

mfg
NeoXan

Moderiert von user profile iconMotzi: Topic verschoben


Zuletzt bearbeitet von NeoXan am Di 17.08.04 01:06, insgesamt 1-mal bearbeitet
BenBE
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 8721
Erhaltene Danke: 191

Win95, Win98SE, Win2K, WinXP
D1S, D3S, D4S, D5E, D6E, D7E, D9PE, D10E, D12P, DXEP, L0.9\FPC2.0
BeitragVerfasst: So 15.08.04 22:02 
Du kannst dir doch einfach ein Extra Feld\Variable anlegen, in der du die Daten von deinem derzeitigen Druckjob abspeicherst. Und dieses Feld fragst du dann einfach in deiner DoNotify-Methode ab.

_________________
Anyone who is capable of being elected president should on no account be allowed to do the job.
Ich code EdgeMonkey - In dubio pro Setting.
NeoXan Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 81

WinXP Sp1 Home
D7 Prof
BeitragVerfasst: So 15.08.04 22:13 
hmm...ich bin noch nicht soooo bewandert, dass ich das so wirklich verstehen könnte ;)...
Hab mich auch schon versucht mit der MSDN herumzuschlagen, die Daten sind so weit ich glaube in FNotifyInfo.Data oder so...aber weiter bin ich leider nicht gekommen... :/

[EDIT]
Das eigentlich Prob ist ja, dass diese Notification ja ausgelöst ist, sobald der Job ankommt...abe noch nicht in der Warteschlange ist! D.h. jeder Versuch diesen Job dann zu löschen etc. scheitert...
Wenn ich z.B. aber ein ShowMessage nach EnumJobs einbaue und dann erst auf OK klicke, wenn der Job in der Warteschlange ist, dann klappt es?! Gibt es da nicht eine einfachere Möglichkeit...