Я предполагаю, что вы хотите, чтобы приложение запускалось, когда пользователь входит в свой профиль? Если вы хотите, чтобы программа автоматически запускалась, в любом другом случае это потребует запланированного задания.
на самом деле, вы также можете просто поместить его в автозагрузку. Я поместил его в автозагрузку в реестре (currentversion => run), и я могу подтвердить, что он работает.
Теперь, чтобы ответить на реальный вопрос ОП, я считаю, что нашел ответ на вопрос -> не обязательно решение для достижения цели.
Приложения QB и QBXML SDK должны запускаться в контексте пользователя.Вам нужно будет открыть сеанс Windows, но пользователю не нужно входить в QB, чтобы ваше приложение работало с ним. Однако QB должен быть открыт администратором при первом подключении вашего приложения, и вы авторизуетесь в автоматическом режиме.
intuit.developer
Планировщик Windows изменился с настольного компьютера на сервисное обслуживание с Vista или Win7 и более поздних версий, и новая ОС имеет Планировщик как сервисное обслуживание.
QuickBooks и QODBC являются настольным приложением / драйвером.
QODBC использует QuickBooks SDK, а QuickBooks SDK использует приложение QuickBooks для получения данных из файла компании.
QuickBooks SDK требует активного сеанса рабочего стола (кто-то вошел в систему) на машину, потому что QuickBooks является настольным приложением. Если никто не вошел на сервер / компьютер, вы получите сообщение об ошибке "Не удалось запустить QuickBooks".
Даже если вы указали имя пользователя / пароль и вошли в систему на компьютере пользователя, вы можете заметить ту же ошибку. Это связано с тем, что задача, выполняемая из планировщика задач, запускается как другой пользователь / новый сеанс.
Обходной путь заключается в использовании настольного планировщика, такого как Z-Cron или http://alternativeto.net/software/task-scheduler/?platform=windows.
источник цитируемого текста
Теперь это может быть не то решение, которое вы хотите. но он отвечает на ваш вопрос / проблему и включает обходной путь.
Я также сталкиваюсь с той же дилеммой и ищу решение. возможно, так и должно быть. Другой вариант - запускать консольное приложение при любом входе пользователя в систему и отслеживать последний успешный запуск, текущее состояние приложения (независимо от того, запущено оно в данный момент или нет) - так вы гарантируете, что запускаете его в соответствии с заданным расписанием. но это не только довольно грязное решение, вы не обязательно гарантируете, что кто-то войдет в систему в течение необходимого вам времени (они могут даже не войти в систему в течение недели).
я попытался запустить удаленный сеанс, который заставляет приложение запускаться с другого сервера с помощью планировщика задач. но это дало мне точно такой же результат.
В настоящее время я изучаю QBWC, чтобы увидеть, позволит ли какой-либо из этих подходов мне достичь желаемой цели общения с QB на запланированной основе автономно.
Я сожалею, что не смог дать вам окончательного решения, но я думаю, что вы и другие можете извлечь пользу из исследований, которые я уже провел до сих пор. Кроме того, я надеюсь, что эта информация поможет вам найти правильное решение.