簡體   English   中英

固定到/從任務欄和開始菜單取消固定

[英]Pin to/Unpin from Taskbar and Start Menu

我需要在我的應用程序(在.Net Framework 3.5中開發)中提供“固定到任務欄”,“固定到開始菜單”,“從任務欄取消固定”和“從開始菜單取消固定”功能。 目前,我已經使用以下代碼段實現了此功能:

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

代碼可以正常工作,但就我而言,我的應用程序廣泛分布於世界各地,因此使用不同的語言環境設置(不同的語言)運行應用程序非常普遍。 上面的代碼有這樣的限制,即它不適用於所有不同的語言(例如法語,德語等)。 能否請您幫我,我將如何實現與語言無關的固定和取消固定功能。

如評論中所述,您不應該這樣做。

我無權訪問操作系統來確認這一點,但是您應該在注冊表中找到字符串,或者為了避免變得如此簡單,它們可能僅存在於資源中。

它有效,請嘗試以下操作:

    [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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM