Я использую System.Diagnostics.Process в сервисном приложении Windows. Приложение, которое я называю, использует DropBox API и Google Drive API. Когда я вхожу в Google Drive или DropBox, он должен открывать веб-браузер и разрешать доступ к Drop или Drive, но он не открывается. Другие функции работают правильно (создайте папку на локальном компьютере, прочитайте файлы, запишите файлы журналов и т. Д. c).
Когда я дважды открываю это приложение вручную, процесс входа в систему работает правильно, отображается веб-браузер и Я могу разрешить доступ.
Нечто подобное происходит с другим приложением, использующим Saraff Twain. Если я открываю его вручную, он работает правильно, я могу сканировать и сохранять файлы (в этом процессе отображаются некоторые предупреждения или окно сообщений, например сообщения «сканирование», «нет бумаги», «нет сканера»), но когда windows служба вызывает его, сообщения не отображаются, оно сканирует и сохраняет файлы, но без сообщений.
Если я вызываю это приложение из другой windows формы или консольного приложения, приложения работают должным образом.
Надеюсь Не знаю, в чем проблема с сервисом Windows.
Спасибо за вашу помощь.
Вот код, который я использовал в сервисном приложении Windows (здесь он не работает) и Windows формирует приложение (здесь работает нормально). Я попытался вызвать CMD.exe и путь к приложению в качестве аргумента, и непосредственно путь к имени файла.
p.StartInfo.UseShellExecute = false;
p.StartInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;
p.StartInfo.RedirectStandardOutput = true;
p.StartInfo.FileName = "cmd.exe";
p.StartInfo.Arguments = "/C" + " \"" + execName+"\" " + argument;
//p.StartInfo.Verb = "runas";
// writeLogLine(argument + " " + execName);
p.Start();
output = p.StandardOutput.ReadToEnd();
p.WaitForExit();
writeLogLine("out" + output);