나는 오류가 점점 오전 :이 조건'다른 프로세스에서 파일을 사용 중이므로 프로세스가 파일에 액세스 할 수 없습니다.'오류가 발생합니다.
if (dt[playback_iterator].iden == this.event_id)
사실이 아닌 경우
private void timer2_Tick(object sender, EventArgs e)
{
StreamWriter sw1 = new StreamWriter("E:\\testing\\check1.txt");
sw1.Flush();
if (dt[playback_iterator].iden == this.event_id)
{
foreach (Type type in asm1.GetTypes())
{
if (type.IsSubclassOf(typeof(System.Windows.Forms.Form)))
{
System.Windows.Forms.Form f = (System.Windows.Forms.Form)Activator.CreateInstance(type);
foreach (Control ctrl in f.Controls)
{
if (ctrl.Handle.ToInt32() == dt[playback_iterator].hndl)
{
if (ctrl.BackColor.R == this.r_comp && ctrl.BackColor.G == this.g_comp && ctrl.BackColor.G == this.g_comp)
{
sw1.WriteLine("verification point was set and the test passed");
/*success ob = new success();
ob.Show();*/
}
else
{
sw1.WriteLine("verification point test failed");
}
}
}
}
sw1.Close();
if (dt[playback_iterator].hndl == -1 && dt[playback_iterator].x == -1 && dt[playback_iterator].y == -1)
{
timer2.Enabled = false;
}
MoveMouse(dt[playback_iterator].hndl, dt[playback_iterator].x, dt[playback_iterator].y);
if (dt[playback_iterator].click_detect.Equals("yes"))
{
ClickMouse(MonkeyButtons.btcLeft, dt[playback_iterator].x, dt[playback_iterator].y, 0, 0);
}
if (dt[playback_iterator].word != "")
{
++count;
StringBuilder wd = new StringBuilder(dt[playback_iterator].word);
SetForegroundWindow(dt[playback_iterator].hndl);
SendKeys.Send(dt[playback_iterator].word);
}
playback_iterator++;
}
}
}
닫기 notepad :) – Reniuz
오류는 당신이 알아야 할 것을 말합니다. 이미 다른 프로세스에서 사용됩니다. 메모장의 창에서 파일을 열어 보거나 다른 응용 프로그램에서 파일을 이미 사용하고있는 것처럼 할 수도 있습니다. – SimpleVar
모르겠지만 foreach() 루프 내에서 파일 핸들러를 닫는 것처럼 보이므로 두 번째 반복에서 모든 쓰기 시도가 실패하게됩니다. – Shai