Конференция "WinAPI" » x64 контекстное меню [D7]
 
  • serhiyiv © (19.04.16 23:56) [0]
    Народ привет. Подскажите пожалуйста вопрос о контекстном меню файлов. На форуме есть ветки с таким вопросом и его реализацией, к примеру - http://delphimaster.net/view/11-1188808520

    Пример я взял сэтого сайта - http://rouse.drkb.ru/winapi.php#syspopup  - статья "Работа с системным контекстным меню."
    В принцыпе, в нете гуляет по всюду одинаковый код, даже в JCL есть метод
    function DisplayContextMenu(const Handle: THandle; const FileName: string;
     Pos: TPoint): Boolean;

    Все примеры работают почти нормально,  тоесть, пункты меню отображаються вместе с архиватором и элементами с других програм. Но некоторые пункты отсутствуют. Например в контекстногм меню файла вызваном в проводнике у меню отображаются элементы Bitdefender, Unlocker.  В Delphi ну никак не получаетьсяих отобразить. Что я выяснил, так это по тому, что я использую x64 версию винды и видимо нужно как то по другому вызывать это меню. Но как я не знаю. Уже искал на https://msdn.microsoft.com но нигде не написано об этом нюансе о разнице между вызовом 32 и 64 меню.  
    А почему я решил что это зависит от битности винды, так по тому, что я проверил как выглядит контекстное меню у разных файловых менеджеров. Например в меню таких менеджеров отсутсвуют пункты Bitdefender, Unlocker - Double Commander, CubicExplorer.  
    Но вот в XYplorer по дефолту эти пункты тоже отсутствуют, зато есть пункт -
    Show 64 - bit Context Menu, и если кликнутьпо нему то отобразиться уже полное меню с бытдефендером и анлокером.

    Так вот подскажите пожалуйста чего не хватает в примере или что нужно вызвать что бы получить ПОЛНОЕ меню файла, или же если я правильно понял, как получить контекстное меню файла для 64 битной винды?
  • DVM © (20.04.16 16:03) [1]

    > Так вот подскажите пожалуйста чего не хватает в примере
    > или что нужно вызвать что бы получить ПОЛНОЕ меню файла

    64 - бит компилятора тебе не хватает. Нужна относительно свежая версия Delphi или Lazarus/FreePascal 64 бит. Твоя программа должна быть 64 разрядной.
  • serhiyiv © (20.04.16 18:50) [2]
    Да скомпилировал прогу под x64 в Delphi DX и видны все пункты. Нуа как тогда сделать так что бы с 32 битной проги вызывать 64 битное меню? Как я писал выше, в XYplorer они смогли это реализовать. ?
  • DVM © (20.04.16 23:58) [3]

    > serhiyiv ©   (20.04.16 18:50) [2]


    > Как я писал выше, в XYplorer они смогли это реализовать.
    >  ?

    Наверное запускают 64 бит версию программы из 32 битной.
    Нормального способа нет
  • имя (21.04.16 13:37) [4]
    Удалено модератором
  • имя (21.04.16 14:08) [5]
    Удалено модератором
  • имя (21.04.16 14:35) [6]
    Удалено модератором
 
Конференция "WinAPI" » x64 контекстное меню [D7]
Есть новые Нет новых   [118241   +28][b:0][p:0]