Форум: "Corba";
Текущий архив: 2007.12.16;
Скачать: [xml.tar.bz2];
ВнизИнтеграция в Shell context-menu. Найти похожие ветки
← →
TheEd (2005-12-03 00:20) [0]Господа мастера. Может не в ту тему попал, но вопрос по subj:
Писал прогу года 2 назад, всё работало чудно, в контекстном меню папок и дисков появлялись мои строчки (WinXP). Счас запускаю - на одних системах работает, на других - нет. Изменились API или что там ещё?
Подскажите плиз.
ps: желательно кратко и лаконично, т.е. с рабочим примером.
← →
TheEd (2006-03-08 01:47) [1]Ну по другому спрошу:
Как интегрироваться в Shell?
← →
YurikGL © (2006-03-08 15:58) [2]http://offline.burik.ru/delphi/dw/add_ie_menu_item.html
http://delphimaster.net/view/10-1127095897/
Если более подробно, то яндекс+"контекстное меню delphi windows"
← →
TheEd (2006-03-09 17:51) [3]спасибо, справился с глюками. Только непонятным отсался момент:
когда DLL оформляем с юнитом:library SomeShellExtLib;
uses
ComServ,
SomeUnit; // Unit with all code to register shell ext menu
exports
DllGetClassObject,
DllCanUnloadNow,
DllRegisterServer,
DllUnregisterServer;
Begin
End.
всё работает, а когда так:library SomeShellExtLib;
uses
ComServ;
type
TFolderContextMenu = class(TComObject, IContextMenu, IShellExtInit)
...
end;
TFolderContextMenuFactory = class(TComObjectFactory)
public
procedure UpdateRegistry(Register: Boolean); override;
end;
//-----------------------------------------------------
procedure DLLEntryPoint(dwReason: DWORD); stdcall;
begin
case dwReason of
DLL_PROCESS_ATTACH:
begin
if not Initialized
then DoInitialize; // This procedure with all code to register shell ext menu
end;
DLL_PROCESS_DETACH:
begin
if Initialized
then DoFinalize;
end;
end;
end;
//-----------------------------------------------------
exports
DllGetClassObject,
DllCanUnloadNow,
DllRegisterServer,
DllUnregisterServer;
//-----------------------------------------------------
Begin
if not assigned(DLLProc)
then DLLProc := @DLLEntryPoint;
DLLEntryPoint(DLL_PROCESS_ATTACH); // ***
End.
при регистрации DLL и попытке вызвать контекстное меню, секунд через 5 выскакивает ошибка (попытка чтения из памяти, которая не может быть Read).
Добавлю лишь что код одинаков и в 1 и во 2 примере, только вход инициируется в первом примере в initialization-секции юнита, а во втором - в ***;
Кто сталкивался, подскажите пожалуйста...
Страницы: 1 вся ветка
Форум: "Corba";
Текущий архив: 2007.12.16;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.043 c