Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Информация о файле [D7, XP]


Страницы:   1 2 3 4

Chort ©   (2006-07-27 23:43:00) 

Здравствуйте! Помогите вытянуть информацию с .exe файлов средствами OpenDialog1. Т.е  необходимо чтобы при нажатии кнопки(пусть будет Button1)  появлялось окно выбора проги (.exe)
procedure TForm1.Button1Click(Sender: TObject);
begin
OpenDialog1.Execute;
end;
И по выборе необходимого файла должна считыватся информация и показываться на экране : Размер, Версия продукта(и файла),Внутреннее имя, Исходное имя файла, Комментарий, Название продукта, Производитель,
Язык, и все что еще возможно извлечь. И как потом можно будет  управлять этими сведениями? Заранее спасибо!


Chort   (2006-07-29 20:30:00) [21]

to KilkennyCat and PSPF2003
Warning исправил, все в порядке. А насчет пути к файлу я имею в виду что когда я указываю OpenDialog1 ом файл, с которого хочу считать инфу, то можноли еще и както записать  путь этого файла в мою программу?


PSPF2003   (2006-07-29 16:10:00) [22]


> KilkennyCat ©


> намудрил использование переменной даже если опендиалог не
> отработает.

Хм.. если ты про [48]
Ессли опендиалог не отработает произойдет выход. Там же написанно.


KilkennyCat   (2006-07-29 15:09:00) [23]

> [53] PSPF2003 ©   (29.07.06 13:20)

намудрил использование переменной даже если опендиалог не отработает.


PSPF2003   (2006-07-29 13:22:00) [24]


> Средствами OpenDialog1 можно также увидеть путь к файлу
> в DBEdit ?

Еще раз только по понятнее.


PSPF2003   (2006-07-29 13:20:00) [25]

А по поводу Warning могу только сказать, IMXO ты судя по [32] хм… что-то намудрил.


Chort   (2006-07-29 13:13:00) [26]

Ошибку исправил!Средствами OpenDialog1 можно также увидеть путь к файлу в DBEdit ?


PSPF2003   (2006-07-29 13:10:00) [27]

Там же написанно MSDN (Microsoft Developers Network)


Chort   (2006-07-29 13:03:00) [28]

Кстати, что означает [17] ?


Chort   (2006-07-29 13:01:00) [29]

to PSPF2003
У меня тоже, но показывает warning!


PSPF2003   (2006-07-29 12:27:00) [30]

У меня все работает.

procedure TForm1.Button2Click(Sender: TObject);
var
 a : TVerInfoRes;
begin
 if not OpenDialog1.Execute then Exit;
 a := TVerInfoRes.Create(OpenDialog1.FileName);
 try
   EDIT1.Text := A.GetPreDefKeyString(viCompanyName);
   EDIT2.Text := A.GetPreDefKeyString(viFileDescription);
   EDIT3.Text := A.GetPreDefKeyString(viFileVersion);
   EDIT4.Text := A.GetPreDefKeyString(viInternalName);
   EDIT5.Text := A.GetPreDefKeyString(viLegalCopyright);
   EDIT6.Text := A.GetPreDefKeyString(viLegalTrademarks);
   EDIT7.Text := A.GetPreDefKeyString(viOriginalFilename);
   EDIT8.Text := A.GetPreDefKeyString(viProductName);
   EDIT9.Text := A.GetPreDefKeyString(viProductVersion);
   EDIT10.Text := A.GetPreDefKeyString(viComments);
 finally
   a.Free;
 end;

end;


Chort   (2006-07-29 12:17:00) [31]

В DBGrid1 информация будет вставлятся после того, как можно будет просмотреть и отредактировать(если нужно) данные в DBEdit-ах. Ну а после программа действительно показывает инфу в виде сетки DBGrid1. Не пойму как убрать  Warning ?


PSPF2003   (2006-07-29 12:00:00) [32]


> DBEDIT1.Text

А почему не DBGRID ?


Chort   (2006-07-29 11:57:00) [33]

Коректно ли будет подключить Opendialog1 и написать

procedure TForm1.Button1Click(Sender: TObject);
var
  A: TVerInfoRes;
begin
if OpenDialog1.Execute then begin

A := TVerInfoRes.Create(OpenDialog1.FileName);
end;
try
 DBEDIT1.Text := A.GetPreDefKeyString(viCompanyName);
  DBEDIT2.Text := A.GetPreDefKeyString(viFileDescription);
  DBEDIT3.Text := A.GetPreDefKeyString(viFileVersion);
  DBEDIT4.Text := A.GetPreDefKeyString(viInternalName);
   DBEDIT5.Text := A.GetPreDefKeyString(viLegalCopyright);
    DBEDIT6.Text := A.GetPreDefKeyString(viLegalTrademarks);
     DBEDIT7.Text := A.GetPreDefKeyString(viOriginalFilename);
      DBEDIT8.Text := A.GetPreDefKeyString(viProductName);
       DBEDIT9.Text := A.GetPreDefKeyString(viProductVersion);
        DBEDIT10.Text := A.GetPreDefKeyString(viComments);
finally
  A.Free;
end;

Компилится и работает нормально, но показывает один Warning : ''Variable 'A' might not have been initialized'', и показывает строку
DBEDIT1.Text := A.GetPreDefKeyString(viCompanyName);.
Я понимаю, что Warning это не Error , и сним можно жить , но можно ли этого избежать?


Мефисто   (2006-07-28 22:03:00) [34]


> Chort ©   (28.07.06 21:56) [43]


тебе срочно нужен букварь по дельфи.

тебе выше выложили полноценный готовый юнит.

У себя в проекте создай новый юнит. Удали из него весь текст, а в него вставь код от Шпиона. Только потом в: unit <имя твоего юнита>;
Далее в основном модуле проекта в uses пропиши этот юнит и работай с ним без проблем.


Chort   (2006-07-28 21:56:00) [35]

короче говоря нужно набирать руками!


PSPF2003   (2006-07-28 21:23:00) [36]


> Мефисто

Извени, я не посмотрел кто написал ответ :)


Мефисто   (2006-07-28 21:19:00) [37]


> PSPF2003 ©   (28.07.06 21:14) [40]


Про не чисто, это мой ответ на Chort  ©   (28.07.06 21:03) [38]

А про копирование кода я тебя отлично понял :)


PSPF2003   (2006-07-28 21:14:00) [38]


> Что-то тут нечисто.

В смысле тут не чисто? Тут как раз все чисто. Я тебе просто говорил, что нельзя тупо копировать код. Для того чтобы вывести систему из строя (Windows) достаточно изменить настройки в реестре , а сделать это можно всего несколькими строчками кода.


Мефисто   (2006-07-28 21:09:00) [39]

Я конечно много чего слышал. Но чтобы такое... Что-то тут нечисто.


Chort   (2006-07-28 21:03:00) [40]

чтото творится непонятное: стоит мне положить на форму любой из компонентов , как он прописывается в самое начало кода(к примеру кладу OpenDialog1):
OpenDialog1: TOpenDialog;unit VerInfo;

interface

uses
 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
 Dialogs, WinTypes, StdCtrls, Buttons;

type

EVerInfoError   = class(Exception);
ENoVerInfoError = class(Exception);
....

и пишет ошибку : 'error in module VerInfo: Module header is missing or incorrect'
отсутствует заголовок модуля!


Страницы:   1 2 3 4

Наверх

Титульная страница Поиск, карта сайта Написать письмо