Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.06.29;
Скачать: CL | DM;

Вниз

Как вызвать диалоговое окно свойств файла?   Найти похожие ветки 

 
Wolfram ©   (2005-05-06 22:32) [0]

Мне нужно из моей программы вызвать стандартное окно свойств файла, как из контекстного меню (пункт "свойства") проводника Windows. Как это сделать?


 
GuAV ©   (2005-05-06 22:55) [1]

SHObjectProperties


 
Wolfram ©   (2005-05-06 22:57) [2]

Можно чуть-чуть более доступно объяснить?


 
Ученик   (2005-05-06 23:07) [3]

>Wolfram ©   (06.05.05 22:32)  



{ Project JEDI Code (JCL Library} }

cVerbProperties = "properties";

function DisplayPropDialog(const Handle: HWND; const FileName: string): Boolean;
var
 Info: TShellExecuteInfo;
begin
 FillChar(Info, SizeOf(Info), #0);
 with Info do
 begin
   cbSize := SizeOf(Info);
   lpFile := PChar(FileName);
   nShow := SW_SHOW;
   fMask := SEE_MASK_INVOKEIDLIST;
   Wnd := Handle;
   lpVerb := cVerbProperties;
 end;
 Result := ShellExecuteEx(@Info);
end;



 
GuAV ©   (2005-05-06 23:42) [4]

Wolfram ©   (06.05.05 22:57) [2]
Можно чуть-чуть более доступно объяснить?


const
SHOP_PRINTERNAME = 1;
SHOP_FILEPATH = 2;
SHOP_VOLUMEGUID = 4;

function SHObjectProperties(hwndOwner: HWND;
uFlags: Integer; lpstrName,
lpstrParameters: PChar): LongBool; stdcall;
  external shell32 index 178;

procedure Properties(const FileName: string);
begin
SHObjectProperties(Application.Handle, SHOP_FILEPATH,
  PChar(FileName), nil);
end;


Но теперь мне больше код [3] нравится.


 
Wolfram ©   (2005-05-07 23:04) [5]

Ответ [3] работает, а [4] почему-то нет.
Да и здесь
cVerbProperties = "properties";
кажется должно было быть
const cVerbProperties = "properties";

Еще один вопрос по теме:
Если из моей проги вызвать это окно свойств для файлов avi, а потом запустить любую прогу на фулскрин (игру или хранитель экрана), то моя прога падает (Project1.exe has en...). Такое наблюдается и для любой другой программы, вызывающей эти диалоговые окна для avi файлов (explorer, Total Commander etc), значит проблема в винде, а скорее всего в com-сервере, который создает дополнительные вкладки для файлов avi.
Когда я удалил из реестра раздел
HKEY_CLASSES_ROOT\AVIFile\shellex\ContextMenuHandlers
то глюк исчез, а с ним, сами понимаете, ещё кое-что. Кто-нибудь сталкивался с такой проблемой и знает, в чем же дело?



Страницы: 1 вся ветка

Текущий архив: 2005.06.29;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.027 c
4-1115538019
Makhanev A.S.
2005-05-08 11:40
2005.06.29
Как запретить смену системного времени в Windows?


3-1116440985
Сергей2345
2005-05-18 22:29
2005.06.29
Поможет ли Delfi?


4-1115251787
ronyn
2005-05-05 04:09
2005.06.29
Как переташить файл на к.л. компонент программы?


3-1116316623
Dell3r
2005-05-17 11:57
2005.06.29
Помогите составить запрос


14-1117789310
ris
2005-06-03 13:01
2005.06.29
color - где взять приличный цвет