Prozess startet nicht in Dienst mit Konto-Anmeldung

DrMueller

Erfahrenes Mitglied
Hallo Leute,
folgendes Problem bei einer Schnittstelle:
Ich sollte Journale, welche als Word vorliegen, zu PDF konvertieren und dann importieren.
Das Problem ist jetzt folgendes:
Beim Dienst ist die Option Lokales Systemkonto leider vom Konzept her nicht gegeben, ich müsste es also mit "Dieses Konto: " und dann einem Benutzerkonto ausführen.

Ich habe nun testweise mein eigenes genommen, doch leider funktioniert dann folgender Code-Abschnitt nicht mehr:

Code:
      With novaObj
        .Initialize(PRINTER_NAME, "xxx", "xxx")
        Try
          .AddProfile(PROFILE_DOW)
        Catch ex As Exception
          OutputDebugString(DEBUGSTRING & "Das Druckerprofil " & PROFILE_DOW & " ist bereits vorhanden. Dieses wird nicht hinzugefügt.")
        End Try
        Try
          .SetActiveProfile2(PROFILE_DOW)
          .SetOptionLong2(NOVAPDF_PAPER_OVERRIDE, 1, PROFILE_DOW)
          .SetOptionString2(NOVAPDF_PAGE_ORIENTATION, 1, PROFILE_DOW)
          .SetOptionString2(NOVAPDF_ACTION_OPEN_DOCUMENT, 0, PROFILE_DOW)
          .SetOptionString2(NOVAPDF_SAVE_PROMPT, 0, PROFILE_DOW)
          .SetOptionString2(NOVAPDF_SAVE_FILE, arbeitsDatei.Name, PROFILE_DOW)
          .SetOptionString2(NOVAPDF_SAVE_FOLDER, arbeitsDatei.DirectoryName, PROFILE_DOW)
          .SetOptionString2(NOVAPDF_FILE_CONFLICT, 3, PROFILE_DOW)
          .SetDefaultPrinter()
          .LicenseShellExecuteFile(arbeitsDatei.FullName)

          myProcess = New Process
          myProcess.StartInfo.FileName = arbeitsDatei.FullName
          myProcess.StartInfo.Verb = "Print"
          myProcess.StartInfo.CreateNoWindow = True
          myProcess.Start()
          myProcess.WaitForExit(10000)
          myProcess.Close()
        Catch ex As Exception
          OutputDebugString(DEBUGSTRING & "Fehler beim Setzen des Nova-Druckers. Fehler: " & ex.Message)
        End Try
      End With

Das Problem ist nun das myProcess.Start, denn dieses wird einfach nicht ausgeführt.
Ich habe Debugstrings vor und nach dem Start hinzugefügt, und es läuft einfach weiter.

Hat wer eine Idee, wieso myProcess.Start ignoriert wird?
 

Nico Graichen

Erfahrenes Mitglied
Hi,

Was ist ArbeitsDatei und was steht in FullName?
Der Pfad zum Word-Doc?
Wenn das der Fall ist:
Da du eine Service schreibst, kannst du nicht über Word drucken. Word ist eine GUI-Anwendung und ein Dienst hat keine GUI (gilt auch dann, wenn du dem Prozess sagst, er soll kein Fenster anlegen).
Bis XP / W2k3 kannst in den Diensten einstellen, dass sie mit dem Desktop interagieren können, dann kannst du auch GUI-Komponenten nutzen.
Falls du den Dienst aber auch auf Vista oder W2k8 zur Verfügung stellen willst, hast du diese Option nicht mehr.