Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 05.11.2013, 15:56   #1
Nullerset
Пользователь
 
Регистрация: 01.02.2013
Сообщений: 27
По умолчанию Как программно создать задачу в планировщике задач? ( Для автозапуска с правами админа )

Всем привет. Написал прогу, которая требует прав администратора для работы. Когда я ставлю ее в авторан через HKLM ( думал от туда с правами админа запускает ), то прога запускается под юзером из-за чего вылазит ошибка "бла бла бла не получилось прочитать ProcessorNameString бла бла бла". Нагуглил, что можно через планировщик задач. А вот теперь возник вопрос: Как можно программно это сделать? Если не сложно, приведите функцию.

Заранее спасибо.

P.S. Код софта не могу кинуть, ибо форум выдает ошибку:

Вы ввели слишком длинный текст (470526 символов). Пожалуйста, сократите его до 5000 символов.

Nullerset вне форума Ответить с цитированием
Старый 05.11.2013, 16:07   #2
Luuzuk
Форумчанин
 
Аватар для Luuzuk
 
Регистрация: 18.01.2012
Сообщений: 975
По умолчанию

Может все-таки оформите программу как службу Windows, тогда и костыли в виде планировщика не понадобятся? http://www.delphikingdom.ru/asp/view...catalogid=1348
Благодарить в репутацию. Проклинать — туда же
Luuzuk вне форума Ответить с цитированием
Старый 05.11.2013, 16:16   #3
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,426
По умолчанию

Подумайте над тем, нужны ли права вообще.

Цитата:
P.S. Код софта не могу кинуть, ибо форум выдает ошибку:

Вы ввели слишком длинный текст (470526 символов). Пожалуйста, сократите его до 5000 символов.
Для этого, разрешены вложения.
Человек_Борща вне форума Ответить с цитированием
Старый 05.11.2013, 16:20   #4
Luuzuk
Форумчанин
 
Аватар для Luuzuk
 
Регистрация: 18.01.2012
Сообщений: 975
По умолчанию

Цитата:
Подумайте над тем, нужны ли права вообще.
Ну так для этого-то ТС придется поиском по форуму пользоваться, а зачем оно надо?))

А решение было рядом:
http://programmersforum.ru/showpost....60&postcount=4
Благодарить в репутацию. Проклинать — туда же
Luuzuk вне форума Ответить с цитированием
Старый 05.11.2013, 16:27   #5
Nullerset
Пользователь
 
Регистрация: 01.02.2013
Сообщений: 27
По умолчанию

Цитата:
Сообщение от Человек_Борща Посмотреть сообщение
Подумайте над тем, нужны ли права вообще.
Нужны нужны, мне нужно изменить системный ключ ProcessorNameString

В общем спасибо всем

Цитата:
Сообщение от Luuzuk Посмотреть сообщение
Ну так для этого-то ТС придется поиском по форуму пользоваться, а зачем оно надо?))

А решение было рядом:
http://programmersforum.ru/showpost....60&postcount=4
Вам лишь бы с умничать? Читайте мой пост внимательней, мне не надо всякие "вежливые чтения ключей системных", мне надо запустить программу из под админа.

Последний раз редактировалось Stilet; 05.11.2013 в 17:15.
Nullerset вне форума Ответить с цитированием
Старый 05.11.2013, 16:40   #6
Luuzuk
Форумчанин
 
Аватар для Luuzuk
 
Регистрация: 18.01.2012
Сообщений: 975
По умолчанию

Цитата:
Вам лишь бы с умничать?
А читать вас в школе не учили? Первый же мой ответ дает нормальный путь решения
Благодарить в репутацию. Проклинать — туда же
Luuzuk вне форума Ответить с цитированием
Старый 05.11.2013, 17:37   #7
Nullerset
Пользователь
 
Регистрация: 01.02.2013
Сообщений: 27
По умолчанию

Цитата:
Сообщение от Luuzuk Посмотреть сообщение
А читать вас в школе не учили? Первый же мой ответ дает нормальный путь решения
Сделал, как в статье.

Вот что пишет при запуске службы:

Служба "SysInfoChanger" на "Локальный компьютер" была запущена и затем остановлена. Некоторые службы автоматически останавливаются, если они не используются другими службами или программами.

Как тогда быть?

Код:
unit Unit1;

interface

uses
  Registry, Windows, Messages, SysUtils, Classes, Graphics, Controls, SvcMgr, Dialogs;

type
  TSysInfoChanger = class(TService)
    procedure ServiceStart(Sender: TService; var Started: Boolean);
  private
    { Private declarations }
  public
    function GetServiceController: TServiceController; override;
    { Public declarations }
  end;

var
  SysInfoChanger: TSysInfoChanger;

implementation

{$R *.DFM}

procedure ServiceController(CtrlCode: DWord); stdcall;
begin
  SysInfoChanger.Controller(CtrlCode);
end;

function TSysInfoChanger.GetServiceController: TServiceController;
begin
  Result := ServiceController;
end;

procedure TSysInfoChanger.ServiceStart(Sender: TService;
  var Started: Boolean);
  var
  tmp:array[0..260] of char;
  t:textfile;
  reg:Tregistry;
  Processor:string;
begin
  GetTempPath(sizeof(tmp), tmp);
  AssignFile(t, PChar(TMP+'\ProcessorName.ini'));
  reset(t);
  readln(t, Processor);
  closefile(t);
  reg:=Tregistry.Create;
  reg.RootKey:=HKEY_LOCAL_MACHINE;
  reg.OpenKey('HARDWARE\DESCRIPTION\System\CentralProcessor\0', false);
  reg.WriteString('ProcessorNameString', PChar(Processor));
  reg.CloseKey;
end;

end.

Последний раз редактировалось Nullerset; 05.11.2013 в 17:40. Причина: добавил код
Nullerset вне форума Ответить с цитированием
Старый 05.11.2013, 17:49   #8
Luuzuk
Форумчанин
 
Аватар для Luuzuk
 
Регистрация: 18.01.2012
Сообщений: 975
По умолчанию

А запись в реестре она (служба) поменяла?
Благодарить в репутацию. Проклинать — туда же
Luuzuk вне форума Ответить с цитированием
Старый 05.11.2013, 17:57   #9
Nullerset
Пользователь
 
Регистрация: 01.02.2013
Сообщений: 27
По умолчанию

Цитата:
Сообщение от Luuzuk Посмотреть сообщение
А запись в реестре она (служба) поменяла?
Нет в том то и дело. Она сразу при старте офается с такой ошибкой.

Попробовал добавлять:

while not Terminated do ServiceThread.ProcessRequests(True) ;

в OnExecute не помогло...

Последний раз редактировалось Nullerset; 05.11.2013 в 18:20.
Nullerset вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Автозагрузка с правами админа. vovken1997 Операционные системы общие вопросы 7 02.05.2012 18:46
Запуск URL в браузере по умолчанию с правами админа Greek9000 Общие вопросы .NET 1 15.12.2011 09:50
Как программно создать БД t_e_m_a C/C++ Базы данных 3 13.09.2011 02:45
запись в файл с правами админа allegator333 Общие вопросы Delphi 2 20.06.2011 00:33
Прога с правами админа на Delphi BuT@JL Общие вопросы Delphi 2 27.02.2009 17:42