![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как открыть стандартную панельку со свойствами файла-директории? [D5, Win95/98, NT4, Win2k]
Buster © (2004-07-06 18:36:00)Есть один рабочий вариант
var
hDLL:HWND;
s : PWideChar;
ss : String;
SHObjectProperties : function(hwndOwner : HWND; uFlags : Integer; lpstrName, lpstrParameters : LPWSTR) : boolean; stdcall;
begin
s:=nil;
hDLL :=LoadLibrary('shell32.dll') ;
TRY
if hDll>32 then
begin
ss:=Grid.Cells[PATHFILE_FIELD,Grid.Row]+Grid.Cells[NAMEFILE_FIELD,Grid.Row];
s:=AllocMem(2*Length(ss)+2);
s:=StringToWideChar(ss,s,2*Length(ss));
SHObjectProperties:=GetProcAddress(hDll,PChar(178));
SHObjectProperties(handle,2,s,nil);
end;
FINALLY
if s<>nil then
FreeMem(s);
if hDll>32 then
FreeLibrary(hDLL);
END;
НО это работает только под 2к, а нужно еще и в 98 и в NT сделать. Подсожите, где копать?
Спасибо.
Buster (2004-07-09 13:20:00) [1]Function Information
Minimum DLL Version shell32.dll version 5.0 or later
Custom Implementation No
Header shlobj.h
Import library shell32.lib
Minimum operating systems Windows 2000
Т.е. получаеться, что в 98 она и не должна работать, но как-то же там такое есть.
Almaz (2004-07-08 15:58:00) [2]Функция уже давно как документированна:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/shellcc/platform/shell/reference/functions/shobjectproperties.asp
Удачи.
Buster (2004-07-08 15:32:00) [3]
> Hint: в WinSDK описаны не все WinAPI, а вот в msdn есть
> все..
в МСДН она вроде как появилась, только в последних версиях
jack128 (2004-07-08 14:17:00) [4]
> это функция не документирована
Да не уж то? А как же GuAV о ней узнал? Из головы придумал?
Hint: в WinSDK описаны не все WinAPI, а вот в msdn есть все..
Buster (2004-07-08 10:06:00) [5]
> jack128
это функция не документирована, везде указываеться ее индекс 178 - народ говорит работает в 98, но у меня нет, а как раз в НТ работает
jack128 (2004-07-07 18:13:00) [6]
> Как бы этот индекс надыбать
а по имени не судьба импортировать?
Buster (2004-07-07 17:58:00) [7]Как бы этот индекс надыбать
Игорь Шевченко (2004-07-07 17:11:00) [8]
> index 178
> Не работают оба варианта под Win9x
А там index другой, скорее всего.
Buster (2004-07-07 16:41:00) [9]
> GuAV
Фактически это тоже самое. Не работают оба варианта под Win9x
GuAV (2004-07-06 21:24:00) [10]
function SHObjectProperties(hwndOwner: HWND;
uFlags: Integer; lpstrName,
lpstrParameters: PChar): LongBool; stdcall;
external shell32 index 178;
procedure Properties(const FileName: string);
begin
SHObjectProperties(Application.Handle, 2,
PChar(FileName), nil);
end;