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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 19.05.2009, 15:54   #1
dzirt87
Новичок
Джуниор
 
Регистрация: 19.05.2009
Сообщений: 1
Восклицание Поиск сертификата в папке и его установка

Здравствуйте.
У меня есть 2 программы. Одна занимется поисков сертификатов (поиск файла по маске), другая устанавливает сертификат в зависимости от его вида в нужное хранилище (для установкм сертификата используется CertMgr.exe). Необходимо их объеденить так, чтобы выполнялся поиск сертификатов и в зависимости в какой папке он находится устонавливать его в определенное хранилище.С этим и возникают проблемы.
Пример: Если сертификат лежит в папке UDC, то он устонавливается в хранилище "Доверенные корневые центры сертификации".

Листинг поиска:
Код:
Procedure FindRecursive(Const path: String; Const mask: String);
Var
fullpath: String;

Function Recurse( Var path: String; Const mask: String ): Boolean;
Var
SRec: TSearchRec;
retval: Integer;
oldlen: Integer;
Begin
Recurse := True;
oldlen := Length(path);
retval := FindFirst(path+mask, faAnyFile, SRec);
While retval = 0 Do Begin
Application.ProcessMessages;
If (SRec.Attr and (faDirectory or faVolumeID)) = 0 Then
Form1.ListBox1.items.Add(path+srec. name);
retval := FindNext(SRec);
End;
FindClose(SRec);

If not Result Then Exit;

retval := FindFirst( path+'*.*', faDirectory, SRec);
While retval = 0 Do Begin
If (SRec.Attr and faDirectory) <> 0 Then
If (SRec.Name <> '.') and (SRec.Name <> '..') Then Begin
path := path + SRec.Name + '\';
If not Recurse( path, mask ) Then Begin
Result := False;
Break;
End;
Delete( path, oldlen+1, 255 );
End;
retval := FindNext( SRec );
End;
FindClose( SRec );
End; // Recurse
//___________________________________ ___________________________________ ____
Begin
If path = '' Then GetDir(0, fullpath)
Else fullpath := path;

If fullpath[Length(fullpath)] <> '\' Then fullpath := fullpath + '\';

If mask = '' Then Recurse(fullpath, '*.*')
Else Recurse(fullpath, mask);
End;

procedure TForm1.Button1Click(Sender: TObject);
begin
FindRecursive('C:\certs','*.cer');
FindRecursive('C:\certs','*.crl');
FindRecursive('C:\certs','*.p7b');
end;
Листинг установки сертификатов:
Код:
ShellExecute(0, 'open', 'soft/CertMgr.exe', Pchar('/add /c certs\ifns\3525.cer /s addressbook'), nil, SW_HIDE);
ShellExecute(0, 'open', 'soft/CertMgr.exe', Pchar('/add /c certs\udc\cacer.p7b /s ca'), nil, SW_HIDE);
ShellExecute(0, 'open', 'soft/CertMgr.exe', Pchar('/add /crl certs\crl\certcrl.crl /s ca'), nil, SW_HIDE);
ShellExecute(0, 'open', 'soft/CertMgr.exe', Pchar('/add /c certs\udc\cacer.cer /s root'), nil, SW_HIDE);

Последний раз редактировалось dzirt87; 19.05.2009 в 17:38.
dzirt87 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Поиск видео в папке Revival001 Мультимедиа в Delphi 7 18.05.2009 15:21
Проблема получения сертификата подписчика - CertFindCertificateInStore _test_ Win Api 1 28.04.2009 18:42
Поиск поля для ввода текста и его замена ZeroCrash Общие вопросы Delphi 2 21.04.2009 17:22
поиск слова по его части Рустам Помощь студентам 3 10.03.2009 20:54
Как сделать поиск файлов в папке BETONOMESHALKA Общие вопросы Delphi 3 01.02.2008 22:43