Как заставить мою программу работать с разными привилегиями при запуске Windows 7? - PullRequest
2 голосов
/ 04 мая 2010

Я пытаюсь добавить программу, запускаемую при запуске Windows 7, но она не работает. Моя программа имеет встроенный манифест UAC.

Мой текущий способ заключается в добавлении строкового значения в HKCU .. \ Run.

Я нашел ручное решение для Vista от http://social.technet.microsoft.com/Forums/en/w7itprosecurity/thread/81c3c1f2-0169-493a-8f87-d300ea708ecf

  1. Нажмите Пуск, щелкните правой кнопкой мыши Компьютер и выберите «Управление».
  2. Нажмите «Планировщик заданий» на левой панели.
  3. Нажмите «Создать задачу» на правой панели.
  4. Введите имя для задачи.
  5. Отметьте «Запускать с наивысшими привилегиями».
  6. Нажмите вкладку Действия.
  7. Нажмите «Новый…».
  8. Найдите программу в окне «Программа / скрипт». Нажмите ОК.
  9. На рабочем столе щелкните правой кнопкой мыши, выберите «Новый» и нажмите «Ярлык».
  10. В поле введите: schtasks.exe / run / tn TaskName, где TaskName - это имя задачи, которую вы вставили на вкладку основы, и нажмите кнопку «Далее».
  11. Введите имя для ярлыка и нажмите Готово.

Кроме того, вам нужно запустить сохраненный ярлык запланированной задачи, чтобы запустить программу, а не запускать ярлык приложения, чтобы игнорировать приглашение IAC. При запуске система запустит программу через оригинальный ярлык. Поэтому вам нужно изменить местоположение для запуска сохраненной задачи. Пожалуйста:

  1. Открыть Regedit.
  2. Найти запись элемента автозагрузки в реестре. Он будет храниться в одной из следующих веток.
    • HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ Run
    • HKEY_USERS.DEFAULT \ Software \ Microsoft \ Windows \ CurrentVersion \ Run
    • HKEY_CURRENT_USER \ Software \ Microsoft \ Windows \ CurrentVersion \ Run
  3. Дважды щелкните правильный ключ, измените путь к сохраненному запланированному заданию, которое вы создали.

Есть ли бесплатный код для добавления элемента с привилегиями в запланированное задание? Я не нашел бесплатную в torry.net.

Большое спасибо.

Ответы [ 4 ]

2 голосов
/ 04 мая 2010

JCL предоставляет интерфейсный модуль Delphi для управления службой расписания задач Microsoft. Его зовут JclTask.pas. Они также предоставляют демонстрационное приложение для добавления / удаления / отображения задач Windows в папке «jcl \ examples \ windows \ tasks».

Кроме того, если с коммерческими компонентами все в порядке, SiComponents предоставляет Агент планирования VCL , который является оболочкой VCL для планировщика задач Windows и поддерживает новый интерфейс, предоставляемый в Windows Vista.

2 голосов
/ 04 мая 2010

Существует COM-компонент под названием TaskScheduler. Некоторая документация находится на http://msdn.microsoft.com/en-us/library/aa384006(v=VS.85).aspx. Пример на C # включен в учебный комплект Windows 7.

1 голос
/ 04 мая 2010

Почему бы просто не добавить свою программу в планировщик задач? См. Параметры командной строки для schtasks.exe в MSDN . Ваша командная строка может выглядеть примерно так:

schtasks.exe / Создать / RU {имя пользователя} / RP {пароль} / SC ONLOGON / TN {имя задачи} / TR {файл для запуска} / RL HIGHEST.

"/ RL HIGHEST" - это то, что позволяет запускать задачу с правами администратора.

0 голосов
/ 04 мая 2010

Вы спрашиваете, как заставить ваше приложение запускаться (запускаться) при запуске Windows 7, или вы спрашиваете, как изменить привилегии ваших приложений при запуске Windows 7?

...