none
Win10下如何用程序把一个快捷方式固定到任务栏 RRS feed

  • 问题

  • Win10下如何用程序把一个快捷方式固定到任务栏,win7 win8都可以做到,但是win10变了,调用右键菜单,也得不到固定到任务栏项的对象,win10是通过com组件来完成固定任务栏的动作吗?
    2015年8月18日 7:03

全部回复

  • Win10下,通过程序实现固定到开始屏幕,但是无法固定到任务栏,求大牛,想点法子,ShellExecute()无效的,通过Windows Shell编程,也无法获取固定到任务栏的对象,那只可能是一种拓展,那该如何去调用这个未知的拓展呢?
    • 已合并 Shu 2017 2015年8月19日 7:45 duplicate
    2015年8月19日 3:00
  • windows 7, 8 , 10上都应该是用Shell接口来固定到任务栏的吧。能说说您在win7和win8上是怎么做的吗?

    微软不推荐程序自己把自己pin到任务栏的,这个动作应该由用户来决定。

    参考: https://msdn.microsoft.com/en-us/library/dd391692(VS.85).aspx

    Note  Applications cannot programmatically pin themselves to the taskbar. That functionality is reserved strictly for the user.”

    也许你可以用一个小程序来pin你的快捷方式到任务栏:

    int hinst = reinterpret_cast<int>(ShellExecute(NULL, L"taskbarpin",

    L"C:\\Users\\Admin\\Desktop\\errlook - Shortcut", NULL, NULL, 0));

    上面的代码在windows 10 上也有用。


    We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
    Click HERE to participate the survey.

    2015年8月19日 6:50
  • 上面的代码在win10下失效了,执行结果是打开那个快捷方式,通过shell接口,唯独找不到固定到任务栏的FolderItemVerb对象,微软这个地方改动了,我估计应该是用shell拓展来实现的,现在直接调用IContextMenu来实现

    hr = m_psfFolder->GetUIObjectOf(NULL, 1, &pidlItem, IID_IContextMenu, NULL, (void**)&icm1);
    if (icm1)
    {
    CHAR m_cmd[255] = {0};
    hr = icm1->GetCommandString(16, GCS_VERBA, NULL, m_cmd, 255);//这里一直失败,我该如何去得到这个命令呢
    CMINVOKECOMMANDINFO cmi = { 0 };
    cmi.cbSize = sizeof(CMINVOKECOMMANDINFO);
    cmi.fMask = 0;
    cmi.hwnd = NULL;
    //例如 "properties" 就是属性 那我需要的命令是什么呢
    if (SUCCEEDED(hr))
    cmi.lpVerb = m_cmd;//在弹出菜单的时候,这里是用户选择的cmdid,但这时候我们没弹出菜单,所以只能以verb来调用了,关于verb的更多信息请参考MSDN 
    else
    cmi.lpVerb = "properties";
    cmi.lpParameters = NULL;
    cmi.lpDirectory = NULL;
    cmi.nShow = SW_SHOWNORMAL;
    cmi.dwHotKey =NULL;
    cmi.hIcon = NULL;
    hr = icm1->InvokeCommand(&cmi);
    icm1->Release();

    }

    但是现在找不到目标的命令

    2015年8月20日 2:13
  • 你好,现在解决了么?
    2015年9月16日 7:42