Текущий архив: 2005.02.20;
Скачать: CL | DM;
ВнизSearchPath по разному работает в зависимости от способа старта. Найти похожие ветки
← →
Alex_Petr © (2005-02-02 05:42) [0]Здравствуйте.
Интересная вещь:
Если стартовать из реестра ( 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 11:29) [1]И, всетаки, мне очень интересно: в чем разница, стартую я из реестра или DblClick-ом из Explorer-а ?
← →
Jay1982 © (2005-02-03 11:52) [2]FName:="\WINDOWS\system32\ntdll.dll";
Может не на том диске ищешь
← →
Romkin © (2005-02-03 11:53) [3]Разница - в правах доступа :) Из реестра, HKLM, оно запускается с правами системы. А из эксплорера - с твоими :)))
← →
Alex_Petr © (2005-02-03 12:11) [4]>Jay1982
Ты прав: SetCurrentDirectory(GetWindowsDirectory) - помогает
>Romkin © (03.02.05 11:53) [3]
Попробую сравнить права
Страницы: 1 вся ветка
Текущий архив: 2005.02.20;
Скачать: CL | DM;
Память: 0.45 MB
Время: 0.043 c