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

RFpro.ru: Программирование на Delphi и Lazarus


Хостинг портала RFpro.ru:
Московский хостер
Профессиональный ХОСТИНГ на базе Linux x64 и Windows x64

РАССЫЛКИ ПОРТАЛА RFPRO.RU

Лучшие эксперты данной рассылки

Орловский Дмитрий
Статус: Профессор
Рейтинг: 3644
∙ повысить рейтинг »
Boriss
Статус: Академик
Рейтинг: 2668
∙ повысить рейтинг »
Евгений/Genia007/
Статус: Профессионал
Рейтинг: 1212
∙ повысить рейтинг »

/ КОМПЬЮТЕРЫ И СОФТ / Программирование / Delphi и Lazarus

Номер выпуска:1578
Дата выхода:31.12.2010, 15:00
Администратор рассылки:Калашников О.А. (Руководитель)
Подписчиков / экспертов:271 / 185
Вопросов / ответов:1 / 2

Вопрос № 181625: Здравствуйте, уважаемые эксперты! Прошу Вас ответить на следующий вопрос: Имеется програмка (Скачать здесь), которая получает список установленных программ из ветви...



Вопрос № 181625:

Здравствуйте, уважаемые эксперты! Прошу Вас ответить на следующий вопрос:
Имеется програмка (Скачать здесь), которая получает список установленных программ из ветви реестра
(SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\)
Подскажите пожалуйста как сделать запись строк из listview в txt следущего вида:

Name:
Adobe Flash Media Server 4
Publisher:
Adobe Systems Incorporated
Version:
4.1.2345
Size:
10Mb
Date:
20101107
Uninstall:
C:\Program Files\Adobe\Flash Media Server 4\unins000.exe
**************
Name:
Adobe Flash Media Server 4
Publisher:
.......
.......



Отправлен: 26.12.2010, 14:40
Вопрос задал: Лукин Андрей (Посетитель)
Всего ответов: 2
Страница вопроса »


Отвечает PaVeL_Ekt (Студент) :
Здравствуйте, Лукин Андрей!

Прилагаю в Приложении процедуру записывающую 1 строку из ListBox в текстовый файл
При необходимости можно переделать саму процедуру для записи всех строк.

Единственное, что необходимо Вам будет сделать написать рекурсивную ф-ю для подсчета занимаемого места на диске.

Если возникнут вопросы, пишите, спрашивайте. Буду рад помочь.

Приложение:

-----
Да поможет Вам F1, да сохранит Вас F2, во имя CTRL, ALT и святого DEL

Ответ отправил: PaVeL_Ekt (Студент)
Ответ отправлен: 27.12.2010, 09:08
Номер ответа: 265121
Россия, Екатеринбург
Организация: Эвенкс
ICQ # 293365038

Вам помог ответ? Пожалуйста, поблагодарите эксперта за это!
Как сказать этому эксперту "спасибо"?
  • Отправить SMS #thank 265121 на номер 1151 (Россия) | Еще номера »
  • Отправить WebMoney:


  • Отвечает Евгений/Genia007/ (Профессионал) :
    Здравствуйте, Лукин Андрей!
    Вот исправил Ваш исходник
    Код:
    procedure TfrmMain.btnRefreshClick(Sender: TObject);
    var
    theRegistry: TRegistry;
    uEntries: TStrings;
    index: Integer;
    item: TListItem;
    str: integer;
    begin
    uList.Clear;
    uEntries := TStringList.Create;
    theRegistry := TRegistry.Create;
    theRegistry.RootKey := HKEY_LOCAL_MACHINE;
    theRegistry.OpenKey(UNINSTALLROOT, False);
    theRegistry.GetKeyNames(uEntries);
    theRegistry.CloseKey;

    for index := 0 to uEntries.Count -1 do begin
    theRegistry.OpenKey(UNINSTALLROOT + uEntries[index], False);
    if theRegistry.ValueExists('DisplayName') then begin
    item := uList.items.add;
    item.Caption := theRegistry.ReadString('DisplayName');
    if theRegistry.ValueExists('DisplayVersion') then
    item.SubItems.Add(theRegistry.ReadString('DisplayVersion')) else
    item.SubItems.Add('null');
    if theRegistry.ValueExists('Publisher') then
    item.SubItems.Add(theRegistry.ReadString('Publisher')) else
    item.SubItems.Add('null');
    if theRegistry.ValueExists('UninstallString') then
    item.SubItems.Add(theRegistry.ReadString('UninstallString')) else
    if theRegistry.ValueExists('QuietUninstallString') then
    item.SubItems.Add(theRegistry.ReadString('QuietUninstallString')) else
    item.SubItems.Add('null');
    if theRegistry.ValueExists('InstallDate') then
    item.SubItems.Add(theRegistry.ReadString('InstallD ate')) else
    item.SubItems.Add('null');
    if theRegistry.ValueExists('EstimatedSize') then
    item.SubItems.Add(IntToStr(theRegistry.ReadInteger('EstimatedSize'))) else
    item.SubItems.Add('null');
    end;
    theRegistry.CloseKey;
    end;

    FreeAndNil(theRegistry);
    FreeAndNil(uEntries);
    StatusBar.SimpleText := Format('%d Application(s)', [uList.Items.Count]);
    end;

    procedure TfrmMain.FormActivate(Sender: TObject);
    var
    f: Textfile;
    i: integer;
    j: Real;
    str: string;
    begin
    AssignFile(f,'proba.txt');
    Rewrite(f);
    for i:= 0 to uList.Items.Count - 1 do
    begin
    Writeln(f, 'Name:');
    Writeln(f, uList.Items[i].Caption);
    Writeln(f, 'Publisher:');
    Writeln(f, uList.Items[i].SubItems[1]);
    Writeln(f, 'Version:');
    Writeln(f, uLi st.Items[i].SubItems[0]);
    Writeln(f, 'Size:');
    if uList.Items[i].SubItems[4] <> 'null' then
    begin
    j:= StrToInt(uList.Items[i].SubItems[4]);
    str:= FloatToStrF((j / 1024), ffNumber, 5, 2) + ' Mb';
    Writeln(f, str);
    end
    else
    Writeln(f, 'null');
    Writeln(f, 'Date:');
    Writeln(f, uList.Items[i].SubItems[3]);
    Writeln(f, 'Uninstall:');
    Writeln(f, uList.Items[i].SubItems[2]);
    Writeln(f, '**************');
    Writeln(f, ' ');
    end;
    CloseFile(f);
    end;
    Прикрепленный файл: загрузить »

    -----
    Помогли тебе, помоги и ты.

    Ответ отправил: Евгений/Genia007/ (Профессионал)
    Ответ отправлен: 27.12.2010, 10:28
    Номер ответа: 265123
    Казахстан, Петропавловск
    Тел.: 87776918987
    Адрес сайта: Выложены мои программы со статусом freeware
    ICQ # 573729535
    Абонент Skype: jonixjon

    Вам помог ответ? Пожалуйста, поблагодарите эксперта за это!
    Как сказать этому эксперту "спасибо"?
  • Отправить SMS #thank 265123 на номер 1151 (Россия) | Еще номера »
  • Отправить WebMoney:


  • Оценить выпуск »
    Нам очень важно Ваше мнение об этом выпуске рассылки!

    Задать вопрос экспертам этой рассылки »

    Скажите "спасибо" эксперту, который помог Вам!

    Отправьте СМС-сообщение с тестом #thank НОМЕР_ОТВЕТА
    на короткий номер 1151 (Россия)

    Номер ответа и конкретный текст СМС указан внизу каждого ответа.

    Полный список номеров »

    * Стоимость одного СМС-сообщения от 7.15 руб. и зависит от оператора сотовой связи. (полный список тарифов)
    ** При ошибочном вводе номера ответа или текста #thank услуга считается оказанной, денежные средства не возвращаются.
    *** Сумма выплаты эксперту-автору ответа расчитывается из суммы перечислений на портал от биллинговой компании.


    © 2001-2010, Портал RFPRO.RU, Россия
    Авторское право: ООО "Мастер-Эксперт Про"
    Автор: Калашников О.А. | Программирование: Гладенюк А.Г.
    Хостинг: Компания "Московский хостер"
    Версия системы: 2010.6.25 от 13.12.2010

    В избранное