Форум: "WinAPI";
Текущий архив: 2005.06.29;
Скачать: [xml.tar.bz2];
ВнизКак вызвать диалоговое окно свойств файла? Найти похожие ветки
← →
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 вся ветка
Форум: "WinAPI";
Текущий архив: 2005.06.29;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.043 c