我在 Metatrader 中编码并使用 ShellExecuteW 打开本地浏览器,其中包含在 Metatrader 中编写的 html 文件。
除非用户安装了 Metatrader 平台的目录是拆分名称目录,否则一切正常。即:我的 FX 而不是 MyFx。
如果是 MyFx,则完全没有问题,浏览器会按预期打开并显示 html 文件。
当使用拆分名称时,它将尝试在例如:file:///G:/My 处打开,并且永远看不到地址的其余部分。
相关代码如下。用户只输入文件的名称,例如:VisualizeV1,这就是存在连接等的原因,但这不是问题。
string newtpath = TerminalPath() ;
// outputs G:\MyFX
string MT4_file_folder =newtpath+"/MQL4/Files/";
// outputs G:\MyFX/MQL4/Files/
filesuffix=StringConcatenate("_",Symbol(),"_",TimeFrameStr,"_",fname_rpt_date);
// Outputs BrookyVisualize/VisualizeV1___EURUSD_H1__yr2014_mth6_dy19_hr23
fname=StringConcatenate(filename,filesuffix,".html");
// Outputs BrookyVisualize/VisualizeV1___EURUSD_H1__yr2014_mth6_dy19_hr23.html
file2find=StringConcatenate("file://",MT4_file_folder,visualize_folder,fname);
// Outputs G:\MyFX/MQL4/Files/BrookyVisualize/VisualizeV1___EURUSD_H1__yr2014_mth6_dy19_hr23.html
ShellExecuteW(0,NULL,Your_Internet_Browser,file2find,NULL,5);
// Opens firefox at address file:///G:/MyFX/MQL4/Files/BrookyVisualize/VisualizeV1___EURUSD_H1__yr2014_mth6_dy19_hr23.html
我尝试用 和 替换目录中缺少的字符。还有通配符 * 和正斜杠。
如果插入了替换,地址会生成并在浏览器中打开,例如:file:///G:/My FX/MQL4/ ......然后给出一个文件未找到错误。
有人可以告诉我应该将什么传递给 ShellExecuteW 重新这条路径来解决这个问题。
谢谢你。