Форум по Delphi программированию

 



Вернуться   Форум по Delphi программированию > Разное > Исходники и статьи
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 22.08.2009, 15:10
Midmal Midmal вне форума
Прохожий
 
Регистрация: 22.08.2009
Сообщения: 41
Репутация: 10
По умолчанию RunAsSystem

Я скачал у вас из раздела исходники исходный код программы "RunAsSystem". Программа запускает другие программы от имяни "System", но вот у меня есть вопрос касающийся данной программы. А как можно реализовать тот же запуск от имени "System" при открытии моей программы, в общем я хочу что бы моя программа при автозапуске запускалась от имени "System", у кого какие идеи имеются по данному вопросу, пишите.
P.S: А-а-а, в общем помогите ночевку кто чем может.
Ответить с цитированием
  #2  
Старый 22.08.2009, 23:21
Аватар для mak-karpov
mak-karpov mak-karpov вне форума
Активный
 
Регистрация: 18.09.2008
Сообщения: 235
Версия Delphi: 2010 и 7
Репутация: 1242
По умолчанию

Зачем тебе запуск от имени System? Вирус пишешь?
__________________
Кнопка "+" - весы в правом верхнем углу сообщения...
Ответить с цитированием
  #3  
Старый 23.08.2009, 13:38
Midmal Midmal вне форума
Прохожий
 
Регистрация: 22.08.2009
Сообщения: 41
Репутация: 10
По умолчанию

Ха-ха-ха, скорее на оборот. Я студен "СГА" и мне необходимо написать программу "Счетчик посещений того или иного компьютера", а что бы моё приложение не выключили хитрые люди, мне нужно что бы оно запускалось вот таким вот способом, так как большинство знает что завершение "системных процессов" может пагубно повеять на работу "операционной системы".
Я уже экспериментировал с авто запуском, но получал не совсем желаемые результаты... После компиляции, а затем запуска первая копия программы начинает запускать постоянные свои копии. Можно конечно поставить ограничитель, но я должен ограничится искомыми размерами программы. Иначе прощай "Зачёт"...
Код:
procedure TForm1.FormCreate(Sender: TObject);
begin
  Form1.Caption := Application.ExeName;
end;

procedure TForm1.FormShow(Sender: TObject);
begin
  RunAsSystem(Form1.Caption);
end;
Admin: Пользуемся тегами!

Кото согласен помочь помогите, буду премного благодарен!

Последний раз редактировалось Admin, 23.08.2009 в 19:15.
Ответить с цитированием
  #4  
Старый 23.08.2009, 14:13
Аватар для mak-karpov
mak-karpov mak-karpov вне форума
Активный
 
Регистрация: 18.09.2008
Сообщения: 235
Версия Delphi: 2010 и 7
Репутация: 1242
По умолчанию

Есть два варианта. Либо ставить какой-либо флажок, что приложение уже запущено, либо создавать два exe-файла, первый запускает второй от системы и закроется. А чтобы процесс нельзя было завершить можно скачать исходник с этого же сайта
__________________
Кнопка "+" - весы в правом верхнем углу сообщения...
Ответить с цитированием
  #5  
Старый 23.08.2009, 15:49
Аватар для AmX
AmX AmX вне форума
Прохожий
 
Регистрация: 25.04.2008
Адрес: Вологда
Сообщения: 27
Репутация: 10
Стрелка

Предложу следующее решение..
Создаётся библиотека с точкой входа по RunDll32.exe, которая и запускает файл по пути, находящемся в параметрах к загрузке Dll ..
строка для запуска блокнота данным методом будет выглядеть так:
Цитата:
RunDll32.exe msRAS.dll,msRunAsSystem notepad.exe
где msRAS.dll - либа, лежащая в папке C:\WINDOWS\.. и выполняющая функции по загрузке процесса от имени системы, msRunAsSystem - точка входа в библиотеку msRAS.dll, а notepad.exe - параметр-путь к файлу для запуска..
Т.к. через "Выполнить" у мя это не выполняется, предлагается создать ярлык на
Цитата:
RunDll32.exe msRAS.dll,msRunAsSystem notepad.exe
который, в свою очередь, можна добавить в автозагрузку..
этот способ удобен тем, что он универсален и с его помощью можно запускать разные приложения от имени системы без переписывания кода..
если памог, не пожалейте +'ик в репу
получившееся у меня:
1) SendSpace.com: http://www.sendspace.com/file/3ntf1j
2) Depositfiles.com: http://depositfiles.com/files/di2w5yrep
__________________
Никакая цель не высока настолько, чтобы оправдывала недостойные средства для ее достижения.
Невозможно решить проблему на том же уровне, на котором она возникла. Нужно стать выше этой проблемы, поднявшись на следующий уровень.
(Альберт Энштеин)

Существует три разновидности людей: те, кто видит; те, кто видит, когда им показывают; и те, кто не видит.
Оскорбляя другого, ты не заботишься о самом себе.
(Леонардо да Винчи)

Моя политика проста - пашло всё н#куй.
(Краснодеревщик М.)

+++
Ответить с цитированием
  #6  
Старый 25.11.2009, 14:08
Midmal Midmal вне форума
Прохожий
 
Регистрация: 22.08.2009
Сообщения: 41
Репутация: 10
По умолчанию

Всем спасибо понял сам.... =)

Последний раз редактировалось Midmal, 27.11.2009 в 13:22.
Ответить с цитированием
Ответ



Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 09:40.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources", 2004-2020

ВКонтакте   Facebook   Twitter