Witajcie!
Mam problem z pobraniem kolejki drukowania. Aplikacja znajduje się na serwerze, kiedy robię przekierowanie drukowania, na drukarkę podpiętą do komputera lokalnego ,który z serwerem łączy się do rdp, drukarka normalnie drukuje i wszystko jest wspaniale. Tylko teraz, chciałbym dodać do aplikacji możliwość, że jak jest coś w kolejce do wydruku w danej drukarce, to ma przytrzymać aplikację, dopóki drukarka się nie zwolni.
Mój kod:
LocalPrintServer local = new LocalPrintServer();
PrintServer server = new PrintServer();
PrintQueueCollection serverQueues = server.GetPrintQueues(new[] {EnumeratedPrintQueueTypes.KeepPrintedJobs,
EnumeratedPrintQueueTypes.Connections});
List<string> printerNames = new List<string>(); // TODO: DELETE
bool tocheck = true;
foreach (PrintQueue queue in serverQueues)
{
printerNames.Add(queue.Name);
if (queue.Name == printerMOBox.SelectedValue.ToString())
{
bool message = false;
MessageBox.Show(queue.NumberOfJobs.ToString());
while(queue.NumberOfJobs > 0)
{
if (!message)
{
tocheck = false;
message = true;
MessageBox.Show("Please wait for the printer");
}
queue.Refresh();
Thread.Sleep(new TimeSpan(0,0,0,4));
}
break;
}
Problem jest taki, że jak aplikacja jest na serwerze, to pokazuje mi kolejkę pustą, a nie tak jak na lokalu.. 36 pozycji.
Ktoś widzi jakieś rozwiązanie tego problemu? Będę naprawdę wdzięczny, bo google póki co nie bardzo mi pomogły.. :/
EDIT:
Dodam jeszcze, że chodzi mi o to, by pobrać liczbę elementów drukowania, albo choć status, czy jeszcze drukuje, czy już skończyła.