Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "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.044 c
15-1194254566
Angelka
2007-11-05 12:22
2007.12.16
glscene


6-1175594631
vegarulez
2007-04-03 14:03
2007.12.16
Вопрос по HTTP и SSL.


11-1181563304
Nikfel
2007-06-11 16:01
2007.12.16
Как hicon переделать в hbitmap и при этом увеличить или уменьшить


1-1190823390
Игорь_З
2007-09-26 20:16
2007.12.16
Мерцание ListView


15-1195546975
Kolan
2007-11-20 11:22
2007.12.16
А какназфвается сайт где хронится история сайтов.





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский