Ema112 Ответов: 1

Как запустить процесс на другой машине в C#?


How to start a process in another machine in c#?

Я пытаюсь запустить процесс печати на другой машине. я даже дал имя пользователя и пароль в той же машине. Я получаю отказ в доступе во время работы в качестве службы.Как работает процесс печати приложения.
private void PrintFile(string sFileName, string sPrinter)
        {
            string sArgs = " /t \"" + sFileName + "\" \"" + sPrinter + "\"";
            System.Diagnostics.ProcessStartInfo startInfo = new ProcessStartInfo();
            startInfo.FileName = System.Configuration.ConfigurationManager.AppSettings["AcrobatExePath"].ToString();  
            startInfo.Arguments = sArgs;
            startInfo.CreateNoWindow = true;
            startInfo.WindowStyle = ProcessWindowStyle.Hidden;
            System.Diagnostics.Process proc = Process.Start(startInfo);
            proc.WaitForExit(60000); // Wait a maximum of 10 sec for the process to finish
            if (!proc.HasExited)
            {
                proc.Kill();
                proc.Dispose();
               
            }
            
        }


Что я уже пробовал:

private void PrintFile(string sFileName, string sPrinter)
{
строка sArgs = "/t \ ""+ sFileName + " \ " \ "" + sPrinter + "\"";
Система.Диагностика.ProcessStartInfo startInfo = новый ProcessStartInfo();
свойство StartInfo.Имя Файла = Система.Конфигурация.Конфигурационный менеджер.AppSettings ["AcrobatExePath"].Метод toString();
свойство StartInfo.Аргументы = sArgs;
свойство StartInfo.CreateNoWindow = true;
свойство StartInfo.WindowStyle = ProcessWindowStyle.Скрытый;
Система.Диагностика.Process proc = процесс.Start (startInfo);
процесс.WaitForExit(60000); / / подождите максимум 10 секунд, пока процесс завершится
если (!тез.Докл.HasExited)
{
тез.Докл.Убить();
тез.Докл.Распоряжаться();

}

}

Tomas Takac

Почему вы думаете, что это должно запустить процесс на удаленном компьютере?

Bernhard Hiller

процесс.WaitForExit(60000); / / подождите максимум 10 секунд, пока процесс завершится
Обожаю такие комментарии!

1 Ответов

Рейтинг:
0

Bernhard Hiller

Вы читали c# - печать путем выполнения процесса в службе Windows - переполнение стека[^]? Служба должна работать не под учетной записью Local Systems, а под другой учетной записью, где доступны принтеры. Вы действительно изменили свойства входа в систему службы?
И вам, возможно, придется использовать другой PDF-ридер вместо Adobe, например Foxit.