Electron windows下无法拖放文件打开

493 阅读1分钟

问题

项目中遇到一个奇怪的问题:开发模式下可以正常拖拽文件到界面里打开,以及通过右键打开文件,nsis一打包运行就不行。

经查,是windows下使用了管理员权限运行具有高级权限,拖文件属于低级权限所以不让拖。

解决方案

1.关闭UAC

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\EnableLUA

将该注册表改为0则关闭

注:关闭重启后可能还会变回1

2.nsis调整

nsis安装包运行时是管理员权限,安装完成自动运行就默认了使用管理员权限,可以调整为非管理员权限运行。

原代码

ExecShell "" "$INSTDIR\${PRODUCT_NAME}.exe"

调整后

System::Call 'shell32::ShellExecute(i 0, t"open", t"explorer.exe", t" /e,${PRODUCT_NAME}.exe", t"$INSTDIR\\", i 0)'

注: $INSTDIR\ 表示test.exe所在目录