Winapi ShellExecuteEx的动词;openas";但是一次(不要改变默认值)

Winapi ShellExecuteEx的动词;openas";但是一次(不要改变默认值),winapi,Winapi,我正在使用ShellExecuteEx打开一个带有Windows“打开方式”对话框的路径 为此,我将lpVerb设置为openas,并将fMask设置为SEE\u MASK\u INVOKEIDLIST。然而,这不是“一次性”的事情。在某些情况下(如hardeive上图像文件的路径),它会显示一个复选框(但默认情况下总是选中): 但是,如果我告诉它打开URL,它不会提供此复选框,它会更改: 理想情况下,我希望有一种方法可以显示复选框,但默认情况下,对于所有类型的路径(url或文件),它都是未

我正在使用
ShellExecuteEx
打开一个带有Windows“打开方式”对话框的路径

为此,我将
lpVerb
设置为
openas
,并将
fMask
设置为
SEE\u MASK\u INVOKEIDLIST
。然而,这不是“一次性”的事情。在某些情况下(如hardeive上图像文件的路径),它会显示一个复选框(但默认情况下总是选中):

但是,如果我告诉它打开URL,它不会提供此复选框,它会更改:

理想情况下,我希望有一种方法可以显示复选框,但默认情况下,对于所有类型的路径(url或文件),它都是未选中的

以下是我的代码(js ctypes):


系统决定如何执行此操作。当然,你只是让系统负责。该死,在打开链接时无法显示复选框?:(用户正在请求一次性“打开方式”功能,例如,当他们想在另一个浏览器中打开某个内容进行测试时,等等
    var sei = ostypes.TYPE.SHELLEXECUTEINFO();
    sei.cbSize = ostypes.TYPE.SHELLEXECUTEINFO.size;
    sei.lpFile = ostypes.TYPE.LPCTSTR.targetType.array()(aPath);
    sei.lpVerb = ostypes.TYPE.LPCTSTR.targetType.array()('openas');
    sei.fMask = ostypes.CONST.SEE_MASK_INVOKEIDLIST;
    sei.nShow = ostypes.CONST.SW_SHOWNORMAL;

    var rez_ShellExecuteEx = ostypes.API('ShellExecuteEx')(sei.address());