Если ваше приложение должно запускаться как запланированное задание, тогда оно не может иметь пользовательский интерфейс. Как минимум, он действительно должен быть запущен из командной строки.
Наилучшим подходом было бы отделение пользовательского интерфейса от фактической обработки, чтобы при необходимости вы все равно могли запускать его в интерактивном режиме. Это также значительно упростит тестирование вашего приложения.
РЕДАКТИРОВАТЬ: отредактировано для ввода и смысла