美文网首页
electron 在windows无法拖放文件,出现禁止标志的问

electron 在windows无法拖放文件,出现禁止标志的问

作者: 艾伦叔叔 | 来源:发表于2018-04-05 13:34 被阅读0次

近期项目要用electron中做一个拖放文件上传的功能,早前试验过是没有问题的,但是昨天出现了一个诡异的现象:从文件管理器拖文件进来后,鼠标图案变成禁止的标志,松开后也没有触发drop事件。

搜索了一番解决办法,很多人在讲preventDefault的问题。很显然不是一回事情,事件完全没有触发,哪里有default可以prevent啊。。。

尝试重建项目试试drop事件也没有成功,这个就很诡异了。。

又尝试在mac上建工程,发现drop事件可以触发,可问题是早前试验成功的时候是在windows上搞定的。。

思索了一下人生之后又开始搜索之路。

找到问题根源如下:

https://github.com/electron/electron/issues/2329

github一个哥的回答

这个哥说在拖动的时候遇到一个icon不允许他拖放,他发现他是在用管理员模式运行npm的时候才会有这个问题,如果他不用管理员模式,就可以正常拖拽!(看来还真的是windows的坑)

接下来这个链接,说明了windows的安全机制导致无法拖拽的问题

https://blogs.msdn.microsoft.com/patricka/2010/01/28/q-why-doesnt-drag-and-drop-work-when-my-application-is-running-elevated-a-mandatory-integrity-control-and-uipi/

有人提问在右键管理员模式下打开记事本,就无法拖放文件进去

UAC(从vista开始就存在)会将windows的不同进程分成不同的权限级别,Explorer(文件管理器)正常是运行在MIC级别,一般情况下electron的程序也是运行在MIC级别,文件拖拽可以发生在同一级别之间,或者从高级别-->拖到-->低级别的进程。但如果你是是用管理员权限运行你的electron程序,那么文件拖拽就会被禁止,因为文件管理器的级别没有你管理员级别高。

解决办法就是不要用管理员权限调试/运行electron应用。

相关文章

网友评论

      本文标题:electron 在windows无法拖放文件,出现禁止标志的问

      本文链接:https://www.haomeiwen.com/subject/mnnrhftx.html