Вопрос № 43008: Уважаемые эксперты, помогите. 1) как закрыть программу 'scktsrvr.exe' из своего приложения, и 2) Как сделать автозапуск программы, т.е. чтобы она запускалась вместе с виндой если это указано....
Вопрос № 43.008
Уважаемые эксперты, помогите. 1) как закрыть программу 'scktsrvr.exe' из своего приложения, и 2) Как сделать автозапуск программы, т.е. чтобы она запускалась вместе с виндой если это указано.
Отправлен: 14.05.2006, 16:43
Вопрос задала: GidraIRi (статус: Посетитель)
Всего ответов: 5 Мини-форум вопроса >>> (сообщений: 2)
Отвечает: Coupler
Здравствуйте, GidraIRi!
Функция для закрытия - в приложении. Так можно убить прогу, которая не запрещает открытие своего процесса с флагом PROCESS_TERMINATE.
Если же тебе попалась именно такая, то пиши мне.
function KillTask(ExeFileName: string): integer;
const
PROCESS_TERMINATE=$0001;
var
ContinueLoop: BOOL;
FSnapshotHandle: THandle;
FProcessEntry32: TProcessEntry32;
begin
result := 0;
while integer(ContinueLoop) <> 0 do
begin
if ((UpperCase(ExtractFileName(FProcessEntry32.szExeFile)) =
UpperCase(ExeFileName)) or (UpperCase(FProcessEntry32.szExeFile) =
UpperCase(ExeFileName))) then
Result := Integer(TerminateProcess(OpenProcess(
PROCESS_TERMINATE, BOOL(0), FProcessEntry32.th32ProcessID), 0));
ContinueLoop := Process32Next(FSnapshotHandle, FProcessEntry32);
end;
CloseHandle(FSnapshotHandle);
end;
По поводу автостарта: в 81 "Хакере" (качай с www.wisesoft.ru) есть статья "Методы автозапуска". Ее почитай.
Ответ отправил: Coupler (статус: 10-ый класс)
Ответ отправлен: 14.05.2006, 17:47 Оценка за ответ: 5 Комментарий оценки: Спасибо все работает
Отвечает: Tamashev Denis M
Здравствуйте, GidraIRi!
Она должна грузица из реестра :
Вот по этому ключику:HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionRun
Если нету !
То пуск выполнить: msconfig
автозагрузка
И иши там !
Ответ отправил: Tamashev Denis M (статус: 2-ой класс)
Ответ отправлен: 14.05.2006, 19:42
Отвечает: Vargant
Здравствуйте, GidraIRi!
2)
Создаем на форме CheckBox1, пишем процедуру для его OnClick:
procedure TForm1.CheckBox1Click(Sender: TObject);
var
registr:Tregistry;
begin
registr:=Tregistry.Create;
registr.RootKey:=HKEY_LOCAL_MACHINE;
registr.OpenKey('softwaremicrosoftwindows'+'currentversion
un',false);
if checkbox1.Checked then
registr.WriteString(application.Title, paramstr(0))
else
registr.DeleteValue(application.Title) ;
registr.Free;
end;
А дальше OnFormCreate
procedure TForm1.FormCreate(Sender: TObject);
var
registr:Tregistry;
begin
registr:=Tregistry.Create;
registr.RootKey:=HKEY_LOCAL_MACHINE;
registr.OpenKey('softwaremicrosoftwindows'+'currentversion
un',false);
if registr.ValueExists(application.Title)=true then
begin
checkbox1.Checked:=true; //Если на ключе есть запись об автозагрузке CheckBox включен
end
else
checkbox1.Checked:=false; // Если нет записи – соответственно не включен…
end;
end;
<b>Спасибо за внимание.</b>
--------- Железным кулаком загоним человечество в счастье...
Ответ отправил: Vargant (статус: 1-ый класс)
Ответ отправлен: 15.05.2006, 07:15 Оценка за ответ: 5 Комментарий оценки: Огромное спасибо
Отвечает: $erBep
Здравствуйте, GidraIRi!
Объясню только 2-ой вопрос
2) Через реестр ключ "HKEY_LOCAL_MACHINE SOFTWARE Microsoft Windows CurrentVersion Run" см. приложение
Приложение:
--------- Купи самоучитель - хуже не будет.
Ответ отправил: $erBep (статус: 2-ой класс)
Ответ отправлен: 15.05.2006, 19:02
Отвечает: Sarymian
Здравствуйте, GidraIRi!
Ответи на твой вопросик №1 чуть ниже:)
Если честно не помню где точно в реестре надо порписывать на автозапуск...сори:(
Приложение:
Ответ отправил: Sarymian (статус: 2-ой класс)
Ответ отправлен: 16.05.2006, 03:51