WindowScreenShot问题 - 页 2

 
RaptorUK:

请显示日志文件中显示错误的部分 . . .
比如说。

05:39:33 T_AutoWindowShots GBPUSD,H1: 提醒:23:59:58trade_mode。T_ScreenShot, Schoted file open error:(GBPUSD 4103): 无法打开文件

05:43:51 T_AutoWindowShots GBPNZD,H1: Alert: 23:59:58trade_mode:T_ScreenShot, Schoted file open error:(GBPNZD 4103): 无法打开文件

05:43:51 T_AutoWindowShots GBPCAD,H1: Alert: 23:59:58trade_mode:T_ScreenShot, Schoted file open error:(GBPCAD 4103): 无法打开文件

 
ttechnik:
例如:

05:39:33 T_AutoWindowShots GBPUSD,H1: 提醒:23:59:58trade_mode。T_ScreenShot, Schoted file open error:(GBPUSD 4103): 无法打开文件

05:43:51 T_AutoWindowShots GBPNZD,H1: Alert: 23:59:58trade_mode:T_ScreenShot, Schoted file open error:(GBPNZD 4103): 无法打开文件

05:43:51 T_AutoWindowShots GBPCAD,H1: Alert: 23:59:58trade_mode:T_ScreenShot, Schoted file open error:(GBPCAD 4103): 无法打开文件

请把文件名添加到你打印出来/发出警报的内容中 . . . 你有足够的磁盘空间吗? 也许当你试图打开文件时,该文件还没有从WindowScreenShot()中关闭 . . . 你检查过该 文件是否存在吗? 它必须存在,否则WindowScreenShot()会返回-1,你会打印/发出另一个错误.

 

日志的名字是20140118.log

磁盘空间是足够的。

我试图在WindowScreen()之后打开。

当我检查 文件是否存在时,出现了错误。

WindowScreenShot()没有错误返回!但没有写出文件。

.....,我退出MT4并重新运行它,运行正常后

 
ttechnik:

日志的名字是20140118.log

不,当你试图打开它进行阅读时,失败的文件名称是什么? 请在你的Alert中添加文件名 变量 . . .

int handle = FileOpen(filename, FILE_BIN|FILE_READ); 
if (handle>-1)
    {
     error=GetLastError();
     if (error!=0) Alert(TimeToStr(TimeCurrent(),TIME_SECONDS)," trade_mode: ", trade_mode, " T_ScreenShot FileWrite1 filename: " filename, " , error: ( ",Symbol(),"  ", error,"): ",ErrorDescription(error));
     FileClose(handle);
    } 
 
RaptorUK:

不,当你试图打开它进行阅读时,失败的文件名称是什么? 请在你的Alert中加入文件名 变量。


好的,谢谢

我将检查 是否 再次出现 该故障
 
ttechnik:
RaptorUK:
你如何使它们独一无二?

string timestamp = TimeToStr(TimeCurrent(),TIME_SECONDS);
filename = filename + "_" + timestamp +  ".gif";

看来你的唯一文件名包含':'(zweipunkt)。

 
RaptorUK:

不,当你试图打开它进行阅读时,失败的文件名称是什么? 请在你的Alert中加入文件名 变量。


今天,它运行良好。

但现在在时间上是错误的。

文件名eg..:

Alert: 596588\WindowShots GBPCAD\2014 1\GBPCAD_2014-01-20 14-17-09.gif

 
Ovo:

似乎你的独特文件名中含有':'(zweipunkt)。


是的,我忘记粘贴整个代码了。


string timestamp = TimeToStr(TimeCurrent(),TIME_DATE )+" "+TimeToStr(TimeCurrent(),TIME_SECONDS);
  for (int i= StringLen(timestamp); i>0; i--)
    if (StringFind(timestamp,":",i)!=-1 || StringFind(timestamp,".",i)!=-1) timestamp= StringSetChar(timestamp, i, '-');
          
  string filename = mappa + CharToStr(92) + CharToStr(92) + Symbol();
  if (ticket!=0)      filename = filename + "_" + DoubleToStr(ticket,0);
  if (order!="")      filename = filename + "_" + order;
  if (type!=-1)       filename = filename + "_" + OrdertypeToString(type);
  if (trade_mode!="") filename = filename + "_" + trade_mode;
  
  filename = filename + "_" + timestamp +  ".gif";
 
RaptorUK:

不,当你试图打开它进行阅读时,失败的文件名称是什么? 请在你的Alert中加入文件名 变量。


你对我的问题有什么想法,谢谢?
 
ttechnik:

请问你对我的问题有什么想法?
我不知道,我想让你加入足够的调试信息,以便能够诊断出问题......但你似乎对这个想法很抵触。