вызов из контектсного меню

Тема в разделе "WASM.BEGINNERS", создана пользователем _faq_, 12 фев 2011.

  1. _faq_

    _faq_ New Member

    Публикаций:
    0
    Регистрация:
    14 мар 2008
    Сообщения:
    46
    Здравствуйте!
    При нажатии правой кнопкой мышки по файлу/папке появляется системное контекстное меню. Задача программно указать нужный файл, вызвать (скрытно) данное меню и нажать на один из пунктов. Каким образом это можно сделать или хотя бы в какую сторону копать?
    Спасибо
     
  2. Partner

    Partner Павел

    Публикаций:
    0
    Регистрация:
    28 фев 2008
    Сообщения:
    917
    Адрес:
    Los Angeles
    SHGetDesktopFolder(&pDesktop)
    pDesktop->ParseDisplayName(NULL, NULL, lpwszDisplayName, &cbEaten, &pidl, &dwAttribs)
    pDesktop->BindToObject(pidl, NULL, IID_IShellFolder2, (LPVOID *)&pFolder)))
    pFolder->GetUIObjectOf(hWnd, 1, (LPCITEMIDLIST *)&pidl, IID_IContextMenu, NULL, (LPVOID *)&pCtxMenu)
    pCtxMenu->InvokeCommand(&cmi);
     
  3. _faq_

    _faq_ New Member

    Публикаций:
    0
    Регистрация:
    14 мар 2008
    Сообщения:
    46
    Partner
    спасибо!
    Разобрался..почти. У меня получилось вызвать один из пунктов, не выбирая его. Но для этого пришлось еще создать и заполнить меню. Есть ли возможность обойтись без этих действий?
     
  4. _faq_

    _faq_ New Member

    Публикаций:
    0
    Регистрация:
    14 мар 2008
    Сообщения:
    46
    Еще нашел статью http://rsdn.ru/article/qna/winshell/filemenu.xml
    В итоге для заданного файла/каталога выводится меню, но оно не содержит некоторые пункты. Например, у меня установлен winrar, и в контекстном меню он есть, но программно (с помощью данной статьи) не получается вывести данные пункты. Как можно и их отобразить?
     
  5. Partner

    Partner Павел

    Публикаций:
    0
    Регистрация:
    28 фев 2008
    Сообщения:
    917
    Адрес:
    Los Angeles
    pCtxMenu->QueryContextMenu()
     
  6. _faq_

    _faq_ New Member

    Публикаций:
    0
    Регистрация:
    14 мар 2008
    Сообщения:
    46
    ага, ну, я как бы так и делал =)
    а есть мысли по второму вопросу?