1

У меня есть небольшая программа, которую нужно запускать без использования планировщика задач. Он использует API QBFC от Intuit, который требует запуска «в контексте пользователя». Программа извлекает некоторые данные с сервера SQL, работающего на том же компьютере, и помещает их в QuickBooks. Таким образом, программа должна запускаться каждые полчаса или около того и не требует взаимодействия с пользователем. Машина работает под управлением Windows Server 2008 R2.

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

1 ответ1

3

Я предполагаю, что вы хотите, чтобы приложение запускалось, когда пользователь входит в свой профиль? Если вы хотите, чтобы программа автоматически запускалась, в любом другом случае это потребует запланированного задания.

на самом деле, вы также можете просто поместить его в автозагрузку. Я поместил его в автозагрузку в реестре (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 на запланированной основе автономно.

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .