Форум программистов, компьютерный форум, киберфорум
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.69/13: Рейтинг темы: голосов - 13, средняя оценка - 4.69
0 / 0 / 0
Регистрация: 28.07.2012
Сообщений: 70
1

запуск программ

15.08.2013, 11:26. Просмотров 2389. Ответов 44
Метки нет (Все метки)

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

Насчет получение названий программ можно и через реестр , но вот как найти путь как их запускать ? вот тут например хранятся ярлыки программ C:\Documents and Settings\All Users\Главное меню\Программы но как вывести путь для запуска отдельной программы в программу ? может кто то сталкивался и знает ? заранее спасибо
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
15.08.2013, 11:26
Ответы с готовыми решениями:

Запуск программ
Всем здравия :) В общем, живет на против меня сосед, который в компах не оч. И каждый раз он зовет...

Запуск программ из Delphi
Как запускать программы из Delphi?

Запуск других программ
как в делфи в программе запустить приложение из папки в директории программы ???...

ShellApi запуск программ
Привет и Здравствуйте :) гугл не помог, яндекс послал, друзья руками развели, форум поиск...

44
174 / 161 / 71
Регистрация: 22.02.2013
Сообщений: 1,770
Записей в блоге: 2
15.08.2013, 11:34 2
Цитата Сообщение от stasa971 Посмотреть сообщение
C:\Documents and Settings\All Users\Главное меню\Программы
вы уверены что тут хранятся ВСЕ программы?
0
0 / 0 / 0
Регистрация: 28.07.2012
Сообщений: 70
15.08.2013, 11:41  [ТС] 3
Цитата Сообщение от NotBeginner Посмотреть сообщение
вы уверены что тут хранятся ВСЕ программы?
нет . не уверен , я думал хотя бы что то вывести если есть способ вывести все программы можете подсказать ?
0
174 / 161 / 71
Регистрация: 22.02.2013
Сообщений: 1,770
Записей в блоге: 2
15.08.2013, 11:50 4
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
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;
так пробывали?
0
0 / 0 / 0
Регистрация: 28.07.2012
Сообщений: 70
15.08.2013, 11:56  [ТС] 5
Цитата Сообщение от NotBeginner Посмотреть сообщение
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
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;
так пробывали?
пробывал ! но так дает только название программы , а путь к запуску там нет
0
174 / 161 / 71
Регистрация: 22.02.2013
Сообщений: 1,770
Записей в блоге: 2
15.08.2013, 12:01 6
вот интересная тема тут есть ответ на твой вопрос
0
0 / 0 / 0
Регистрация: 28.07.2012
Сообщений: 70
15.08.2013, 12:21  [ТС] 7
как то я там не нашел ответ на свой вопрос

Добавлено через 4 минуты
может приведете пример с кодом ?
0
174 / 161 / 71
Регистрация: 22.02.2013
Сообщений: 1,770
Записей в блоге: 2
15.08.2013, 12:23 8
Цитата Сообщение от stasa971 Посмотреть сообщение
не нашел ответ на свой вопрос
а вы внимательно читали?)) а вот что я нашел
в оси есть БД MSI и API к ней
ветка uninstal, эмпирический анализ "Program Files", эмпирический анализ всех папок на всех дисках. Не забыть про внешние носители.
Технология Windows Installer
http://www.rsdn.ru/article/ins... taller.xml
0
2645 / 2268 / 278
Регистрация: 24.12.2010
Сообщений: 13,725
15.08.2013, 12:25 9
Цитата Сообщение от stasa971 Посмотреть сообщение
Главное чтоб запускалось
ShellExecute()

+
пути к спецпапкам
1
пофигист широкого профиля
4210 / 2743 / 780
Регистрация: 15.07.2013
Сообщений: 15,940
15.08.2013, 12:47 10
Цитата Сообщение от mss Посмотреть сообщение
пути к спецпапкам
+
Новинка Known Folders
0
0 / 0 / 0
Регистрация: 28.07.2012
Сообщений: 70
15.08.2013, 13:04  [ТС] 11
или я не так объяснил или вы не так меня поняли ... мне нужно чтоб в одном столбце были названия программ в другом пути к запуску этих программ .

Добавлено через 54 секунды
Цитата Сообщение от mss Посмотреть сообщение
дает ошибку что нет актуальных параметров + я чувствую что это не то

Добавлено через 7 минут
походу тут никто так и не сможет нормально мне помочь
0
пофигист широкого профиля
4210 / 2743 / 780
Регистрация: 15.07.2013
Сообщений: 15,940
15.08.2013, 13:04 12
Цитата Сообщение от stasa971 Посмотреть сообщение
я чувствую что это не то
Да это не то.
Надо CreateProcess()
0
0 / 0 / 0
Регистрация: 28.07.2012
Сообщений: 70
15.08.2013, 13:11  [ТС] 13
Цитата Сообщение от northener Посмотреть сообщение
Да это не то.
Надо CreateProcess()
позволь спросить , а причем тут CreateProcess ? я же сказал что мне нужно , выше сообщением
0
2645 / 2268 / 278
Регистрация: 24.12.2010
Сообщений: 13,725
15.08.2013, 13:34 14
Цитата Сообщение от stasa971 Посмотреть сообщение
дает ошибку что нет актуальных параметров
И всё, у тебя ступор полный, да ?
Справку читать по использованию ф-ции ты принципиально не желаешь ?

Цитата Сообщение от stasa971 Посмотреть сообщение
чувствую что это не то
Самое что ни на есть "то".
0
пофигист широкого профиля
4210 / 2743 / 780
Регистрация: 15.07.2013
Сообщений: 15,940
15.08.2013, 13:39 15
Цитата Сообщение от stasa971 Посмотреть сообщение
я же сказал что мне нужно , выше сообщением
Это уже и так у тебя есть. Называется меню "Пуск". Но ты же хочешь сделать свое собственное, а значит должен уметь сам открывать программы, ярлыки, документы и т.д. и т.п. Или ты хочешь чтобы тебе дали тут на форуме все уже готовое?
0
0 / 0 / 0
Регистрация: 28.07.2012
Сообщений: 70
15.08.2013, 13:47  [ТС] 16
mss , давай разбираться , ShellExecute() насколько я знаю это запуск опред параметра . но вот как мне это поможет ? если мне просто нужно узнать путь запуска

northener, да блин как вы все не понимаете , мне не нужно открывать программы, ярлыки, документы и т.д. это я и сам могу , мне нужно просто путь для запуска . т.е в одном столбце пишет название проги например skype в другом столбце тоже на первой строке пишет C:\Program Files\Skype\Phone\Skype.exe т.е путь запуска .... и все не нужно ничего больше мудрить

Добавлено через 1 минуту
названия программ я могу найти , а вот пути их запуска не могу ... вот почему я и обратился к вам за помощью
0
2645 / 2268 / 278
Регистрация: 24.12.2010
Сообщений: 13,725
15.08.2013, 13:57 17
Цитата Сообщение от stasa971 Посмотреть сообщение
как мне это поможет ?
В случае с ярлыком система сама разберется что делать с тем на что указывает ярлык.
В случае с exe Shellexecute запустит его на выполнение.

Добавлено через 3 минуты
Цитата Сообщение от stasa971 Посмотреть сообщение
мне нужно просто путь для запуска
И чего ты сидишь плачешься что тебя никто не понимает ?)
Давно бы уж спросил у Гугля - примеров на эту тему как г. за баней)
0
0 / 0 / 0
Регистрация: 28.07.2012
Сообщений: 70
15.08.2013, 14:00  [ТС] 18
Цитата Сообщение от mss Посмотреть сообщение
В случае с ярлыком система сама разберется что делать с тем на что указывает ярлык.
В случае с exe Shellexecute запустит его на выполнение.
если честно пока нифига не врубился .... сколько мне повторять что мне не нужно программу запускать ?

// Меню Пуск -&gt; Программы
CSIDL_CONTROLS = $0003;

Shellexecute(CSIDL_CONTROLS) так что ли делать ? не могу чет никак врубится ....

Добавлено через 2 минуты
Цитата Сообщение от mss Посмотреть сообщение
В случае с ярлыком система сама разберется что делать с тем на что указывает ярлык.
В случае с exe Shellexecute запустит его на выполнение.

Добавлено через 3 минуты


И чего ты сидишь плачешься что тебя никто не понимает ?)
Давно бы уж спросил у Гугля - примеров на эту тему как г. за баней)
тогда же мне еще и нужны все пути к этим ярлыкам + всех их вывести в программу .... как я их выведу то ?
0
2645 / 2268 / 278
Регистрация: 24.12.2010
Сообщений: 13,725
15.08.2013, 14:02 19
Цитата Сообщение от stasa971 Посмотреть сообщение
мне еще и нужны все пути к этим ярлыкам + всех их вывести в программу .... как я их выведу то ?
Сказка про белого бычка)

пути к спецпапкам
0
0 / 0 / 0
Регистрация: 28.07.2012
Сообщений: 70
15.08.2013, 14:08  [ТС] 20
и что мне это даст то ? так ничего не выходит Memo1.Lines.Text:= GetSpecialFolderPath(CSIDL_CONTROLS);

Добавлено через 1 минуту
мож привести пример как вывести эти ярлыки в прогу ? ибо у меня уже мозг кипит
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
15.08.2013, 14:08

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Запуск двух программ с ожиданием завершения
Всем привет! Сам не программист, давно ушел в другую сферу ИТ. Потребовалось написать программку,...

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

Параллельный запуск 2-х программ.
Подскажите, пожалуйста: нужно при запуске своей программы, запускать еще и другую программу с...

Запуск программ, батников и vbs скриптов на Делфи - как?
Привет Как на делфи запустить программу, батник и vbs скрипт, зная директорию ее расположени + в...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.