心中的沉默 发表于 2021-12-6 14:19

如何用资源管理器打开程序并传递参数

本帖最后由 心中的沉默 于 2021-12-7 16:03 编辑

易语言代码
执行 (#打开文件, “explorer.exe”, 局_程序路径, , )
怎么传递参数进去呢?这个方法只能用资源管理器打开程序,不知道怎么传参进去
想用“explorer.exe”资源管理器来运行其他程序,实现降权运行其他程序,但是用给资源管理器传递路径参数的方法,没办法再给我要运行的程序传递参数

chaifengbox 发表于 2021-12-6 14:35

不可以这样吗?

执行 (#打开文件, 局_程序路径, 参数, , )

心中的沉默 发表于 2021-12-6 14:39

chaifengbox 发表于 2021-12-6 14:35
不可以这样吗?

执行 (#打开文件, 局_程序路径, 参数, , )

要降权运行,被运行的程序不需要管理员权限

chaifengbox 发表于 2021-12-6 14:44

好的吧,这个我确实不是很明白。我对易语言没那么了解。

心中的沉默 发表于 2021-12-6 14:46

chaifengbox 发表于 2021-12-6 14:44
好的吧,这个我确实不是很明白。我对易语言没那么了解。

原理都一样,只要搞明白原理就行了,有其他方法降权运行程序吗

Run丶Away 发表于 2021-12-6 14:47

我有同样的需求 我自己程序需要启动Potplayer同时命令行传递播放地址但如果主程序是管理员身份运行的话 新启动的Potplayer也是管理员权限运行的 没法拖放文件到Potplayer窗口
于是我只能通过笨方法实现

我单独写了一个 load.exe 程序用来进行中转,load.exe打开之后就会读取同目录load.ini里面的 要运行的程序路径 以及命令行参数 然后 运行( 程序路径+"" +命令行参数)

主程序里面把load.exe 写到临时目录 然后写配置 load.ini也写到临时目录 然后再 执行 (#打开文件, “explorer.exe”, load程序路径, , ) 延时几秒删掉load.ini 以免下次执行load.exe时重复操作

总的来说 就是 主程序 调用explorer启动我的load程序 load程序再带参数启动目标程序

心中的沉默 发表于 2021-12-6 14:54

Run丶Away 发表于 2021-12-6 14:47
我有同样的需求 我自己程序需要启动Potplayer同时命令行传递播放地址但如果主程序是管理员身份运行的话...

我也打算这样写了,很多方法尝试失败,还有一种方法,就是写批处理,然后用资源管理器运行这个批处理,由批处理传递参数,但是运行的程序很多的时候,就会出错。
目前没有找到完美的解决方法。

心中的沉默 发表于 2021-12-6 16:40

何故 发表于 2021-12-6 16:28
看一下我的方法咋样
我不用中专程序,用explorer自带的快捷方式解析就可以
https://www.52 ...

或者有没有除资源管理器以外的降权运行其他程序的方法

心中的沉默 发表于 2021-12-6 17:15

何故 发表于 2021-12-6 16:43
cmd.exe /c "O:\Windows\SysWOW64\notepad.exe" 我是好人
cmd.exe explorer.exe /c "O:\Windows\SysWOW6 ...

直接cmd 还是管理员,必须要用资源管理器 去运行

Run丶Away 发表于 2021-12-6 18:24

何故 发表于 2021-12-6 16:28
看一下我的方法咋样
我不用中专程序,用explorer自带的快捷方式解析就可以
https://www.52 ...

我考虑过这个方法 不知道是不是黑月的bug
创建快捷方式 这个指令用黑月编译之后是不会生效的
页: [1] 2 3
查看完整版本: 如何用资源管理器打开程序并传递参数