【问题标题】:Pin to/Unpin from Taskbar and Start Menu从任务栏和开始菜单固定/取消固定
【发布时间】:2012-10-08 12:46:11
【问题描述】:

我需要在我的应用程序(使用 .Net framework 3.5 开发)中提供“固定到任务栏”、“固定到开始菜单”、“从任务栏取消固定”和“从开始菜单取消固定”功能。目前我已经使用下面的代码 sn-p 实现了该功能:

Dim verbs As FolderItemVerbs = link.Verbs()
For i As Integer = 0 To verbs.Count - 1
  Dim verb As FolderItemVerb = verbs.Item(i)
  Dim verbName As String = verb.Name.Replace("&", String.Empty)
  If (verbName.Equals("pin to taskbar")) Or (verbName.Equals("unpin from taskbar")) Then
  ‘If (verbName.Equals("Pin to Start Menu")) Or (verbName.Equals("Unpin from Start Menu")) Then
    verb.DoIt()
  End If
Next

代码运行良好,但就我而言,我的应用程序广泛分布在世界各地,因此使用不同的语言环境设置(不同的语言)运行应用程序非常普遍。上面的代码有这个限制,它不适用于所有不同的语言(例如法语、德语等)。您能否帮我实现与语言无关的固定和取消固定功能。

【问题讨论】:

  • 对不起,我听不懂你想说什么
  • Microsoft 积极劝阻程序化固定/取消固定。这意味着由用户手动完成。
  • 企业 IT 部门应该如何管理这种体验?例如,我们有数千台登录的信息亭机器,我们希望能够在没有“用户”的情况下以编程方式将磁贴列入黑名单/白名单/分组。
  • 您可以在 PowerShell 中执行此操作,但我在 C#、VB 中尝试过,但每次都失败了... 脚本 PS:gallery.technet.microsoft.com/scriptcenter/…(要固定到现代 UI,您必须在 $verbs 处添加 51201)

标签: .net vb.net .net-3.5


【解决方案1】:

如 cmets 中所述,您不应该这样做。

我无权访问操作系统来确认这一点,但您应该在注册表中找到这些字符串,或者,为了避免变得那么容易,它们可能只在资源中。

【讨论】:

    【解决方案2】:

    有效,试试这个:

        [DllImport("kernel32.dll")]
        private static extern IntPtr LoadLibrary(string dllName);
        [DllImport("user32.dll", CharSet = CharSet.Auto)]
        static extern int LoadString(IntPtr hInstance, uint uID, StringBuilder lpBuffer, int nBufferMax);
    
        int MAX_PATH = 255;
        var actionIndex = pin ? 5386 : 5387; // 5386 is the DLL index for"Pin to Tas&kbar", ref. http://www.win7dll.info/shell32_dll.html
        StringBuilder szPinToStartLocalized = new StringBuilder(MAX_PATH);
        IntPtr hShell32 = LoadLibrary("Shell32.dll");
        LoadString(hShell32, (uint)actionIndex, szPinToStartLocalized, MAX_PATH);
        string localizedVerb = szPinToStartLocalized.ToString();
    
    If (verbName.Equals(localizedVerb )) Or (verbName.Equals(localizedVerb )) Then
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-08-28
      • 1970-01-01
      • 1970-01-01
      • 2014-03-03
      • 1970-01-01
      • 2015-02-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多