Модераторы: Poseidon, Snowy, bems, MetalFan

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Подмена ресурсов, UpdateResource для всех версий Windows 
:(
    Опции темы
Alex
Дата 9.4.2004, 21:44 (ссылка)  | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 4147
Регистрация: 25.3.2002
Где: Москва

Репутация: 80
Всего: 162



 Для общего пользования выкладывается модуль работы с ресурсами в PE файлах, который корректно работает во всех версиях Windows. За основу был взят модуль работы с ресурсами компании Mathias Rauen, http://www.madshi.net.

Возможности:
1. Извлечение иконок из ресурсов без потери их цветовой гаммы и с сохранением всех вложенных иконок.
2. Добавление нового ресурса
3. Изменение существующего ресурса
4. Удаление ресурса
5. Работа с ресурсами различных языков
и т. д.

Работа над модулем будет продолжена. Свежую версию, вы всегда можете скачать по адресу http://alex-co.org/files/delphi/acWorkRes.rar 

Это сообщение отредактировал(а) Alex - 17.2.2007, 09:17


--------------------
Написать можно все - главное четко представлять, что ты хочешь получить в конце. 
PM Skype   Вверх
p0s0l
Дата 11.4.2004, 15:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Г-н Посол
****


Профиль
Группа: Экс. модератор
Сообщений: 3668
Регистрация: 13.7.2003
Где: 58°38' с.ш. 4 9°41' в.д.

Репутация: 58
Всего: 112



Через пару дней этот топик скатится вниз и уйдёт в небытие. Кто-то предлагал идею сделать типа архива исходников или что-то в этом роде. Но заглохло пока. Если ещё пару человек выложат какие-нибудь модули или исходники, можно будет создать отедельную тему и её закрепить, а там оставлять ссылки на сами темы, чтобы не было "месива"...




--------------------
С уважением, г-н Посол.
PM   Вверх
Alex
Дата 11.4.2004, 17:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 4147
Регистрация: 25.3.2002
Где: Москва

Репутация: 80
Всего: 162



Могу стать Модератор нового раздела


--------------------
Написать можно все - главное четко представлять, что ты хочешь получить в конце. 
PM Skype   Вверх
bartram
  Дата 11.4.2004, 17:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Комодератор
Сообщений: 1606
Регистрация: 22.2.2004
Где: Russia, Samara

Репутация: 3
Всего: 29



alex-co, скинь примерчик работы с модулем please, очень надо !!! exclamation.gif exclamation.gif exclamation.gif

Это сообщение отредактировал(а) bartram - 11.4.2004, 17:29


--------------------
В каждом из нас спит гений, но с каждым днем все крепче ;-)
bartram.ru
Twitter
user posted image 

PM MAIL ICQ   Вверх
RA
Дата 11.4.2004, 17:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Брутальный буратина
****


Профиль
Группа: Участник Клуба
Сообщений: 3497
Регистрация: 31.3.2002
Где: Лес

Репутация: 14
Всего: 115



Цитата(p0s0l @ 11.4.2004, 12:05)
Через пару дней этот топик скатится вниз и уйдёт в небытие. Кто-то предлагал идею сделать типа архива исходников или что-то в этом роде. Но заглохло пока. Если ещё пару человек выложат какие-нибудь модули или исходники, можно будет создать отедельную тему и её закрепить, а там оставлять ссылки на сами темы, чтобы не было "месива"...

p0s0l Ты главное пробей эту тему, а там народ сам потянется исходники выкладывать, лично я уже давно мечтаю выложить несколько исходнико о каторых наверняка многие мечтают (судя по топикам форума).
PM   Вверх
Alex
Дата 11.4.2004, 17:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 4147
Регистрация: 25.3.2002
Где: Москва

Репутация: 80
Всего: 162



Цитата(bartram @ 11.4.2004, 18:28)
alex-co, скинь примерчик работы с модулем please, очень надо !!! exclamation.gif  exclamation.gif  exclamation.gif

А с каким именно ресурсом нужен пример работы?

Это сообщение отредактировал(а) alex-co - 11.4.2004, 17:37


--------------------
Написать можно все - главное четко представлять, что ты хочешь получить в конце. 
PM Skype   Вверх
bartram
Дата 11.4.2004, 17:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Комодератор
Сообщений: 1606
Регистрация: 22.2.2004
Где: Russia, Samara

Репутация: 3
Всего: 29



Цитата
А с каким именно рессурсом нужен пример работы


С ресурсом типа string, bitmap !!!



--------------------
В каждом из нас спит гений, но с каждым днем все крепче ;-)
bartram.ru
Twitter
user posted image 

PM MAIL ICQ   Вверх
Alex
Дата 11.4.2004, 18:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 4147
Регистрация: 25.3.2002
Где: Москва

Репутация: 80
Всего: 162



Цитата(bartram @ 11.4.2004, 18:37)
Цитата
А с каким именно рессурсом нужен пример работы


С ресурсом типа string, bitmap !!!

Со строками пока сам не разобрался, а с Bitmap все просто. Если хочешь с заданием языка, то так:
Код
var
 hUpdateRes: THandle;
begin
 hUpdateRes:= BeginUpdateResourceW('Путь к файлу', FALSE);
 if not LoadBitmapResourceW(hUpdateRes, 'Имя ресурса', 1049,'e:\Temp\123.bmp') then
   showMessage('');
 EndUpdateResourceW(hUpdateRes, FALSE);

Без указания языка:
Код
var
 hUpdateRes: THandle;
begin
 hUpdateRes:= BeginUpdateResourceW('Путь к файлу', FALSE);
 notLang:= True;
 try
   if not LoadBitmapResourceW(hUpdateRes, 'Имя ресурса', 0,'e:\Temp\123.bmp') then
     showMessage('');
 finally
   notLang:= False;
 end;
 EndUpdateResourceW(hUpdateRes, FALSE);

Добавлено @ 18:25
У кого есть пример подмены строковых ресурсов с помощью стандартной функции UpdateResource просьба сообщить. Есть пример на С но моих знаний С не достаточно чтобы в нем разобраться может кто поможет.

Это сообщение отредактировал(а) alex-co - 11.4.2004, 18:29


--------------------
Написать можно все - главное четко представлять, что ты хочешь получить в конце. 
PM Skype   Вверх
Alex
Дата 11.4.2004, 18:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 4147
Регистрация: 25.3.2002
Где: Москва

Репутация: 80
Всего: 162



Вот и сам пример на С

Это сообщение отредактировал(а) alex-co - 11.4.2004, 18:42

Присоединённый файл ( Кол-во скачиваний: 68 )
Присоединённый файл  Stablupd.exe


--------------------
Написать можно все - главное четко представлять, что ты хочешь получить в конце. 
PM Skype   Вверх
bartram
Дата 11.4.2004, 20:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Комодератор
Сообщений: 1606
Регистрация: 22.2.2004
Где: Russia, Samara

Репутация: 3
Всего: 29



alex-co, у меня есть прога которая конвертирует из Си в Pas через пару дней выложу может поможет !!



--------------------
В каждом из нас спит гений, но с каждым днем все крепче ;-)
bartram.ru
Twitter
user posted image 

PM MAIL ICQ   Вверх
Alex
Дата 18.4.2004, 00:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 4147
Регистрация: 25.3.2002
Где: Москва

Репутация: 80
Всего: 162



Обновление:
-Добавлена функция "StringToPWide" - Преобразование String в PWideChar
- Исправлена ошибка в функция "GetNameIcon"
- Добавлена функция "SaveIconToDiscW" - Сохранение иконки

Адрес загрузки старый


--------------------
Написать можно все - главное четко представлять, что ты хочешь получить в конце. 
PM Skype   Вверх
Alex
Дата 17.7.2004, 18:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 4147
Регистрация: 25.3.2002
Где: Москва

Репутация: 80
Всего: 162



Обновление:
- Добавлена функция "PWideToString" - Преобразование PWideChar в String.
- Исправлена ошибка в функция "SaveIconToDiscW", которая возникала на некоторых системах семейства Win9x.

Адрес загрузки старый

Это сообщение отредактировал(а) Alex - 26.11.2004, 21:03


--------------------
Написать можно все - главное четко представлять, что ты хочешь получить в конце. 
PM Skype   Вверх
Ilya26
Дата 20.7.2004, 11:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 20.7.2004

Репутация: нет
Всего: нет



alex-co, можешь привести пример работы с jpg ресурсами а также с rtf файлами.
Очень, очень надо !!!

Заранее спасибо.
Добавлено @ 11:26
alex-co, можешь привести пример работы с jpg ресурсами а также с rtf файлами.
Очень, очень надо !!!

Заранее спасибо.
PM MAIL   Вверх
Alex
Дата 20.7.2004, 11:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 4147
Регистрация: 25.3.2002
Где: Москва

Репутация: 80
Всего: 162



Что именно вам нужно запись, чтение или что-то еще?


--------------------
Написать можно все - главное четко представлять, что ты хочешь получить в конце. 
PM Skype   Вверх
SlaUr
Дата 20.7.2004, 14:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 408
Регистрация: 18.9.2003

Репутация: 3
Всего: 5



Цитата
Через пару дней этот топик скатится вниз и уйдёт в небытие. Кто-то предлагал идею сделать типа архива исходников или что-то в этом роде. Но заглохло пока.


Вроде бы ведь сделали общий топик "арсенал форумистов" :
http://forum.vingrad.ru/index.php?showtopic=21411

Почему бы не выложить туда?


p.s. У меня лично этот топик показывается в разделе "Важные темы"

Это сообщение отредактировал(а) SlaUr - 20.7.2004, 14:29
PM MAIL   Вверх
Alex
Дата 20.7.2004, 14:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 4147
Регистрация: 25.3.2002
Где: Москва

Репутация: 80
Всего: 162



Цитата(SlaUr @ 20.7.2004, 15:28)
Цитата
Через пару дней этот топик скатится вниз и уйдёт в небытие. Кто-то предлагал идею сделать типа архива исходников или что-то в этом роде. Но заглохло пока.


Вроде бы ведь сделали общий топик "арсенал форумистов" :
http://forum.vingrad.ru/index.php?showtopic=21411

Почему бы не выложить туда?


p.s. У меня лично этот топик показывается в разделе "Важные темы"

Да если ты внимательно почитаешь, арсенал форума то увидишь, что этот топик там самый первый.


--------------------
Написать можно все - главное четко представлять, что ты хочешь получить в конце. 
PM Skype   Вверх
Ilya26
Дата 21.7.2004, 16:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 20.7.2004

Репутация: нет
Всего: нет



alex-co, Желательно бы и запись, и чтение.
(запись в другой exe-файл)
PM MAIL   Вверх
Alex
Дата 21.7.2004, 21:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 4147
Регистрация: 25.3.2002
Где: Москва

Репутация: 80
Всего: 162



Обновление:
- Добавлена функция "LoadFileResourceW" - Функция записи файла в ресурсы.
- Добавлена функция "LoadFileResource" - Функция записи файла в ресурсы без задания языка.
- Добавлена функция "SaveFileResourceW" - Функция извлечение файла из ресурсов.
- Добавлена функция "SaveFileResource" - Функция извлечение файла из ресурсов без задания языка.
- Добавлена функция "SaveFileToDiscW" - Сохранение ресурса ввиде файла на диск.
- Добавлена функция "LoadFileToResourceW" - Сохранение ресурса в виде файла на диск.

Адрес загрузки старый

Это сообщение отредактировал(а) Alex - 26.11.2004, 21:01


--------------------
Написать можно все - главное четко представлять, что ты хочешь получить в конце. 
PM Skype   Вверх
Alex
Дата 21.7.2004, 22:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 4147
Регистрация: 25.3.2002
Где: Москва

Репутация: 80
Всего: 162



Ilya26 Значит так, для добавления файла в ресурс воспользуйся функцией:
Код
function LoadFileToResourceW(exeFile, type_, name, aFile: PWideChar): BOOL; stdcall;
// Сохранение ресурса в виде файла на диск
// exeFile - Путь к файлу, в ресурсы которого загружается файл файл
// type_   - Тип ресурса (Большими буквами)
// name    - Имя ресурса (Большими буквами)
// aFile   - Путь к файлу, который будет грузиться в ресурс
// LoadFileToResourceW('e:\Temp\Project1.exe', 'JPEG', 'MYJPEG', 'e:\Temp\Untitled-21.jpg')

Для сохранения файла на диск воспользуйся функцией:
Код
function SaveFileToDiscW(exeFile, type_, name, aFile: PWideChar): BOOL; stdcall;
// Сохранение ресурса ввиде файла на диск
// exeFile - Путь к файлу, в котором находиться файл
// type_   - Тип ресурса (Большими буквами)
// name    - Имя ресурса (Большими буквами)
// aFile   - Путь к файлу для сохранения ресурса
// Пример использования:
// SaveFileToDiscW('e:\Temp\Project1.exe', 'JPEG', 'MYJPEG', 'e:\Temp\Untitled-21.jpg')


Для загрузки Jpg файла в Image сделай
Код
procedure LoadJPEGFromRes(Exe, JPEG: string; ThePicture: TPicture);
var
 hExe     : Cardinal;
 Stream: TResourceStream;
 JPEGImage: TJPEGImage;
begin
 hExe:= LoadLibrary(PChar(Exe));
 Stream:= TResourceStream.Create(hExe, JPEG,'JPG');
 JPEGImage:= TJPEGImage.Create;
 try
   JPEGImage.LoadFromStream(MemStream);
   ThePicture.Assign(JPEGImage);
 finally
   JPEGImage.Free;
   Stream.Free;
 end;
end;

Если тебе нужно загрузить из самого себя, то напиши
Код
LoadJPEGFromRes(ParamStr(0), 'MYJPEG', Image1.Picture);

Если тебе нужно загрузить из другого файла
Код
LoadJPEGFromRes('Путь к файлу', 'MYJPEG', Image1.Picture);


Для загрузки Rtf
Код
function LoadRTFFromRes(Exe, RTF: string): AnsiString;
var
 hExe     : Cardinal;
 Stream: TResourceStream;
begin
 hExe:= LoadLibrary(PChar(Exe));
 Stream:= TResourceStream.Create(hExe, RTF, 'RTF');
 try
   SetLength(Result, Stream.Size);
   Stream.Read(Result[1], Length(Result));
 finally
   Stream.Free;
 end;
end;


Это сообщение отредактировал(а) Alex - 26.11.2004, 18:18


--------------------
Написать можно все - главное четко представлять, что ты хочешь получить в конце. 
PM Skype   Вверх
Anderson
Дата 31.8.2004, 18:56 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Подключаю модуль, а у меня выходи ошибка: "Не найден файл acWorkRes.dcu" Где его достать-то?
  Вверх
Alex
Дата 31.8.2004, 22:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 4147
Регистрация: 25.3.2002
Где: Москва

Репутация: 80
Всего: 162



Цитата(Anderson @ 31.8.2004, 19:56)
Подключаю модуль, а у меня выходи ошибка: "Не найден файл acWorkRes.dcu" Где его достать-то?

Читаем самое первое сообщение в этой теме


--------------------
Написать можно все - главное четко представлять, что ты хочешь получить в конце. 
PM Skype   Вверх
Alex
Дата 26.11.2004, 21:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 4147
Регистрация: 25.3.2002
Где: Москва

Репутация: 80
Всего: 162



 Обновление:
- Были сделаны все изменения, которые сделал разработчик madRes в версии 1.0h.

Адрес загрузки старый  

Это сообщение отредактировал(а) Alex - 17.2.2007, 09:18


--------------------
Написать можно все - главное четко представлять, что ты хочешь получить в конце. 
PM Skype   Вверх
Budy
Дата 3.7.2005, 15:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 616
Регистрация: 6.2.2004
Где: Екатеринбург

Репутация: 1
Всего: 2



Alex, рулишь, чувак!
Пользуюсь твоей процей LoadFileToResourceW, а вот объясни как теперь удалить лишние... smile


--------------------
Как ты назовешь свой корабль, так на нем и напишут
user posted image
PM MAIL WWW ICQ   Вверх
Alex
Дата 3.7.2005, 19:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 4147
Регистрация: 25.3.2002
Где: Москва

Репутация: 80
Всего: 162



Цитата(Budy @ 3.7.2005, 16:16)
Alex, рулишь, чувак!
Пользуюсь твоей процей LoadFileToResourceW, а вот объясни как теперь удалить лишние...

Если без понтов и четко объяснишь, что тебе нужно, то может и помогу...


--------------------
Написать можно все - главное четко представлять, что ты хочешь получить в конце. 
PM Skype   Вверх
Budy
Дата 4.7.2005, 06:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 616
Регистрация: 6.2.2004
Где: Екатеринбург

Репутация: 1
Всего: 2



Alex, да какие понты, просто настроение было норм.
Короче, спасибо тебе за столь удобный в использовании модуль, вот.
Дело вот в чем: допустим в ресурсе (.exe) уже имеется какой-нить файл-ресурс, и мне его надо удалить.
И еще вопрос, как можно узнать весь список файлов-ресурсов в ресурсе.
ЗЫ.Ну каламбур, ресурс в ресурсе smile


--------------------
Как ты назовешь свой корабль, так на нем и напишут
user posted image
PM MAIL WWW ICQ   Вверх
Alex
Дата 4.7.2005, 12:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 4147
Регистрация: 25.3.2002
Где: Москва

Репутация: 80
Всего: 162



Писал на вскидку, без проверки:

Код
function DeleteResourceW(exeFile, type_, name: PWideChar; language: word): BOOL; stdcall;
// Eдаление ресурса
// exeFile - Путь к файлу, из ресурсов которого удаляется файл
// type_   - Тип ресурса (Большими буквами)
// name    - Имя ресурса (Большими буквами)
var
  hUpdateRes: THandle;
begin
  Result:= False;
  hUpdateRes:= BeginUpdateResourceW(exeFile, False);
  if hUpdateRes <> 0 then if UpdateResourceW(hUpdateRes, type_, name, language, nil, nil) then
    Result:= EndUpdateResourceW(hUpdateRes, False);
end;


Смысл в том, что если функции UpdateResourceW указать нулевой размер данных, то ресурс удаляется


--------------------
Написать можно все - главное четко представлять, что ты хочешь получить в конце. 
PM Skype   Вверх
Budy
Дата 6.7.2005, 06:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 616
Регистрация: 6.2.2004
Где: Екатеринбург

Репутация: 1
Всего: 2



Alex, сэнк. Ну вот пора бы и обновить версию smile


--------------------
Как ты назовешь свой корабль, так на нем и напишут
user posted image
PM MAIL WWW ICQ   Вверх
Budy
Дата 11.8.2005, 19:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 616
Регистрация: 6.2.2004
Где: Екатеринбург

Репутация: 1
Всего: 2



А как узнать весь список всех ресурсов в файле?


--------------------
Как ты назовешь свой корабль, так на нем и напишут
user posted image
PM MAIL WWW ICQ   Вверх
Kondragor
Дата 14.9.2005, 22:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 1.11.2004

Репутация: нет
Всего: нет



У меня почему-то перестал работать модуль. Просто ни с того, ни с сего взял и перестал. Когда это произошло не знаю так как заметил не сразу, поэтому и сказать из-за чего это произошло не могу. Переставлял Delphi7, пробовал с чистой, без других компонентов, Delphi в чистом проекте все равно не работает. Просил друга - у него все пашет. Что и делать не знаю - пользовался одной единственной функцией SaveIconToDiscW, но она очень нужна для программы. Возможно кто-нибудь знает из-за чего это может происходить или хотя бы подскажите плиз альтернативный способ извлечения иконки из exe,dll и сохранение ее на диск, хотя бы 16*16 но не меньше 32bit?
PM MAIL   Вверх
Alex
Дата 14.9.2005, 23:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 4147
Регистрация: 25.3.2002
Где: Москва

Репутация: 80
Всего: 162



Подготовь демо проект, в который включи exe или dll, из которого ты пытаешься вытащить ресурс.


--------------------
Написать можно все - главное четко представлять, что ты хочешь получить в конце. 
PM Skype   Вверх
Kondragor
Дата 14.9.2005, 23:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 1.11.2004

Репутация: нет
Всего: нет



Прошу test.rar
PM MAIL   Вверх
Alex
Дата 14.9.2005, 23:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 4147
Регистрация: 25.3.2002
Где: Москва

Репутация: 80
Всего: 162



Не компилируя тестовый проект, запустил его и у меня все спокойно достали.


--------------------
Написать можно все - главное четко представлять, что ты хочешь получить в конце. 
PM Skype   Вверх
SergeBS
Дата 15.9.2005, 10:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1111
Регистрация: 10.6.2005
Где: Владимир

Репутация: 2
Всего: 22



Kondragor
Resource Hacker
Из exe/dll - иконки выдирает. редактировать и т.п. - не пробовал.
Сходи еще на download.ru - там наверняка тоже есть такое.
Добавлено @ 11:02
Kondragor
Вдогонку
Resource Hacker 3.4.0.79 - 24.03.2002 - в архиве rar - 450 K. НО быстро выслать не обещаю - отпуск, однако.

PM MAIL   Вверх
Alex
Дата 15.9.2005, 17:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 4147
Регистрация: 25.3.2002
Где: Москва

Репутация: 80
Всего: 162



SergeBS, а немного тему почитать и понять, что человеку это программно нужно сделать...


--------------------
Написать можно все - главное четко представлять, что ты хочешь получить в конце. 
PM Skype   Вверх
Guest
Дата 7.10.2005, 05:14 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Хочу кое что заметить. Во-первых, Alex, измени код правильно, ошибка кода в топике
Код
function DeleteResourceW(exeFile, type_, name: PWideChar; language: word): BOOL; stdcall;    
// Eдаление ресурса    
// exeFile - Путь к файлу, из ресурсов которого удаляется файл    
// type_   - Тип ресурса (Большими буквами)    
// name    - Имя ресурса (Большими буквами)    
var    
  hUpdateRes: THandle;    
begin    
  Result:= False;    
  hUpdateRes:= BeginUpdateResourceW(exeFile, False);    
  if hUpdateRes <> 0 then if UpdateResourceW(hUpdateRes, type_, name, language, nil, [color=red]nil[/color]) then    
    Result:= EndUpdateResourceW(hUpdateRes, False);    
end;

Во-вторых, обнови уже свой файл в инете, а то вот классную функцию дописал, а в модель не добавил smile
Ну и в-третьих: может все же кто-нить подскажет как узнать список всех ресурсов в файле?
  Вверх
Alex
Дата 7.10.2005, 07:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 4147
Регистрация: 25.3.2002
Где: Москва

Репутация: 80
Всего: 162



как только будет время займусь. если очень не терпится, кто мешает сделать вам это самостоятельно?


--------------------
Написать можно все - главное четко представлять, что ты хочешь получить в конце. 
PM Skype   Вверх
mefik
Дата 1.12.2005, 16:50 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











А как стандартный тип ресурса использовать?
Например RT_VERSION

Пробовал StringToPWide(RT_VERSION)
нифига не получается....

Код

    hRes := BeginUpdateResourceW('temp.exe', False);
    GetResourceW(hRes, StringToPWide(RT_VERSION), '1', 1049, P, C);
    if P <> nil then ShowMessage(PWideToString(PWideChar(P))) else ShowMessage('error');
    EndUpdateResourceW(hRes, True);


Стандартной функцией VerQueryValue получается, но мне надо после считывания, еще изменить пару строчек.
просто VS_VERSION_INFO блок, единственный, который upx не упаковывается...
  Вверх
allx
Дата 19.4.2006, 00:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 73
Регистрация: 1.9.2005

Репутация: нет
Всего: нет



Alex
Расскажите плиз как достать и изменить ну например строку в екзешнике используя данный модуль... код следующий:

Код

procedure TForm1.FormShow(Sender: TObject);
var
  fn: string;
  hUpdateRes: THandle;
  buffer: array[0..4097] of byte;
  pbuffer: pointer;
  bufsize:Cardinal;
  pw: pwidechar;
begin
  OpenDialog1.InitialDir:=ExtractFilePath(Application.ExeName);
  if OpenDialog1.Execute then begin
     if FileExists(OpenDialog1.FileName) then begin
        fn:=OpenDialog1.FileName;
        hUpdateRes:= BeginUpdateResourceW(StringToPWide(fn), FALSE);
        GetResourceW(hUpdateRes, PWideChar(RT_STRING),'65', $0409, pbuffer, bufsize);
        EndUpdateResourceW(hUpdateRes, FALSE);
     end;
  end;
end;


Ссылку на буффер функция не возвращает, размер тоже.  Я вот еще не уверен, что за Name, третьий параметр GetResourceW(). Я правильно полагаю что это имя ветки? 

Это сообщение отредактировал(а) allx - 19.4.2006, 10:33
PM MAIL   Вверх
Alex
Дата 19.4.2006, 17:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 4147
Регистрация: 25.3.2002
Где: Москва

Репутация: 80
Всего: 162



allx, я скажу так, как доставать и изменять строки хранящиеся в ресурсах я не знаю smile  


--------------------
Написать можно все - главное четко представлять, что ты хочешь получить в конце. 
PM Skype   Вверх
allx
Дата 19.4.2006, 21:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 73
Регистрация: 1.9.2005

Репутация: нет
Всего: нет



Alex
Чьерт )) Как достать строку я более-менее разобрался. Скорее менее чем более. Итак.

Код

Procedure TForm1.RenameResourceStrings(FileName: string);
var
  hUpdate : THandle;
  hMui : HMODULE;
  Data : WideString;
  Data2: String;
  ResInfo : HRSRC;
  ResData : HGLOBAL;    
  Adr : Pointer;
  Size : DWORD;
  b: boolean;
  li:TListItem;
  ii, i: integer;
  ResNames: TStrings;
  function enumResNamesProc(module: HMODULE; restype, resname: PChar; list: TStrings): Integer; stdcall;
  begin
   if HiWord(dword(resname)) <> 0 then
     list.Add(resname)
   else
     list.Add(inttostr(dword(resname)));
   Result := 1;
  end;
begin
  hMui := LoadLibraryEx(PAnsiChar(FileName),0,LOAD_LIBRARY_AS_DATAFILE);
  if hMui = 0 then Exit;
  ResNames:=TStringList.Create;
  EnumResourceNames(hMui, RT_STRING, @enumResNamesProc, dword(ResNames));
  for i:=0 to ResNames.Count-1 do begin
    li:=ListView1.Items.Add;
    li.Caption:=ResNames[i];
    ResInfo := FindResource(hMui, pansichar(strtoint(ResNames[i])), pansichar(RT_STRING));
    ResData := LoadResource (hMui, ResInfo);
    Adr := LockResource (ResData);
    Size := SizeofResource (hMui, ResInfo);
    SetLength(Data, Size div 2);
    CopyMemory (@Data[1], Adr, Size);
    data2:='';
    for ii := 1 to length(data) do begin
        if ord(Data[ii])<30 then
           data2:=data2+'[0x' + IntToHex(ord(Data[ii]),2)+']'
        else data2:=data2+data[ii];
    end;
    li.SubItems.Add(Data2);
  end;
  ResNames.Free;
  FreeResource(ResData);
  FreeLibrary(hMui);
end;


Код теперь работает. Остается открытым вопрос, как изменить строки...  И почему парсинг строковых ресурсов во всяких PE Explorer, ResHacker, XN ResourceEditor, Restorator и иже с ними мягко говоря отличается от того что получается  у меня.... 

Это сообщение отредактировал(а) allx - 19.4.2006, 22:25
PM MAIL   Вверх
allx
Дата 19.4.2006, 22:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 73
Регистрация: 1.9.2005

Репутация: нет
Всего: нет



Народ, давайте вместе добьем эти несчастные строки... имхо будет хорошим дополнением к AcWorkRes ))

 c форматом итоговых строк разобрался - 
1) 1 байт размера элемента строки
2) строка соотв. размера
3) 1 байт размера элемента строки
4) строка соотв. размера
итд 

Это сообщение отредактировал(а) allx - 19.4.2006, 22:46
PM MAIL   Вверх
allx
Дата 20.4.2006, 21:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 73
Регистрация: 1.9.2005

Репутация: нет
Всего: нет



ну я собсно разобрался в этой канители.  как отлажу код - отпишусь наверное. 

обновлять ресурсы оказалось довольно просто:

Код

    hMui:=BeginUpdateResource(PAnsiChar(FileName),true);
    UpdateResourceW(hMui,pwidechar(RT_STRING),pwidechar(strtoint(ResNames[i])),1033,@Data,Size);
    EndUpdateResource(hMui,false);
 
PM MAIL   Вверх
Budy
Дата 13.6.2006, 05:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 616
Регистрация: 6.2.2004
Где: Екатеринбург

Репутация: 1
Всего: 2



Alex, и все же ждем процедуры "Show_List_Of_All_Resources_In_File" smile 


--------------------
Как ты назовешь свой корабль, так на нем и напишут
user posted image
PM MAIL WWW ICQ   Вверх
Dino99rus
Дата 4.4.2007, 21:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 83
Регистрация: 10.1.2007

Репутация: нет
Всего: 2



 LoadFileToResourceW исполбзую эту функцию все ок.
Но вот с использованием SaveFileToDiscW не получаеться. Он не создает файл из ресурса, а вообще как после LoadFileToResourceW загрузить файл в мемо. Не понимаю объеснити плиз
PM MAIL   Вверх
Dino99rus
Дата 5.4.2007, 16:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 83
Регистрация: 10.1.2007

Репутация: нет
Всего: 2



Все броблему решил smile 
PM MAIL   Вверх
Dino99rus
Дата 5.4.2007, 22:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 83
Регистрация: 10.1.2007

Репутация: нет
Всего: 2



Народ все хорошо получается. Запись в ехе файл и сохранение этих файлов на диск. 
Код

LoadFileToResourceW('test\project1.exe', 'RCDATA', 'MYTEST', 'test\new.tes');


Код

SaveFileToDiscW('test\Project1.exe', 'RCDATA', 'MYTEST','D:\new.txt');


Плиз, подскажите как можно не сохраняя  на диск файла, а сразу его загрузить например в МЕМО. Пожалусто подскажите

Это сообщение отредактировал(а) Alexeis - 6.4.2007, 11:53
PM MAIL   Вверх
Alkash
Дата 6.4.2007, 10:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


коллекционер жизни
**


Профиль
Группа: Участник
Сообщений: 516
Регистрация: 5.7.2004
Где: /

Репутация: нет
Всего: нет



Сохраняй в поток-)


--------------------
Подпись >> /dev/null
PM MAIL ICQ MSN   Вверх
Dino99rus
Дата 6.4.2007, 15:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 83
Регистрация: 10.1.2007

Репутация: нет
Всего: 2



Да ты прав спасибо.
Все ок... (глупые вопросы здаю smile )
PM MAIL   Вверх
karlos34
Дата 18.11.2007, 17:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 11.11.2007

Репутация: нет
Всего: нет



Может немного туповатым покажется вопрос, но: используя LoadFileToResourceW добавляю в библиотеку картинку. вроде все ок, но прога, которая использует картинки из этой библиотеки не может подключить эту картинку. в ресхакере открываю - вроде все есть, НО: когда добаляю картинку (нужно заменить старую на новую) - не заменяет, а добавляет новый тип ресурса. короче вот часть кода:
Код

procedure TMain.ChangeImageExecute(Sender: TObject);
var namefile:string;  
    typeres:string;   
    nameres:string;   
    nameimg:string;  
begin
if OpenPictureDialog1.Execute then
begin
nameimg:=OpenPictureDialog1.FileName;
namefile:=(ExtractFilePath(Application.ExeName)+'Images.dll');
typeres:='Bitmap';
case typ of
1:nameres:='TDEVICE';
2:nameres:='TSWITCH';
3:nameres:='THUB';
4:nameres:='TTERMINATOR';
5:nameres:='TMARSH';
6:nameres:='TPC';
7:nameres:='TMULPC';
8:nameres:='TTELEGRAF';
9:nameres:='TFAX';
10:nameres:='TFONE';
11:nameres:='TSERVER';
12:nameres:='TCONNECT';
13:nameres:='TUSELUPR';
14:nameres:='TUSELNUPR';
15:nameres:='TUSELAVT';
16:nameres:='TOMS';
17:nameres:='TSECNET';
18:nameres:='TFIRNET';
19:nameres:='TFORNET';
20:nameres:='TMOST';
21:nameres:='TTHIRREP';
22:nameres:='TSECREP';
23:nameres:='TFIRREP';
24:nameres:='TFORREP';
25:nameres:='TMAGIST';
26:nameres:='TPOVTOV';
27:nameres:='THUBOV';
30:nameres:='TTRANS';
31:nameres:='TLINE';
32:nameres:='TPORTS';
33:nameres:='TPORTITEM';
34:nameres:='TPORT';
end;
//ShowMessage(namefile);
//ShowMessage(typeres);
//ShowMessage(nameres);
//ShowMessage(nameimg);
LoadFileToResourceW(StringToPWide(namefile),StringToPWide(typeres),StringToPWide(nameres),StringToPWide(nameimg));
end;
end;

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

Присоединённый файл ( Кол-во скачиваний: 16 )
Присоединённый файл  2.rar 18,29 Kb
PM MAIL   Вверх
karlos34
Дата 18.11.2007, 22:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 11.11.2007

Репутация: нет
Всего: нет



понял в чем дело: моя прога работает с рисунками типа Bitmap и типом информации (Data type) Bitmap. а когда я добавляю рисунок - тип рисунка - Bitmap, а тип данных - Bitmap image. но от этого не легче... помогите кто знает как решить проблемму.
PM MAIL   Вверх
my666
Дата 18.12.2007, 15:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 1
Регистрация: 10.12.2007

Репутация: нет
Всего: нет



кто-нить объяснит как работать со строковыми ресурсами типа RT_String?
PM MAIL   Вверх
Alexeis
Дата 18.12.2007, 21:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

Репутация: 109
Всего: 459



Цитата(my666 @  18.12.2007,  15:41 Найти цитируемый пост)
кто-нить объяснит как работать со строковыми ресурсами типа RT_String? 

  Работать в смысле заменять или просто создавать и использовать?


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
fgn1
Дата 11.1.2008, 17:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 1
Регистрация: 11.1.2008

Репутация: нет
Всего: нет



Кто-нибудь, помогите решить проблему.
Есть файл без расурсов, соответственнно без секции ресурсов. Надо запихнуть туда иконку.
Секция как я понял, автоматически не создаётся (сложно?). Даже если секция присутствует, необходимо создать группу иконок... вобщем  smile как всё это сделать...
Заранее спасибо
PM MAIL   Вверх
DelphiExpert1
  Дата 17.5.2010, 15:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 7.5.2010

Репутация: нет
Всего: нет



Небольшой модуль для работы со строками:
Код

unit stringwork;

interface
function InversionString(Sx : string) : string;
function LTrimUnChar(UnChar , Sx : string) : string;
function RTrimUnChar(UnChar , Sx : string) : string;
function AllTrimUnChar(UnChar , Sx : string) : string;
function CountWord(UnChar , Sx : string) : integer;



implementation
{Инвертирует строку}
function InversionString(Sx : string) : string;
Var
  i : integer;
begin
  Result:=Sx;
  if Length(Sx)>0 then begin
     Result:='';
     for i:=Length(Sx) downto 1 do
      begin
        Result:=Result+Sx[i];
     end;
  end;
end;

{Удаляет НЕсимволы слева}
function LTrimUnChar(UnChar , Sx : string) : string;
//UnChar - строка разделителей(не символов). Аналог множества
//Sx - входная строка
Var
  YesExit : byte;
begin
  Result:=Sx;
  if (length(Sx)>0) and (length(UnChar)>0) then begin
     YesExit:=0;
     while YesExit<=0 do
      begin
        if POS(Result[1],UnChar)>0 then begin
           Delete(Result,1,1);
        end
        else begin
           YesExit:=2;
        end;
        if length(Result)<=0 then YesExit:=1;
     end;
  end;
end;

{Удаляет НЕсимволы справа}
function RTrimUnChar(UnChar , Sx : string) : string;
//UnChar - строка разделителей(не символов). Аналог множества
//Sx - входная строка
begin
  Result:=InversionString(Sx);
  Result:=LTrimUnChar(UnChar,Result);
  Result:=InversionString(Result);
end;

{Удаляет НЕсимволы слева и справа}
function AllTrimUnChar(UnChar , Sx : string) : string;
//UnChar - строка разделителей(не символов). Аналог множества
//Sx - входная строка
begin
  Result:=LTrimUnChar(UnChar,Sx);
  Result:=RTrimUnChar(UnChar,Result);
end;

//Определяет кол-во слов в строке
function CountWord(UnChar , Sx : string) : integer;
//UnChar - строка разделителей(не символов). Аналог множества
//Sx - входная строка
var
  InWord : byte;
  i : integer;
begin
  Result:=0;
  InWord := 0;
  i:=0;
  while i<length(Sx) do
   begin
    i:=i+1;
    if POS(Sx[i],UnChar)<=0 then begin
       if InWord<=0 then Result:=Result+1; //переход на начало слова
       InWord:=1; //Мы внутри слова
    end
    else begin
       InWord:=0; //Мы снаружи слова
    end;
  end;
end;
end.

PM MAIL   Вверх
simsmann
Дата 3.2.2011, 21:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 75
Регистрация: 26.11.2006

Репутация: нет
Всего: нет



Не работает приведенный код по выгрузке jpg из ресурса допустим в Image

Код

procedure LoadJPEGFromRes(Exe, JPEG: string; ThePicture: TPicture);
var
 hExe     : Cardinal;
 Stream: TResourceStream;
 JPEGImage: TJPEGImage;
begin
 hExe:= LoadLibrary(PChar(Exe));
 Stream:= TResourceStream.Create(hExe, JPEG,'JPG');
 JPEGImage:= TJPEGImage.Create;
 try
   JPEGImage.LoadFromStream(MemStream);
   ThePicture.Assign(JPEGImage);
 finally
   JPEGImage.Free;
   Stream.Free;
 end;
end;


Вот вызов

Код

LoadJPEGFromRes(ParamStr(0), 'MYJPEG', Image1.Picture);


С загрузкой jpg в ресурс и выгрузку в файл на диске все окей, а вот выгрузка в Image - ОШИБКА!  Помогите в чем дело! smile 

Присоединённый файл ( Кол-во скачиваний: 3 )
Присоединённый файл  error.JPG 10,93 Kb
PM MAIL   Вверх
MetalFan
Дата 4.2.2011, 11:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Аццкий Сотона
****


Профиль
Группа: Комодератор
Сообщений: 3815
Регистрация: 2.10.2006
Где: Moscow

Репутация: 62
Всего: 128



Цитата(simsmann @  3.2.2011,  21:47 Найти цитируемый пост)
   JPEGImage.LoadFromStream(MemStream);

а откуда взялася MemStream? Судя по коду туда надо просто Stream вставить.


--------------------
There are always someone smarter than you...
PM MAIL   Вверх
simsmann
Дата 5.2.2011, 02:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 75
Регистрация: 26.11.2006

Репутация: нет
Всего: нет



С этим понятно, это было подпраленно, тут дело в другом.
В прочем вариант я нашел.
В указанном вышге коде вообще несколько ошибок.
Ясделал по другому, причем можно 2 вариантами.
PM MAIL   Вверх
CodeMonkey
Дата 5.2.2011, 02:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1839
Регистрация: 24.6.2008
Где: Россия, Тверь

Репутация: 38
Всего: 89



В оригинальную тему про BeginUdate/Update/EndUpdateResource на всех платформах: эти функции есть в MSLU.

Вовсе не нужно было их реализовывать с нуля самому.

Ну и ещё в тему формата строковых ресурсов.


--------------------
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
PM MAIL WWW ICQ Skype GTalk Jabber   Вверх
northener
Дата 5.2.2011, 03:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1361
Регистрация: 2.9.2010

Репутация: 8
Всего: 20



<offtop>
 Некроманты/Некрофилы, блин. smile
</offtop>


--------------------
Но только лошади летают вдохновенно.
Иначе лошади разбились бы мгновенно!
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.2420 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.