添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
创作灵感:

最近使用electron开发应用时,有个需求是要唤起自带的小工具,是个exe,但这个exe直接双击打开时是需要管理员权限的,使用以下代码会报错,唤醒不了exe

const child = require('child_process')
const exePath = 'your exe path'
child.spawn(exePath)

原因是权限不足,使用以下方法可成功唤起:

方法一 使用child.exec,需要添加以下配置项
const child = require('child_process')
const path = 'your exe path'
const workerProcess = child.exec(path, { sudo: true, admin: true })
workerProcess.on('close', data => {
  console.log(data)
workerProcess.on('error', data => {
  console.log(data)
方法二 shell.openExternal
const shell = require('electron').shell
const path = 'your exe path'
shell.openExternal(path, { sudo: true, admin: true }).then(() => {
  console.log('成功打开')
}).catch(() => {
  console.log('打开失败')
方法三 在vue.config.js配置必须要以管理员权限启动,后续就不用单独写了
module.exports = {
  pluginOptions: {
    electronBuilder: {
      builderOptions: {
        win: {
          target: 'nsis',
          requestedExecutionLevel: 'requireAdministrator' // 请求管理员权限
const child = require('child_process')
const path = 'your exe path'
const workerProcess = child.exec(path)
workerProcess.on('close', data => {
  console.log(data)
workerProcess.on('error', data => {
  console.log(data)
                    最近使用electron开发应用时,有个需求是要唤起自带的小工具,是个exe,但这个exe直接双击打开时是需要管理员权限的,使用以下代码会报错,唤醒不了exe。原因是权限不足,需要添加以下配置项才可成功唤起,而且需要用child.exec。
				
即使在移动端和云端大行其道而,桌面端日渐落末的现在,我的心中仍然为桌面应用留有一个特殊的位置。和Web应用比起来桌面应用的优点还是很多的:只要把它们放在开始菜单栏或者dock上,你就能随时打开它们;还可以通过alt-tab或者cmd-tab切换应用;和操作系统之间的交互更良好(快捷键,通知栏等)。使用JavaScript开发桌面应用意味着在打包(packageapplication)的时候你会需要根据操作系统的不同发出不同的命令。这一行为是将原生桌面应用兼容不同平台的概念抽象出来,方便维护应用。现在,我们可以借助Electron或者NW.js开发一个桌面应用。其实这两者提供的或多或少差不多的特
基于electron制作一个node压缩图片的桌面应用 下载地址:https://github.com/zenoslin/imagemin-electron/releases 项目源码Github:https://github.com/zenoslin/imagemin-electron 我们来整理一下我们需要做什么: 压缩图片模块 获取文件路径 桌面应用生成 我们需要使用imagemin这个库来压缩图片,这里我们把这个库封装成压缩模块。 const imagemin = require('imagemin') const imageminMozjpeg
基于OS本机UUID / GUID的模块,用于内部需求。 所有其他方法都要求提升权限或很大程度上取决于硬件组件,但是该方法总结了选择最可靠的唯一标​​识符的方法 Win32 / 64在注册表HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Cryptography使用注册表项MachineGuid (可由管理员更改,但后果不可预测) 它是在操作系统安装期间生成
如果你在 Electron 应用程序中发布后发现没有管理员权限,你可以尝试以下方法: 1. 在你的应用程序的 package.json 文件中,添加 "build" 配置项,设置 "win" 的 "requestedExecutionLevel" 为 "requireAdministrator"。这将弹出 UAC 提示框,要求用户以管理员身份运行程序。 ```json "build": { "win": { "requestedExecutionLevel": "requireAdministrator" 2. 如果你的应用程序需要在启动时以管理员身份运行,可以使用 `runas` 模块。在应用程序的主进程中,使用 `runas` 模块来启动你需要以管理员身份运行的进程。 ```js const { spawn } = require('child_process'); const runas = require('runas'); // 以管理员身份运行命令 const cmd = spawn('cmd', ['/c', 'echo hello'], { shell: true, stdio: 'inherit' runas(cmd.spawnargs.join(' '), { admin: true }, (err) => { if (err) { console.error(err); 3. 如果你的应用程序需要在运行时以管理员身份进行某些操作,可以使用 `sudo-prompt` 模块。该模块可以弹出 UAC 提示框,要求用户以管理员身份运行操作。 ```js const sudo = require('sudo-prompt'); const options = { name: 'My Electron App' // 以管理员身份运行操作 sudo.exec('echo hello', options, (err, stdout, stderr) => { if (err) { console.error(err); 以上是几种解决 Electron 应用程序没有管理员权限的方法,你可以根据你的具体需求选择合适的方法。