Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Синтаксис
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 19.05.2009, 16:18
dzirt87 dzirt87 вне форума
Прохожий
 
Регистрация: 19.05.2009
Сообщения: 0
Репутация: 10
Восклицание Поиск сертификата и установка его в определенное хранилище

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

Листинг поиска:
[CODE=pas]
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;
[/code]

Листинг установки сертификатов:
[CODE=pas]
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);
[/code]

Последний раз редактировалось dzirt87, 19.05.2009 в 17:38.
Ответить с цитированием
  #2  
Старый 19.05.2009, 16:50
Аватар для Страдалецъ
Страдалецъ Страдалецъ вне форума
Гуру
 
Регистрация: 09.03.2009
Адрес: На курорте, из окна вижу теплое Баренцево море. Бррр.
Сообщения: 4,723
Репутация: 52347
По умолчанию

И че? В чем вопрос-то?
__________________
Жизнь такова какова она есть и больше никакова.
Помогаю за спасибо.
Ответить с цитированием
  #3  
Старый 19.05.2009, 16:57
dzirt87 dzirt87 вне форума
Прохожий
 
Регистрация: 19.05.2009
Сообщения: 0
Репутация: 10
По умолчанию

Так не выходит объеденить их.Нужно,чтобы как только находится сертификат,то сразу устанавливается в нужное хранилище.
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 12:19.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025