Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

SearchPath по разному работает в зависимости от способа старта.


Alex_Petr ©   (2005-02-02 05:42:00) 

Здравствуйте.
Интересная вещь:
Если стартовать из реестра ( MACHINE\….\Run ), то SearchPath находит
файл (\WINDOWS\system32\ntdll.dll ), а, если сам запускаешь программу то - нет.
Проверяю так:
procedure TMainForm.mnuFirstTestClick(Sender: TObject);
var
 FName:string;
 FilePart:PChar;
 FullName:array [0..MAX_PATH] of Char;
begin
 FilePart:='';
// GetCurrentDirectory - при старте из реестра:
//C:\Documents and Settings\Administrator\My Documents  
 FName:='\WINDOWS\system32\ntdll.dll';
 if SearchPath(nil,PChar(FName),nil,SizeOf(FullName),FullName,FilePart)=0
  then ShowMessage(FName) else ShowMessage(FullName);
end;

Подскажите, пожалуйста, почему так происходит и как можно это избежать ?
Проверял под Win XP.


Alex_Petr   (2005-02-03 12:11:00) [1]

>Jay1982
Ты прав: SetCurrentDirectory(GetWindowsDirectory) - помогает
>Romkin ©   (03.02.05 11:53) [3]
Попробую сравнить права


Romkin   (2005-02-03 11:53:00) [2]

Разница - в правах доступа :) Из реестра, HKLM, оно запускается с правами системы. А из эксплорера - с твоими :)))


Jay1982   (2005-02-03 11:52:00) [3]

FName:='\WINDOWS\system32\ntdll.dll';
Может не на том диске ищешь


Alex_Petr   (2005-02-03 11:29:00) [4]

И, всетаки, мне очень интересно: в чем разница, стартую я из реестра или DblClick-ом из Explorer-а ?


Наверх

Титульная страница Поиск, карта сайта Написать письмо