AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi WaitForSingleObject UND FNotifyInfo, Jobs etc.
Thema durchsuchen
Ansicht
Themen-Optionen

WaitForSingleObject UND FNotifyInfo, Jobs etc.

Ein Thema von NeoXan · begonnen am 17. Aug 2004 · letzter Beitrag vom 22. Aug 2004
Antwort Antwort
NeoXan
(Gast)

n/a Beiträge
 
#1

WaitForSingleObject UND FNotifyInfo, Jobs etc.

  Alt 17. Aug 2004, 14:07
Delphi-Quellcode:
FFinder := FindFirstPrinterChangeNotification(FPrinter, FFlags, 0, nil);
  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 schon die Notification ausgelöst wird, wenn ein neuer Job in den PrinterQueue kommt, ohne jedoch wirklich verarbeitet zu sein. Nun versuche ich schon ziemlich lange folgendes...
Ich möchte einfach dann wahlweise diesen Job (sprich den letzten oder auch 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, bzw. die Überprüfung findet statt und der Job ist aber nicht nicht wirklich in der Warteschlange???

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...

Hoffe mich hat jemand verstanden...

mfg
NeoXan
  Mit Zitat antworten Zitat
Blutiger Anfänger
(Gast)

n/a Beiträge
 
#2

Re: WaitForSingleObject UND FNotifyInfo, Jobs etc.

  Alt 22. Aug 2004, 00:36
Ich vermute mal, daß du bestimmte Printjobs verhindern willst. Sozusagen eine Print-Accounting-Software.

Mit Notifications wirst du da meinen Erfahrungen nach nicht weiterkommen. Und falls es tatsächlich geht, kommst du um EnumJobs nicht rum. Übrigens ist diese Methode nicht auf 9x verfügbar, wo man das ganze über Polling machen würde. Ein Beispiel existiert im PSDK.
  Mit Zitat antworten Zitat
NeoXan
(Gast)

n/a Beiträge
 
#3

Re: WaitForSingleObject UND FNotifyInfo, Jobs etc.

  Alt 22. Aug 2004, 09:47
hmm....ok, wäre auch zu schön um wahr zu sein

Wie könnte man das Prob dann lösen, etwa einen vollkommen virtuellen Printer kreieren?

mfg
NeoXan


BTW: Also ich habe es doch geschafft...auf Win NT läuft es bis jetzt ohne Fehler durch...was aber heißt das nicht 20 Leute gleichzeitig einen Job senden, da könnte es glaube ich sein, dass die Application abstürtzt .
Wenn das Notify Object ausgelöst wird, werden halt alle Jobs mit Enum gehohlt und dann wird der letzte Überprüft und gegebenfals wieder gelöscht...Aber wie gesagt einen wirklichen Belastungstest gab es noch nicht...
  Mit Zitat antworten Zitat
Blutiger Anfänger
(Gast)

n/a Beiträge
 
#4

Re: WaitForSingleObject UND FNotifyInfo, Jobs etc.

  Alt 22. Aug 2004, 11:55
Das ist garnicht so einfach, hatte es vor 4 Jahren mal versucht, dann aber nie wieder mangels Zeit.

Shareware-Produkt gibts hier. Müßte man höchstens schauen wie das funzt
http://aranea.tucows.com/files2/pmsetup.exe

Gruß,

Oliver

PS: Die Jobs kämen nicht parallel an, selbst auf einem MP-System nicht.
  Mit Zitat antworten Zitat
NeoXan
(Gast)

n/a Beiträge
 
#5

Re: WaitForSingleObject UND FNotifyInfo, Jobs etc.

  Alt 22. Aug 2004, 14:29
Zitat von Blutiger Anfänger:
PS: Die Jobs kämen nicht parallel an, selbst auf einem MP-System nicht.
Was meinst du damit?
  Mit Zitat antworten Zitat
Blutiger Anfänger
(Gast)

n/a Beiträge
 
#6

Re: WaitForSingleObject UND FNotifyInfo, Jobs etc.

  Alt 22. Aug 2004, 15:57
... daß sie immer seriell ankommen, nie komplett parallel. Dein Code würde also nicht zerbrechen.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:33 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz