0
我在Metatrader中編寫代碼並使用ShellExecuteW以Metatrader中編寫的html文件打開本地瀏覽器。如何解決ShellExecuteW中的拆分目錄名稱問題
除了當用戶安裝了他的Metatrader平臺的目錄是分割名稱目錄時,所有的工作都很完美。即:我的FX而不是MyFx。
如果是MyFx,則根本沒有問題,並且瀏覽器以打算顯示html文件的方式打開。
當使用分割名稱時,它將嘗試在eg: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
我試圖與&#160和& NBSP替換在該目錄中缺少的人物。也是通配符*和正斜槓。
如果替換被插入,生成地址並在瀏覽器如例如打開:文件:/// G:/我的& NBSP & nbspFX/MQL4/......,然後給出一個文件不發現錯誤。
有人請告知我應該傳入ShellExecuteW重新這條路徑來解決這個問題。
謝謝。
原因在於URLEncoding和HTML編碼的區別。例如, 是的HTML編碼,而在URL編碼中,它應該是%20。您需要使用正確的編碼(URL編碼)。 –