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

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

Как открыть стандартную панельку со свойствами файла-директории? [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;


Наверх

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