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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 16.08.2009, 17:59   #1
skalt12
Пользователь
 
Регистрация: 05.07.2009
Сообщений: 87
Восклицание Открытие сторонних приложений по заданным параметрам

Доброе время суток, уважаемые!
В общем, задача такая, нужно написать программу, которая открывает сторонние приложения, производя поиск таковых в заданных ранее папках.
То есть привожу пример, юзер добавляет папку в настройках, потом в меню программы вводит название приложения, напр. "program.exe", программа ищет в папке, которую указал юзер. и если находит, то открывает..
Собственно прошу помощи по поводу реализации добавления пользовательской директории для поиска и, непосредственно, самого поиска..
Прошу сильно не пинать, надеюсь на вашу помощь, господа
skalt12 вне форума Ответить с цитированием
Старый 16.08.2009, 18:26   #2
Volt
Форумчанин
 
Аватар для Volt
 
Регистрация: 07.12.2008
Сообщений: 244
По умолчанию

попрубуй так
Цитата:
procedure ScanDir(StartDir: string; FileNam: string);
var SearchRec : TSearchRec;
begin
if StartDir[Length(StartDir)] <> '\' then
StartDir := StartDir + '\';
try
if FindFirst(StartDir+FileNam, faAnyFile, SearchRec) = 0 then
repeat
if (SearchRec.Attr and faDirectory) <> faDirectory then begin
ShellExecute(0,nil,pchar(StartDir+ SearchRec.Name),'','',SW_SHOWNORMAL );
end;
until FindNext(SearchRec) <> 0;FindClose(SearchRec);
except end;
{разделение по каталогам}
if FindFirst(StartDir+'*', faAnyFile, SearchRec) = 0 then
try
repeat
if (SearchRec.Attr and faDirectory) = faDirectory then
if (SearchRec.Name <> '..')
and (SearchRec.Name <> '.') then
begin
ScanDir(StartDir + SearchRec.Name + '\', FileNam);
end;
until FindNext(SearchRec) <> 0;FindClose(SearchRec);
except end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
for chrI:='C' to 'Z' do
ScanDir(chrI+':\','thebat.exe') //имя файла
end;
|̲̅̅●̲̅̅|̲̅̅=̲̅̅|̲̅̅●̲̅̅]

Последний раз редактировалось Volt; 16.08.2009 в 18:40.
Volt вне форума Ответить с цитированием
Старый 16.08.2009, 18:27   #3
W0LF
Форумчанин
 
Аватар для W0LF
 
Регистрация: 28.03.2008
Сообщений: 940
По умолчанию

добавляешь адрес папки например в DBGrid, цыклом пробигаешь по колонке де папки и проверяешь FileExists'ом. Если файл есть в папке, то запускаешь и прирываешь цыкл.

Код:
for i:=1 to StringGrid1.RowCount do
if fileexists('адрес твоего файла, который надо найти и запустить') then begin
ShellExecute(Handle, 'open', pchar(' {опять же твой файл который запускать} '), '', nil, SW_SHOWNORMAL);
break;
end;

Последний раз редактировалось Stilet; 17.08.2009 в 08:57.
W0LF вне форума Ответить с цитированием
Старый 16.08.2009, 18:35   #4
KREGI
Форумчанин
 
Аватар для KREGI
 
Регистрация: 29.11.2008
Сообщений: 333
По умолчанию

А я так сделал, только не компилировал, делфи глючит
Код:
procedure TForm1.Button1Click(Sender: TObject);
var sr:TSearchRec;
dir:integer;
    begin
    dir:=strtoint(Edit2.Text);
    findFirst('dir+*.exe',faAnyFile,sr);
    edit1.Text:=sr.Name;
    FindClose(sr);
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
WinExec(pchar(Edit1.text),sw_show); //открывается приложение
end;

end.
Если помог - Весы слева
KREGI вне форума Ответить с цитированием
Старый 16.08.2009, 19:17   #5
skalt12
Пользователь
 
Регистрация: 05.07.2009
Сообщений: 87
По умолчанию

Господа, а иных вариантов нет? просто в случае с вариантом Volt'a
дельфя ругается на ShellExecute..
На вариант Wolf'a дельфя ругается на ShellExecute и сообщает:
Цитата:
Declaration Expected, but 'FOR' found
..
skalt12 вне форума Ответить с цитированием
Старый 16.08.2009, 19:22   #6
KREGI
Форумчанин
 
Аватар для KREGI
 
Регистрация: 29.11.2008
Сообщений: 333
По умолчанию

uses ShellAPI;
Если помог - Весы слева
KREGI вне форума Ответить с цитированием
Старый 16.08.2009, 19:23   #7
skalt12
Пользователь
 
Регистрация: 05.07.2009
Сообщений: 87
По умолчанию

Всем спасибо, разобрался
skalt12 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
CppWEbBrowser. Запрет на открытие нового окна, и открытие его в том же окне Askar_g Общие вопросы C/C++ 4 25.06.2011 20:00
Автоматический поиск ячейки по заданным параметрам Renzo Microsoft Office Excel 5 07.03.2009 17:48
Эллипс по параметрам rzrwolf Microsoft Office Excel 6 21.12.2008 01:47
Условное форматирование по параметрам snakezx Microsoft Office Excel 2 13.11.2008 16:46
Определение типа курсора в сторонних приложениях. lazutov Win Api 1 11.09.2008 20:59