2016-02-22 8 views
8

Zrobiłem WCF usługi i zawiera metodę ciąg SaveVideoInformation()UI proces nie jest widoczny po Process.Start()

Celem tej metody jest to, aby uruchomić proces, jeśli nie jest bieganie. Poniżej znajduje się kod tej metody.

public string SaveVideoInformation(string ID, string videoName) 
    { 
     string Result = null; 
     try 
     { 
      Result = Insert(ID, videoName); 
      Process[] pname = Process.GetProcessesByName("AutoRunVideoWaterMarkingTook"); 
      if (pname.Length == 0) 
      { 
       Result += " | Trying to run Process"; 
       try 
       { 
        Process process = Process.Start(@"~\Debug\AutoRunVideoWaterMarkingTook.exe"); 
        Result += " | Process Ran Successfully"; 
       } 
       catch (Exception ex) 
       { 
        Result += " | Exception While Running the process"; 
        throw new Exception("Unable to start Process); 
       } 
      } 
      else 
      { 
       Result += "|Process Already Running"; 
      } 
     } 
     catch (Exception ex) 
     { 
      Result = "Not Done," + ex.Message; 
     } 
     return Result; 
    } 

Problem, który napotykam, polega na tym, że wywołuję tę metodę z aplikacji Windows Form Tool Application, działa ona pomyślnie i widzę interfejs użytkownika.

, ale kiedy wywołać tę metodę z usługi systemu Windows, proces rozpoczyna się, ale jego interfejs użytkownika jest niewidoczny.

Odpowiedz

1

Jest to najprawdopodobniej spowodowane tym, że usługa Windows nie działa w trybie interaktywnym.

Musisz włączyć to z panelu Usługi, jak opisano w this blog: Sprawdź Allow service to interact with desktop na stronie właściwości usługi Log On.

Przeczytaj również Microsofts recommendations on user interactive services.

+0

Używam systemu Windows 8. Wprowadziłem dwie zmiany. Wprowadził interaktywność na pulpit, wprowadził zmiany w rejestrze i uruchomił ponownie. Po tym wszystkim, że nadal nie jest uruchomiony na tym samym pulpicie, ale monit o okno dialogowe. Pokazywanie tego komunikatu "Program uruchomiony na komputerze próbuje wyświetlić komunikat" Po kliknięciu przycisku Wyświetl wiadomość. przenosi mnie na inny pulpit, na którym działa moje narzędzie. – Charlie

+0

Może to być problem z użytkownikiem. Który użytkownik wykonuje usługę? –