Непонятное поведение планировщика заданий Windows - приложение не закрывает подключение к sdk на рабочем столе quickbooks - PullRequest
0 голосов
/ 27 февраля 2019

Кажется, что планировщик задач Windows не запускает приложение так же, как когда я запускаю его из командной строки или из файлового менеджера, хотя я запускаю его под своим логином и с самыми высокими привилегиями.

У меня есть приложение ac # (visual studio 17), которое открывает настольную версию quickbooks версии 19, а затем немедленно закрывает его.

У меня есть командный файл, который я запускаю с вызываемым exe-файлом.Пакетный файл запускает exe только с командой для проверки открытия / закрытия быстрых книг.

Если я запускаю пакетный файл из проводника или из командной строки (как администратор), он работает многократно.Проверяя диспетчер задач, я вижу, что в списке есть Quickbooks.

Если я затем запускаю его из планировщика задач (используя немедленный запуск), он работает в первый раз, а затем в любое другое время не сможет подключиться.Проверяя диспетчер задач, я вижу, что Quickbooks снова все еще открыт.

Если я очищаю quickbooks в диспетчере задач, я могу снова запустить его в планировщике задач, но затем мне придется каждый раз снова очищать его.

Моя задача настроена на использование того же идентификатора пользователя, с которым я вошел в систему на этом компьютере (также там, где у меня запущены быстрые книги) с тем же паролем и настроен на запуск с наивысшим приоритетом.

Так что, если я сделаю эти вещи: очистите это.запустить его из файлового менеджера.(это работает) запустить его из планировщика задач (это не удается) запустить его снова из файлового менеджера (это работает!)

Кажется, что-то в планировщике задач препятствует его закрытию, но я понятия не имею, что.

Если я посмотрю журнал, похоже, что при попытке BeginSession запустить планировщик задач не удается.

sessionManager.OpenConnection("", _UseAppNameToQuickbooks); 
sessionManager.BeginSession(_quickbooksFileLocation, ENOpenMode.omDontCare);

И затем закрываем его:

sessionManager.EndSession();
sessionManager.CloseConnection();

Редактировать: Хорошо, так что я думаю, что это может иметь какое-то отношение к тому, как планировщику задач нравится запускать все в 64-битной среде.Я нашел это: https://social.msdn.microsoft.com/Forums/aspnet/en-US/29446adf-8304-4b9f-bbc4-95daf2941d53/program-runs-fine-but-task-scheduler-wont-run-it?forum=winserver2008appcompatabilityandcertification но, похоже, это не помогло, когда я открыл окно командной строки с ним.

%systemroot%\Syswow64\cmd.exe /C myprogram.exe

Я все еще вижу ту же проблему.

...