在 .Net 中为 64 位计算机创建快捷方式 - 仅编译为 64 位应用程序 [重复]

2024-02-20

可能的重复:
在目录中创建应用程序快捷方式 https://stackoverflow.com/questions/234231/creating-application-shortcut-in-a-directory

有大量代码展示了如何在 .Net 中创建快捷方式,但它仅在编译为 32 位应用程序时才有效。您无法在 64 位应用程序中使用 IWshRuntimeLibrary.WshShell。

有谁知道如何在 64 位应用程序中创建快捷方式?

请注意,我并不是在安装时寻找一种方法。这是为了安装后的目的。

我知道这篇关于 SO 的文章(在 Windows 7 盒子(64 位)上从 vb.net 创建快捷方式 https://stackoverflow.com/questions/3037294/create-shortcut-from-vb-net-on-windows-7-box-64-bit),但这不是问题的正确答案。问题是64位的,对方给出了32位的答案,并说“只编译32位”。


您不需要使用特殊的库来创建快捷方式,您可以直接从 C# 或 VB.NET 程序使用 Shell32 自动化对象。开始使用项目 + 添加引用,浏览选项卡,选择 c:\windows\system32\shell32.dll

然后编写如下代码来创建 .lnk 文件:

    // Creating a link named "test" on the desktop
    string lnkDir = Environment.GetFolderPath(Environment.SpecialFolder.DesktopDirectory);
    string lnkName = "test";

    // Create an empty .lnk file so we can create an object for it
    string lnkPath = System.IO.Path.Combine(lnkDir, lnkName) + ".lnk";
    System.IO.File.WriteAllBytes(lnkPath, new byte[] { });

    // Initialize a ShellLinkObject for that .lnk file
    Shell32.Shell shl = new Shell32.ShellClass();
    Shell32.Folder dir = shl.NameSpace(lnkDir);
    Shell32.FolderItem itm = dir.Items().Item(lnkName + ".lnk");
    Shell32.ShellLinkObject lnk = (Shell32.ShellLinkObject)itm.GetLink;

    // We'll just dummy a link to notepad
    lnk.Path = Environment.GetFolderPath(Environment.SpecialFolder.System) + @"\notepad.exe";
    lnk.Description = "Anything goes here";
    lnk.Arguments = @"c:\sample.txt";
    lnk.WorkingDirectory = @"c:\";

    // And dummy an icon (it will the one used by cmd.exe)
    lnk.SetIconLocation(Environment.GetFolderPath(Environment.SpecialFolder.System) + "cmd.exe", 1);

    // Done, save it
    lnk.Save(lnkPath);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 .Net 中为 64 位计算机创建快捷方式 - 仅编译为 64 位应用程序 [重复] 的相关文章

  • 如何在 Visual Studio 中更改 Azure 数据库表的列顺序

    我整个下午都在寻找在 MS Visual Studio 2022 中重新排序 Azure 数据库表列的方法 没有运气 在其他应用程序中 可以通过拖动或剪切和粘贴轻松重新排列列 这里无能为力 此时 我什至不确定可以在 VS 中移动列 我只对
  • 当我使用 Image.FromFile() 时 FileNotFound

    我在这种情况下使用 Image FromFile string 方法 using System using System Collections Generic using System ComponentModel using Syste
  • “你好世界!!”在 .NET 4 中生成 3500 个页面错误

    我正在运行 Windows Vista 和 Visual Studio 2010 使用 NET 4 2 GB RAM 和大约 800 MB 可用空间 我创建了一个 Windows 窗体应用程序 但没有向其中添加任何代码 只需在发布模式下编译
  • 在一个数据访问层中处理多个连接字符串

    我有一个有趣的困境 我目前有一个数据访问层 它必须与多个域一起使用 并且每个域都有多个数据库存储库 具体取决于所调用的存储过程 目前 我只需使用 SWITCH 语句来确定应用程序正在运行的计算机 并从 Web config 返回适当的连接字
  • 从经典 ASP 调用 .Net C# DLL 方法

    我正在开发一个经典的 asp 项目 该项目需要将字符串发送到 DLL DLL 会将其序列化并发送到 Zebra 热敏打印机 我已经构建了我的 DLL 并使用它注册了regasm其次是 代码库这使得 IIS 能够识别它 虽然我可以设置我的对象
  • 使用 C# 中的 CsvHelper 将不同文化的 csv 解析为十进制

    C 中 CsvHelper 解析小数的问题 我创建了一个从 byte 而不是文件获取 csv 文件的类 并且它工作正常 public static List
  • 使用.Net/C# 计算集合的频率分布

    是否有一种快速 简单的方法来使用 Linq 或其他方式计算 Net 集合的频率分布 例如 任意长的 List 包含许多重复项 遍历列表并计算 跟踪重复次数的巧妙方法是什么 查找列表中重复项的最简单方法是将其分组 如下所示 var dups
  • HttpWebRequest/HttpResponse:如何在响应中发送数据?

    我有一个客户端和一个服务器 在客户端我有 HttpWebRequest request HttpWebRequest WebRequest Create http localhost fa Default aspx request Meth
  • SQLite .NET 性能,如何加快速度?

    在我的系统上 约 86000 个 SQLite 插入需要长达 20 分钟 意味着每秒约 70 个插入 我要做数百万 我怎样才能加快速度 对每一行的 SQLiteConnection 对象调用 Open 和 Close 会降低性能吗 交易有帮
  • 如何在完成之前从 ReplaySubject 获取最新值

    我需要一种方法来获取添加到 ReplaySubject 中符合特定条件的最新项目 下面的示例代码完成了我需要它做的事情 但感觉不是正确的方法 static void Main string args var o new ReplaySubj
  • 如何拦截 Boo 中的方法调用?

    红宝石有method missing Python有getattr Boo 是否提供了一些可以用来拦截方法调用的东西 是的 布有IQuackFu http docs codehaus org pages viewpage action pa
  • 时间跨度格式[重复]

    这个问题在这里已经有答案了 当您将时间跨度声明为以下形式时 如何优雅地格式化时间跨度以表示 1 小时 10 分钟 TimeSpan t new TimeSpan 0 70 0 我当然知道你可以为此做一些简单的数学计算 但我有点希望 NET
  • 防止重入并确保某些操作获取锁的正确方法是什么?

    我正在设计一个基类 当继承该基类时 它将针对多线程环境中的上下文提供业务功能 每个实例可能都有长时间运行的初始化操作 所以我想让这些对象可重用 为此 我需要能够 为这些对象之一分配上下文以允许其完成工作 防止对象在已有上下文的情况下被分配新
  • 家庭自动化图书馆[关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我是一名 C 开发人员 希望将家庭自动化作为一种 爱好 我做了一些研究 但想知道是否有人知道支持 In
  • 如何有效确保小数值至少有 N 位小数

    我想在进行算术运算之前有效地确保十进制值至少有 N 个位置 在下面的示例中 3 显然我可以格式化 0 000 然后解析 但它的效率相对较低 我正在寻找一种避免与字符串转换的解决方案 我尝试过以下解决方案 decimal d 1 23M d
  • 为什么两个不同的 Base64 字符串的转换会返回相等的字节数组?

    我想知道为什么从 base64 字符串转换会为不同的字符串返回相同的字节数组 const string s1 dg const string s2 dq byte a1 Convert FromBase64String s1 byte a2
  • .NET 中是否有内置函数可以对密码进行哈希处理?

    我看到这个问题加密 散列数据库中的纯文本密码 https stackoverflow com questions 287517 encrypting hashing plain text passwords in database 我知道我
  • 将 VSIX 功能添加到 C# 类库

    我有一个现有的单文件生成器 位于 C 类库中 如何将 VSIX 项目级功能添加到此项目 最终目标是编译我的类库项目并获得 VSIX 我实际上是在回答我自己的问题 这与Visual Studio 2017 中的单文件生成器更改 https s
  • IEnumerable 与 IReadOnlyList

    选择有什么区别IEnumerable
  • 如何防止用户控件表单在 C# 中处理键盘输入(箭头键)

    我的用户控件包含其他可以选择的控件 我想实现使用箭头键导航子控件的方法 问题是家长控制拦截箭头键并使用它来滚动其视图什么是我想避免的事情 我想自己解决控制内容的导航问题 我如何控制由箭头键引起的标准行为 提前致谢 MTH 这通常是通过重写

随机推荐

  • Java 中的“代码太大”编译错误

    Java 代码有最大长度限制吗 我写了一个超过10000行的函数 实际上 每一行都为一个数组变量分配一个值 arts bag 10792 newyorkartworld arts bag 10793 leningradschool arts
  • 如何将 Javascript 文件导入 Typescript

    我想知道如何从 Typescript 启动 Twitter Bootstrap carousel carousel 我必须实施jquery d ts修复 sign 调用 但我仍然收到错误 carousel 在 jquery d ts 中找不
  • 为什么“async/await”在我的情况下不起作用?

    我读到async await 但我有一个关键问题 首先 我解释一个旧的例子来展示我的问题的基础 然后我问我的确切问题 大家都知道 console log 1 console log 2 console log 3 Ex 123 这很简单 但
  • 在IIS7上启用跨域资源共享

    我最近遇到向另一个域发布 Javascript 请求的情况 默认情况下 不允许 XHR 发布到其他域 按照以下指示http enable cors org http enable cors org 我在其他域上启用了此功能
  • 如何在 VS Code 中调试时关闭警告?

    我正在使用 XDebug 在 VS Code 中调试 PHP 应用程序PHP Debug扩展名 并收到如下错误 我知道问题是什么以及如何解决它 但解决方案是如此巨大 以至于修复此类错误是我目前无法做到的 我想开始使用 VS Code 进行
  • AutoTokenizer.from_pretrained 无法加载本地保存的预训练分词器 (PyTorch)

    我是 PyTorch 的新手 最近我一直在尝试使用 Transformers 我正在使用 HuggingFace 提供的预训练分词器 我成功下载并运行它们 但如果我尝试保存它们并再次加载 则会发生一些错误 如果我使用AutoTokenize
  • Heroku/Django 部署:为什么我在成功部署和静态收集时收到错误 500?

    几个月来 我一直在努力在 Heroku 上部署我的第一个 Django 站点 我正在成功构建git push heroku master并使用成功收集静态文件heroku run python manage py collectstatic
  • 如何使 gremlin_python DriverRemoteConnection 对每次提交都有超时和重试限制?

    免责声明 我们目前正在使用gremlinpython 3 4 8我相信最近的版本中已经解决了其中一些问题 但我不确定 一般来说 这似乎是一个非常活跃的存储库 在过去两个最新版本日志 当前为 3 4 10 中进行了一些相关更改 很高兴根据需要
  • 使用 VB 6.0 解析远程 URL 处的 xml 文档

    我正在尝试使用 Visual Basic 6 0 解析驻留在远程服务器上的 xml 文件的内容MSXML2 DOMDocument class 我正在使用Load的方法MSXML2 DOMDocument类来传递 url url 的形式为h
  • 在 gdb 中查看 ASCII 寄存器内容

    假设 我现在处于这个位置 我想以ascii格式查看cl ch cx ecx等的内容 该怎么办 下面是子程序中显示的内容layout asm命令 RemCharCodeFromAToB standard entry sequence push
  • 可以对图像图标进行分层吗?

    我想知道是否可以在 Java 中对图像图标进行分层 我将使用 GIF 图像 并且将有一个图像图标网格代表我的 JPane 的 背景 当特定条件成立时 我需要能够在其他图像之上添加具有透明度的图像 问候 杰克 亨特 是的 这是可能的 有两种正
  • 使用 JavaScript 构建 XLSX 文件

    我正在尝试使用 JavaScript 和一些数据库查询结果构建 XLSX 文件 我必须使用 JavaScript 因为服务器后端仅提供 JavaScript 接口来使用 并且它不喜欢 jQuery 现在 我似乎已经发现了一些东西来实际创建要
  • 在 WooCommerce 中添加隐藏结帐字段?

    我想包含一个指向通过 WooCommerce 提交结帐表单的当前用户的个人资料的链接 也就是说 自动将当前用户的作者链接放置在隐藏字段中 如下所示 example com author username 我想通过在结帐表单中添加隐藏字段来实
  • Bootstrap 4从右到左自定义文件输入

    我正在尝试使上传文件输入方向从 bootstrap 4 从右到左 但到目前为止我尝试过的都不起作用 我还尝试改变不同标签的方向 div class form group div class col md 4 div class custom
  • 我需要有关 NoSQL/MongoDb 和数据/模型结构的建议

    最近我正在探索NoSQL 数据库 我需要关于如何针对给定问题以最优化 最有效的方式存储数据的建议 我现在的目标是 MongoDB 不过 它应该与 CouchDB 相同 假设我们有这 3 个模型 Story id title User id
  • 字符串到二进制,反之亦然:扩展 ASCII

    我想通过将字符串放入字节数组中将其转换为二进制 String getBytes 然后存储每个字节的二进制字符串 Integer toBinaryString bytearray 在 String 中 然后我想通过转换回普通字符串Byte p
  • 如何获取用户输入的名称并在 edittext 中搜索相应位置

    我可以将 Google 地图放入我的 Android 手机中 我设置了谷歌地图的搜索选项 如果用户给出位置并单击按钮搜索意味着它会在谷歌地图中找到该位置 现在我想当用户在 Edittext 中给出位置名称时显示相对位置 请给我任何参考 i
  • 用于图像过滤的 3d CUDA 内核索引?

    我有一个图像特征矩阵A是n m 31矩阵用于过滤的填充 我有B作为对象过滤器k l 31 我想获得一个输出矩阵 C 为 p r 31 其大小为图像 A 的大小 无填充 我尝试编写 CUDA 代码来在 A 上运行过滤器 B 并获得 C 我假设
  • Python:s3 中的递归 glob

    我试图从 s3 获取子目录和子目录的子目录 等等 内的 parquet 文件路径列表 如果它是我的本地文件系统 我会这样做 import glob glob glob C Users user info parquet recursive
  • 在 .Net 中为 64 位计算机创建快捷方式 - 仅编译为 64 位应用程序 [重复]

    这个问题在这里已经有答案了 可能的重复 在目录中创建应用程序快捷方式 https stackoverflow com questions 234231 creating application shortcut in a directory