当前位置: 首页 > 编程语言 > C#

设置程序必须在启动时从安装程序运行分享

时间:2023-04-11 01:43:47 C#

C#学习教程:安装程序必须在启动时从安装程序运行安装的程序运行良好,但我的客户希望应用程序在窗口中启动(它是一个“始终在最前面”的工具栏,可帮助他们管理呼叫)。我想创建一个“类安装程序”并在注册表中插入一个键。我有两个问题:第一:如何找到可执行路径?它可以在安装之间更改。我在某处找到了Application.ExecutablePath,但它似乎在Application.Window.Forms中,所以我认为它与WPF不兼容其次:我需要将此密钥插入本地计算机的注册表中。WindowsInstaller中有没有办法指定用户必须具有管理员权限?这是我开始使用的代码:RegistryKeyrkApp=Registry.LocalMachine.OpenSubKey("SOFTWARE\Microsoft\Windows\CurrentVersion\Run",true);rkApp.SetValue("CstStart",???);非常感谢你的帮助!编辑:我发现我可以通过以下方式将一些数据传递给我的自定义操作:CustomActionData中的/DIR="[TARGETDIR]"。通常它说我可以通过this.Context.Parameters["DIR"];检索它。但是....似乎在我的安装程序类中,this.Context为空?EDIT2:上下文是空的,因为我在构造函数中这样做,我现在正在这个事件中这样做。AfterInstall我现在得到一个上下文,它似乎包含一个包含我需要的路径的var“assemblypath”。我的假设是您正在此处安装项目......一种方法-我并不是说这是最好的,但它可能是最简单的-是执行以下操作:在“文件系统”选项卡中,右键单击“目标计算机上的文件系统”、“添加特殊文件夹”、“用户的启动文件夹”等文件夹将显示在列表中。接下来,获取项目输出的快捷方式(通过右键单击)并将该快捷方式拖到“启动”文件夹中。最后,由于您希望所有用户都可以使用此功能,请进入部署项目属性并将“InstallAllUsers”设置为true。现在,这种方法有一个警告,因为应用程序不会在Windows启动时启动,而是在有人登录时启动。根据您对项目(UI应用程序)的评价,这可能没问题。如果你真的想破解注册表,你可以考虑创建一个自定义操作DLL。在这里你可以写你喜欢的东西,在安装过程结束时,安装程??序将调用你的dll,这样你就可以做你的事情了。您可以将可执行文件的路径作为参数传递给dll(您可以从安装程序对话框中获取它,而不是从任何对象中获取)。我不会详细介绍这个,因为网络上肯定有很多这样的东西。您应该知道,有一些信息可以传递到dll中——如果没记错的话,可能低至256个字符。您可能只走一条路,但是当您开始做更多事情时...关于检测用户是否是本地管理员,这有点棘手,因为自定义操作dll在安装结束时运行,而不是在安装开始时运行-所以你可以编写代码来找出当前用户在哪些组中,但你可能会在代码运行之前被炸毁。我不相信-至少在Microsoft安装项目中-有可能知道这一点。以上是C#学习教程:安装程序必须在启动时从安装程序中运行。分享的所有内容,如果对大家有用,需要进一步了解C#学习教程,希望大家多多关注——本文来自网络收集,不代表立场,如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处: