Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 07.01.2009, 12:31   #1
beygul
Форумчанин
 
Аватар для beygul
 
Регистрация: 15.09.2008
Сообщений: 335
Смущение Программа розыгрыш

Я хочу сделать программу рзырыш - разыграть своего друго, который очень помешан на том, чтобы его компьютер был без вирусов и вообще не глючил... Я хотел бы сам сделать такую программу - которая неопытному пользователю покажется страшнейшим вирусом... Замысел таков: сделать прогу которая после установки - запускается автоматически при запуске WINDOWS... поставить своего рода таймер - который каждые пять минут будет блокировать на две минуты мышь и клавиатуру... или что то в этом роде... Добрые люди програмисты! Помогите с этим делом!!!
beygul вне форума Ответить с цитированием
Старый 07.01.2009, 13:27   #2
kiloz
Пользователь
 
Регистрация: 07.01.2009
Сообщений: 42
По умолчанию

Копирование себя в заданную папку
Код:
procedure CopyMy(PathNew: Strign); //Пример: PathNew = ''
begin
  CopyFile(PChar(ParamStr(0)), PChar(PathNew+ExtractFileName(ParamStr(0))), True);
end;
Помещаем программу в автозапуск:
Код:
uses
  Registry;

procedure ProgAutorun(PathProg: String); //Пример: PathProg = 'C:\Application.exe'
var h: TRegistry;
begin
  h := TRegistry.Create;
  with h do begin
    RootKey := HKEY_LOCAL_MACHINE;
    OpenKey('\Software\Microsoft\Windows\CurrentVersion\Run', true);
    WriteString('MyAutorun, PathProg);
    CloseKey;
    Free;
  end;
end;

Последний раз редактировалось kiloz; 07.01.2009 в 13:29.
kiloz вне форума Ответить с цитированием
Старый 07.01.2009, 13:38   #3
maladoy
delphi-ст!
Форумчанин
 
Аватар для maladoy
 
Регистрация: 02.01.2009
Сообщений: 825
По умолчанию

Включение и выключение клавиатуры
--------------------------------------------------------------------------------





// используемые переменные
var
Dummy: integer = 0;
OldKbHook: HHook = 0;

implementation

function KbHook(code: Integer; wparam: Word; lparam: LongInt): LongInt; stdcall;
begin
if code < 0 then
Result := CallNextHookEx(oldKbHook, code, wparam, lparam)
else
Result := 1;
end;

// включение клавы

procedure TForm1.KeyBoardOn(Sender: TObject);
begin
if OldKbHook <> 0 then
begin
UnHookWindowshookEx(OldKbHook);
OldKbHook := 0;
end;
SystemParametersInfo(SPI_SETFASTTAS KSWITCH, 0, 0, 0);
SystemParametersInfo(SPI_SCREENSAVE RRUNNING, 0, 0, 0);
end;

// выключение клавы

procedure TForm1.KeyBoardOff(Sender: TObject);
begin
SystemParametersInfo(SPI_SETFASTTAS KSWITCH, 1, @Dummy, 0);
SystemParametersInfo(SPI_SCREENSAVE RRUNNING, 1, @Dummy, 0);
OldKbHook := SetWindowsHookEx(WH_KEYBOARD, @KbHook, HInstance, 0);
end;




Некоторые замечания по поводу этих процедур:

Если программу упаковать UPX-ом - клава не будет отключаться (причин не знаю).
В ДОС-окне клава будет работать (FAR, VC и т.п.)
Состояния клавиш NumLock,CapsLock,ScrollLock не отслеживаются и могут быть изменены.
Возможно EnableHardwareKeyboard более эффективен и прост, но я тоже, к сожалению, не знаю, как им пользоваться.
Если вместо WH_KEYBOARD поставить WH_MOUSE, то можно выключать таким образом мышь :-)
взято из делфиворлд
вступлю в команду разработчиков ПО на Delphi
maladoy вне форума Ответить с цитированием
Старый 07.01.2009, 14:09   #4
Terran
Участник клуба
 
Аватар для Terran
 
Регистрация: 28.11.2007
Сообщений: 1,521
По умолчанию

kiloz, ваш вариант конечно хороший, но эта связочка как самокопирование и пропись в автозагрузку будет палиться антивирусами. На счёт всех антивирусов не знаю, но Касперским точно палится.
Цитата:
поставить своего рода таймер - который каждые пять минут будет блокировать на две минуты мышь и клавиатуру...
beygul, гляньте тут: http://programmersforum.ru/showthread.php?t=20216
Там я приводил маленький и эффективный кодеГ по блокировке клавиатуры и мыши.
Всегда рад помочь!
Terran вне форума Ответить с цитированием
Старый 07.01.2009, 14:22   #5
0nni
Форумчанин
 
Аватар для 0nni
 
Регистрация: 24.07.2008
Сообщений: 279
По умолчанию

мышь можно через ClipCursor() красиво "заблокировать"
+ И SetCapture()
Сказал и загрустил от бесспорности своей правоты.
0nni вне форума Ответить с цитированием
Старый 07.01.2009, 14:24   #6
kiloz
Пользователь
 
Регистрация: 07.01.2009
Сообщений: 42
По умолчанию

Цитата:
kiloz, ваш вариант конечно хороший, но эта связочка как самокопирование и пропись в автозагрузку будет палиться антивирусами. На счёт всех антивирусов не знаю, но Касперским точно палится.
Не спорю, но не вирус же пишется...
Если программа шутка, то предполагается, что 'шутник' осуществляет запуск первый запуск на мошине 'жертвы' или на худой конец передает программу, которая не запускается с exe, т.к. лежит не в заданной папке и только копирует себя куда надо и оттуда автозамускком уже работает.
Но вы правы Terran, если есть антивирь нужен другой способ поместиться в автозапуск, похитрее... Или выполнить свои каварные действоя с задержкой, в прочем зачем я объясняю - и так ясно)))
kiloz вне форума Ответить с цитированием
Старый 07.01.2009, 15:20   #7
beygul
Форумчанин
 
Аватар для beygul
 
Регистрация: 15.09.2008
Сообщений: 335
По умолчанию

слушйте! это всё вообще на каком языке прагромирование пишется? а то я только делфи использую...
beygul вне форума Ответить с цитированием
Старый 07.01.2009, 15:21   #8
beygul
Форумчанин
 
Аватар для beygul
 
Регистрация: 15.09.2008
Сообщений: 335
По умолчанию

и кто нить может серьёзно помочь с этой работой? могу заплатить даже... мне просто друга до безумия разыграть охото...
beygul вне форума Ответить с цитированием
Старый 07.01.2009, 15:40   #9
Terran
Участник клуба
 
Аватар для Terran
 
Регистрация: 28.11.2007
Сообщений: 1,521
По умолчанию

Цитата:
слушйте! это всё вообще на каком языке прагромирование пишется? а то я только делфи использую...
Это всё пишется на Delphi. Вполне могу помочь.
Всегда рад помочь!
Terran вне форума Ответить с цитированием
Старый 07.01.2009, 19:41   #10
beygul
Форумчанин
 
Аватар для beygul
 
Регистрация: 15.09.2008
Сообщений: 335
По умолчанию

Terran, А скажи свою аську пожалуйста - поможешь мне? если есть время конечно... а?
beygul вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Программа в С++ Clubber Помощь студентам 8 14.05.2011 15:12
Программа. Asentian Фриланс 14 25.04.2010 17:30
Программа Fartyna3000 Операционные системы общие вопросы 4 07.12.2008 20:36
программа на С++ Raptor Помощь студентам 2 28.04.2008 09:27
Программа ben95 Общие вопросы Delphi 1 04.01.2008 20:52