Вверх ↑
Этот топик читают: Гость
Ответов: 327
Рейтинг: 5
#1: 2013-06-29 10:44:00 ЛС | профиль | цитата
Как выяснить установлена ли программа на пк?
Например WinRAR
карма: 0

0
Ответов: 9906
Рейтинг: 351
#2: 2013-06-29 11:49:22 ЛС | профиль | цитата
Понять, что такое "установлена".
Как только поймешь, сразу догадаешься как это выяснить.
карма: 9

0
Ответов: 327
Рейтинг: 5
#3: 2013-06-29 11:52:57 ЛС | профиль | цитата
Galkov писал(а):

В моем понимании установлена - это соответствующие файлы на диске и записи в реестре.
Если файлы на диске проверять, то можно наткнуться на такую "интересную" вещь как измененная директория.
А на счет реестра... не совсем уверен что там искать.
карма: 0

0
Ответов: 4630
Рейтинг: 749
#4: 2013-06-29 15:20:10 ЛС | профиль | цитата
knoot0279, проверять наличие ключа HKEY_LOCAL_MACHINE->Software->WinRAR, в нем же есть путь к программе, если нужно.
карма: 26

0
Ответов: 9906
Рейтинг: 351
#5: 2013-06-29 16:01:10 ЛС | профиль | цитата
unrar-у вовсе не нужны записи в реестре. Как и многим программам.
карма: 9

0
Ответов: 327
Рейтинг: 5
#6: 2013-06-29 17:16:08 ЛС | профиль | цитата
Netspirit писал(а):
проверять наличие ключа HKEY_LOCAL_MACHINE->Software->WinRAR

Да я уже проверил, ругался долго...
Собрал программу, скинул другу, смысл был в том, чтобы посмотреть все ключи внутри HKEY_LOCAL_MACHINE->Software ну и параметры.
Далее все записывалось в .тхт , он мне скинул...
WinRAR обнаружен не был, хотя сам лично видел что он установлен(днем ранее заходил), вот сидел и ругался
В итоге решил так...
При первом запуске открывается окно чтобы указать путь к winrar.exe, путь сохраняется.
При последующих запусках проверяется наличие файла winrar.exe по указанному пути, в случае отсутствия снова открывается окно с просьбой указать путь.

P.S.
Чую что можно гораздо лучше сделать, но пока нет идей.
карма: 0

0
Ответов: 8926
Рейтинг: 823
#7: 2013-06-29 17:58:11 ЛС | профиль | цитата
knoot0279 писал(а):
но пока нет идей.
Вот одна: code_31376.txt
карма: 19

0
файлы: 1code_31376.txt [1024B] [150]
Ответов: 16884
Рейтинг: 1239
#8: 2013-06-29 18:23:00 ЛС | профиль | цитата

А WINRAR не нашёл.
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
файлы: 1leonid_3.gif [19.5KB] [433]
Ответов: 327
Рейтинг: 5
#9: 2013-06-29 18:42:52 ЛС | профиль | цитата
ыыыы
Леонид писал(а):
Вот одна: code_31376.txt

Tad писал(а):
А WINRAR не нашёл.

Add(MainForm,1251114,245,231)
{
}
Add(Button,7887376,287,133)
{
Left=5
Top=5
Caption="Browse"
link(onClick,9865165:doBrowse,[])
}
Add(Edit,9639222,294,231)
{
Left=240
Top=5
Width=80
Text="*WinRAR*"
link(onChange,15246352:doMask,[(333,237)(333,202)])
}
Add(Edit,15970570,245,133)
{
Left=335
Top=5
Text="*.exe"
}
Add(Button,3499054,245,189)
{
Left=5
Top=30
Caption="Search"
link(onClick,16237328:doSearch,[])
}
Add(Edit,13100026,385,133)
{
Left=70
Top=5
Width=160
Text="C:"
}
Add(Browse,9865165,336,133)
{
link(onBrowse,13100026:doText,[])
}
Add(FileSearch,16237328,294,189)
{
link(onSearch,15246352:doCompare,[])
link(Ext,15970570:Text,[(300,180)(251,180)])
link(Dir,13100026:Text,[(307,173)(391,173)])
}
Add(StrMask,15246352,343,189)
{
Mask="*WinRAR*"
Point(doMask)
link(onTrue,5122750:doEvent1,[])
}
Add(ListBox,787693,427,196)
{
Top=55
Width=380
Height=165
}
Add(Hub,5122750,385,196)
{
link(onEvent1,787693:doAdd,[])
link(onEvent2,5999205:doProcessMessages,[(406,209)(406,251)])
}
Add(Application,5999205,413,245)
{
}
угумс
------------ Дoбавленo в 18.35:
а в идеальном случае
Add(MainForm,1251114,154,182)
{
}
Add(Button,3499054,154,217)
{
Left=5
Top=30
Caption="Search"
link(onClick,16237328:doSearch,[])
}
Add(FileSearch,16237328,203,217)
{
link(onSearch,5122750:doEvent1,[])
link(Ext,983604:Value,[])
link(Dir,15839416:Value,[])
}
Add(ListBox,787693,280,217)
{
Top=55
Width=380
Height=165
}
Add(Hub,5122750,245,217)
{
link(onEvent1,787693:doAdd,[])
link(onEvent2,16237328:doStop,[(267,230)(267,255)(191,255)(191,230)])
}
Add(Memory,983604,203,175)
{
Default=String(*WinRAR.exe)
}
Add(Memory,15839416,210,175)
{
Default=String(C:)
}
т.к не нужны файлы по маске "*winrar*"(будут лишние .exe, как и получилось), а по маске "*WinRAR.exe"(ибо нужен только WinRAR.exe)
------------ Дoбавленo в 18.42:
а чтобы прям вообще круто было мы еще берем не "C:", а диск с Windows
карма: 0

0
Ответов: 8926
Рейтинг: 823
#10: 2013-06-29 19:44:15 ЛС | профиль | цитата
knoot0279 писал(а):
берем не "C:", а диск с Windows
WinRAR, как и большинство программ, может быть установлена на любом диске в любом месте.
карма: 19

0
Ответов: 327
Рейтинг: 5
#11: 2013-06-29 20:49:04 ЛС | профиль | цитата
Леонид писал(а):
WinRAR, как и большинство программ, может быть установлена на любом диске в любом месте.

Поэтому я и не стал использовать этот метод.
карма: 0

0
Ответов: 8926
Рейтинг: 823
#12: 2013-06-29 23:08:22 ЛС | профиль | цитата
knoot0279, у нас есть возможность перебрать и все диски
карма: 19

0
Ответов: 327
Рейтинг: 5
#13: 2013-06-29 23:21:30 ЛС | профиль | цитата
Леонид писал(а):
у нас есть возможность перебрать и все диски

Смешно... Ладно, взять мой древний компьютер у которого хард был 40гб, даже если полностью забить, не особо много получится перебирать.
Сейчас хард на 500гб, из них забито ~400, все еще есть желание перебирать?

Уже делал перепись файлов на диске D: , заняло это около часа.
Или же надеяться на удачу
карма: 0

0
Ответов: 16884
Рейтинг: 1239
#14: 2013-06-30 00:52:43 ЛС | профиль | цитата
knoot0279 писал(а):
Смешно...
Смешно.
knoot0279 писал(а):
Уже делал перепись файлов на диске D: , заняло это около часа.
Неправильно делал.
Тестовая перепись, создание списока полных путей к 300 000 файлов, 3 м. 37 сек.
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Ответов: 327
Рейтинг: 5
#15: 2013-06-30 12:34:34 ЛС | профиль | цитата
Tad писал(а):
Тестовая перепись, создание списока полных путей к 300 000 файлов, 3 м. 37 сек.

Каюсь, перегнул на счет часа
Проблема в том, что я думаю больше смысла просить пользователя за ~30сек. указать путь вручную, нежели 3м. сканировать компьютер.
6мин. 250 000 файлов
code_31381.txt
Как спрашивается еще эффективнее?
карма: 0

0
файлы: 1code_31381.txt [250B] [147]
Сообщение
...
Прикрепленные файлы
(файлы не залиты)