如何通过代码在Windows 10的“快速访问”中添加快捷方式链接?

时间:2015-08-11 12:23:41

标签: windows-10 favorites

我想在Windows 10中将其中一个文件夹位置的快捷方式链接添加到“快速访问”。

对于Windows 7& Windows 8,我曾经把我的快捷方式链接放在文件夹“C:\ Users \ user_name \ Links”&它向我显示了左侧收藏夹的快捷方式。所以我想为Windows 10做同样的事情。

我直接复制捷径&粘贴到快速访问的位置。但它仍然没有显示在快速访问的左侧面板中。 据我所知,快速访问有两个选项:1。常用文件夹& 2.频繁的文件。

那么我需要在哪个位置放置该快捷方式链接,以便它显示在左侧面板的“快速访问”部分中?

我还想问一下,他们在Windows 10的左侧面板中添加了“OneDrive”链接?那么是否有任何注册表项或任何特定位置?

3 个答案:

答案 0 :(得分:1)

您可以通过此PowerShell脚本执行此操作:

$o = new-object -com shell.application
$o.Namespace('c:\Folder').Self.InvokeVerb("pintohome")

答案 1 :(得分:0)

我没有找到合适的解决方案。 但我为我的问题应用了解决方法。 我在快速访问位置(\ Links)创建了文件夹。并使用mkilink cmd我将它的符号链接更改为目标文件夹。我使用Process在C#代码中使用cmd提示符使用mklink。

答案 2 :(得分:0)

我使用以下代码在c:\ users \ user_name \ links创建文件夹快捷方式,它在Windows 7& 8但在Windows资源管理器中的Windows 10快速访问链接下无法看到它。

string sLinkFileName = "c:\users\user_name\links\\" + DefineString.AppName + ".lnk";
            FileInfo objfiLinkFile = new FileInfo(sLinkFileName);
            if (objfiLinkFile.Exists)
            {
                try
                {
                    objfiLinkFile.Delete();
                }
                catch (Exception ex)
                {
                    Logger.Log(LoggingLevel.Info, MethodBase.GetCurrentMethod().Name, string.Empty, ex);
                }
            }

            //Place a shortcut to the file in the special folder 
            objfiLinkFile.Refresh();
            if (objfiLinkFile.Exists)
            {
                Logger.Log(LoggingLevel.Info, MethodBase.GetCurrentMethod().Name, "Old link file still exists.");
            }
            // Create a shortcut in the special folder for the file
            // Making use of the Windows Scripting Host
            IWshRuntimeLibrary.WshShell shell = new IWshRuntimeLibrary.WshShell();
            IWshRuntimeLibrary.IWshShortcut link = (IWshRuntimeLibrary.IWshShortcut)shell.CreateShortcut(objfiLinkFile.FullName);
            link.TargetPath = Utils.msApplicationRootPath;
            link.WindowStyle = 1;
            link.Description = string.Format(DefineString.m00025, DefineString.AppName);
            link.IconLocation = System.IO.Path.GetDirectoryName(Assembly.GetEntryAssembly().Location) + "\\RootFolder.ico";
            link.Save();

我也试着像你提到的那样打电话给mklink;但它不起作用。不幸的是,我们没有对用户桌面的任何直接控制。 mklink命令需要管理员权限吗?您用哪个mklink命令来解决问题。非常感谢您的帮助。

Process process = new Process();
            ProcessStartInfo startInfo = new ProcessStartInfo();
            startInfo.WindowStyle = ProcessWindowStyle.Hidden;
            startInfo.FileName = "cmd.exe";
            startInfo.Arguments = string.Format(@"/C mklink {0} {1}", sLinkFileName, Utils.msApplicationRootPath);
            process.StartInfo = startInfo;
            process.Start();