Tag: 快捷方式

获取C#中所有管理员的桌面路径

我需要为我的应用程序创建系统中所有管理员的桌面快捷方式。 我正在使用以下代码获取用户列表。 var identifier = new SecurityIdentifier(WellKnownSidType.BuiltinAdministratorsSid, null); GroupPrincipal group = GroupPrincipal.FindByIdentity(new PrincipalContext(ContextType.Machine), identifier.Value); foreach (Principal principal in group.Members) { Console.WriteLine(principal.Name); } 我需要以某种方式为每个用户获取桌面路径。 你能建议我解决方案吗? 非常感谢。

C#ShortCut路径修改

我创建了一个程序,它使用一些库生成通过打开文件对话框选择的特定EXE的快捷方式。 我让它工作,但我希望程序向Target路径添加一个参数,使它看起来像这样:( “E:\Cod4\iw3mp.exe” +Seta Map mp_crash )。 如何在”标记之后添加( + Seta Map mp_Crash )”部分而不删除它或破坏.exe的扩展名? 这是我写的添加参数的代码块: label1.Text = openFileDialog1.FileName; shortcut.TargetPath = label1.Text + ” Seta Map mp_crash”; shortcut.Save(); 此代码将seta部分添加到目标但它将破坏扩展,它将看起来像这样”E:\Cod4\iw3mp.exe Seta Map mp_crash ” 请帮忙。 这是完整的代码: using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using IWshRuntimeLibrary; using System.IO; namespace WindowsFormsApplication18 […]

C#如何将我的程序添加到上下文菜单?

我有ac#可执行文件(从Windows窗体应用程序创建),我希望能够将此文件添加到上下文菜单中。 此外,我应该指出,我需要能够将其添加到Windows XP,Vista和7。 感谢您的任何帮助,

C#文本框禁用快捷方式

我在我的Windows窗体应用程序中使用一个文本框,我需要禁用快捷键CTRL + I和CTRL + H. 我尝试了通过谷歌找到的许多不同的解决方案,但它不起作用。 我已经在我的应用程序中使用CTRL + 我作为自定义快捷方式,我不希望在我的文本框中通过此命令插入一个tabstop。 无论出于何种原因, CTRL + H就像按删除一样? 如果我在控件的属性中将“快捷方式已启用”设置为false,则CTRL + I和CTRL + H仍然有效。 然后禁用CTRL + C或CTRL + V. 如果我将“Shortcuts enabled”设置为false,我希望所有快捷方式都关闭。 我尝试了以下代码,我找到了某处,但它也没有阻止CTRL + I或CTRL + H. private void textBoxComment_KeyDown(object sender, KeyEventArgs e) { if ( e.Modifiers == Keys.Control ) { switch(e.KeyCode) { case Keys.C: case Keys.X: case Keys.V: case Keys.Z: case […]

如何以编程方式将访问密钥(快捷方式)添加到WPF ContextMenu?

我已经有以下内容: var myContextMenu = new System.Windows.Controls.ContextMenu(); var exitItem = new MenuItem(); exitItem.Header = “E_xit”; exitItem.Item.Click += new RoutedEventHandler(new System.EventHandler(ExitProgram)); myContextMenu.Items.Add(exitItem); 这会导致我的上下文菜单显示Exit菜单项,带有带下划线的“x”。 但是,按x不会做任何事情。 单击菜单项工作正常。 如何将事件与x键关联? 请注意,这必须在我的上下文中以编程方式完成。 我不能在前面的XAML中编写这个解决方案。

使用“开始”目录获取Windows .lnk快捷方式的目标

我试图检索Windows .lnk快捷方式的目标路径,但根据.lnk文件的属性,“目标”不是实际的文件路径: 我正在使用IWshRuntimeLibrary,我访问的快捷方式对象是IWshShortcut类型: WshShell shell = new WshShell(); IWshShortcut link = (IWshShortcut)shell.CreateShortcut(lnkFileName); // This returns “C:\Windows\Installer\{F843C6A3-224D-4615-94F8-3C461BD9AEA0}\PaintShopProExeIcon.ico” var targetPath = link.TargetPath; // This is the same as the “Start in” value in the image above var workingDir = link.WorkingDirectory; “link”对象的TargetPath属性不是实际.exe的位置:“C:\ Windows \ Installer {F843C6A3-224D-4615-94F8-3C461BD9AEA0} \ PaintShopProExeIcon.ico” 我可以从这个对象获取WorkingDirectory属性,这似乎与快捷方式的“Start in”属性相同,如上图所示。 我的问题是, 如果TargetPath不是实际的.exe路径 , 如何获得快捷方式打开的.exe文件的实际目标路径 ? 这些信息在哪里? 此示例中的实际目标路径是“C:\ Program […]

如何创建开始菜单快捷方式

我正在构建自定义安装程序。 如何在开始菜单中创建可执行文件的快捷方式? 这是我到目前为止所提出的: string pathToExe = @”C:\Program Files (x86)\TestApp\TestApp.exe”; string commonStartMenuPath = Environment.GetFolderPath(Environment.SpecialFolder.CommonStartMenu); string appStartMenuPath = Path.Combine(commonStartMenuPath, “Programs”, “TestApp”); // TODO: create shortcut in appStartMenuPath 我的目标是Windows 7。

创建文件夹名称具有unicode字符的快捷方式

我一直在使用以下代码动态创建快捷方式。 但是当文件夹名称具有像Thai,greek语言这样的unicode字符时,targetPath会抛出Argumentexception。 IWshRuntimeLibrary.WshShell shell = new WshShell(); IWshShortcut shortcut = (IWshShortcut)shell.CreateShortcut(shortcutLocation); shortcut.Description = “My shortcut description”; // The description of the shortcut shortcut.WorkingDirectory = currentPath; shortcut.TargetPath = targetFileLocation; // The path of the file that will launch when the shortcut is run shortcut.Save();

如何从C#打开“我的文档”和“我的电脑”文件夹?

我使用了两个GUID打开文件夹“ 我的电脑”和“ 我的文档” 。 Process.Start(“iexplore.exe”, “::{20d04fe0-3aea-1069-a2d8-08002b30309d}”); Process.Start(“iexplore.exe”, “::{450d8fba-ad25-11d0-98a8-0800361b1103}”); 但它会打开Internet Explorer,然后打开“ 我的电脑”和“ 我的文档 ”文件夹。

创建文件快捷方式(.lnk)

我一直在寻找一种在C#中创建文件快捷方式的简单方法,但我只找到了那样做的外部dll。 这实际上是相当令人惊讶的,没有内置的方法来做到这一点.. 无论如何,我知道lnk文件只是带有特定命令和给定路径的文本文件。 我想也许我可以创建一个文本文件(在代码中)将它的文本设置为正确的命令并将其扩展名更改为.lnk我尝试先手动执行此操作,但未能这样做。 有没有办法做这样的事情(或者可能是另一种简单的方法)来创建c#中某个路径的快捷方式? 为了清楚起见,通过快捷方式我的意思是一个.lnk文件,它导致文件 编辑:而文件我指的是我想要的任何文件,而不仅仅是我自己的应用程序的快捷方式 如果它不适合每个场景,我会编辑。 添加以下参考: Microsoft Shell控件和自动化 Windows脚本宿主对象模型 添加此命名空间: using Shell32; using IWshRuntimeLibrary; 接下来似乎工作: var wsh = new IWshShell_Class(); IWshRuntimeLibrary.IWshShortcut shortcut = wsh.CreateShortcut( Environment.GetFolderPath(Environment.SpecialFolder.Desktop) + “\\shorcut2.lnk”) as IWshRuntimeLibrary.IWshShortcut; shortcut.TargetPath = @”C:\Users\Zimin\Desktop\test folder”; shortcut.Save(); 希望它能帮助其他人,感谢您的关注。 另外,如果有一种创建文件的方法,请编写正确的命令,然后将其更改为lnk文件,请告诉我。