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

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 15.08.2013, 11:25   #1
admin-one
Пользователь
 
Регистрация: 14.07.2012
Сообщений: 31
По умолчанию запуск программ

Здравствуйте , возникла такая проблемка ,нужно вывести в поле listbox названия всех установленных программ , а так же путь как их запускать . Не важно будь то полный путь к exe или просто ярлык . Главное чтоб запускалось !

Насчет получение названий программ можно и через реестр , но вот как найти путь как их запускать ? вот тут например хранятся ярлыки программ C:\Documents and Settings\All Users\Главное меню\Программы но как вывести путь для запуска отдельной программы в программу ? может кто то сталкивался и знает ? заранее спасибо
admin-one вне форума Ответить с цитированием
Старый 15.08.2013, 11:40   #2
Кольша
Далеко не
Участник клуба
 
Аватар для Кольша
 
Регистрация: 11.08.2011
Сообщений: 1,512
По умолчанию

Ваши наработки?
Нет?
Google
Или фриланс.
Кольша вне форума Ответить с цитированием
Старый 15.08.2013, 11:45   #3
admin-one
Пользователь
 
Регистрация: 14.07.2012
Сообщений: 31
По умолчанию

наверно ты плохо прочитал ? гугл дает ответ только на реестр , а там нельзя получить путь к запуску программы
admin-one вне форума Ответить с цитированием
Старый 15.08.2013, 11:57   #4
Кольша
Далеко не
Участник клуба
 
Аватар для Кольша
 
Регистрация: 11.08.2011
Сообщений: 1,512
По умолчанию

Код:
Первый ответ гугла:
В Uses записываем модуль Registry, на форму помещаем TMemo и TButton. В обработчике OnClick запишем следующий код:
 	 
 	
procedure TForm1.Button1Click(Sender: TObject);
var
   MyList: TStringList;
   MyRegistry: TRegistry;
   i: Integer;
   Str: string;
       
 begin
     MyRegistry:=TRegistry.Create;
     MyList:=TStringList.Create;
         with MyRegistry do
            begin
            RootKey:=HKEY_LOCAL_MACHINE;
            if OpenKey('Software\Microsoft\Windows\CurrentVersion\Uninstall',
            False)=True then GetKeyNames(MyList);
            CloseKey;
            for i:=0 to MyList.Count-1 do
               begin
               RootKey:=HKEY_LOCAL_MACHINE;
               OpenKey('Software\Microsoft\Windows\CurrentVersion\Uninstall\'+
               MyList[i], False);
               Str:=ReadString('DisplayName');
               if Str<>'' then
               Memo1.Lines.Add(ReadString('DisplayName'));//Далее ищем по имени адрес установки.

               CloseKey;
               end;
              end; 
 end;

Последний раз редактировалось Кольша; 15.08.2013 в 12:05.
Кольша вне форума Ответить с цитированием
Старый 15.08.2013, 11:57   #5
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,426
По умолчанию

Цитата:
гугл дает ответ только на реестр , а там нельзя получить путь к запуску программы
Правильно дает ответ. Открываете реестр, получаете список установленного софта.
Чтобы распознавать, куда установлено ПО и что читать, изучаете ручками системы создания инсталяционных пакетов. И потихоньку собираете базу. Далее пишете гибкий алгоритм быстрого сканирования реестра на наличие известного БД софта.

Ед. проблемой будут самопальные установщики.

Ну и дополнение уже написал Кольша. Однако не все ПО прописывается именно туда.
Человек_Борща вне форума Ответить с цитированием
Старый 15.08.2013, 12:16   #6
admin-one
Пользователь
 
Регистрация: 14.07.2012
Сообщений: 31
По умолчанию

Кольша , не то ! так получают только название программы

Человек_Борща , в реестре можно найти куда установлен софт (в какую папку ) но а сам exe не найти ...руками тоже .... так как хер знает как она может быть названа
admin-one вне форума Ответить с цитированием
Старый 15.08.2013, 12:21   #7
admin-one
Пользователь
 
Регистрация: 14.07.2012
Сообщений: 31
По умолчанию

может приведете пример с кодом ?
admin-one вне форума Ответить с цитированием
Старый 15.08.2013, 15:30   #8
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,426
По умолчанию

Цитата:
но а сам exe не найти ...руками тоже .... так как хер знает как она может быть названа
Находите первый попавшийся EXE который лежит в корневой папке и не явл. деинсталятором(топо по имени сравнение), или же ищите папку Bin.

Цитата:
может приведете пример с кодом ?
Уже приводили.
Человек_Борща вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Запуск нескольких программ. ArmanPrestige Общие вопросы C/C++ 6 19.10.2012 01:03
Запуск программ r.stine Помощь студентам 1 11.11.2011 11:05
запуск программ SLIMMUS Общие вопросы Delphi 2 01.01.2009 17:44
ListBox, запуск программ artemavd Общие вопросы Delphi 6 07.11.2008 18:29
Запуск программ sinoptik Общие вопросы Delphi 6 04.05.2007 13:54