관리 양식 ('adminForm')과 다른 양식 ('userForm')이 포함 된 winforms 응용 프로그램이 있습니다. 설정된 시간 간격으로 실행합니다.Form1이 'MainWindowTitle'을 사용하지 않고 열려있는 동안 Form2가 열리지 않도록하십시오.
adminForm이 열려있을 때 userForm이 열리지 않게하려면 어떻게합니까?
는 최근까지 userFrom 같은 코드의 'MainWindowTitle'값을 이용하여 개구 방지 하였다
"XXXXX"는 adminForm.Text 값인 // Retrieving all running processes for checking admin interface running or not
Process[] objArrPrs = Process.GetProcesses();
foreach (Process objProces in objArrPrs)
{
string strMainWindowTitle = string.Empty;
strMainWindowTitle = objProces.MainWindowTitle.ToString();
if (strMainWindowTitle != string.Empty || strMainWindowTitle != "")
{
// Retrievig process name
string strProcess = objProces.ProcessName;
if ((strMainWindowTitle == "XXXXX" && strProcess == "XXXXX")
|| ((strMainWindowTitle == "XXXXX" && strProcess == "XXXXX.vshost")))
{
blnAdminScrOpen = true;
break;
}
}
}
(예를 들어, 'this.Text = " XXXXX "). 이 방법은 잘 작동했습니다.
그러나 두 양식이 모두 다시 디자인되었으며 양식 제목 막대가 없으므로 이제 양식의 '텍스트 값이 null이고 위에 표시된 코드가 더 이상 작동하지 않습니다.
adminForm이 열려있을 때 userFrom이 열리지 않도록하는 데 사용할 수있는 새로운 C# 전략에 대한 제안 사항이 있습니까? 샘플 코드의 방향으로 나를 지적 할 수 있다면 고맙겠습니다.
건배, 프레드릭 enter code here
답변 해 주셔서 감사합니다. 나는 다음과 같은 코드에서 OpenForm을 사용했다 : FormCollection fc = Application.OpenForms; (fc [i] .Name == "formAdmin") { blnAdminScrOpen = true; 휴식; } } 이며 adminForm이 열려 있는지 확인할 수있었습니다. 또한 adminForm에 Tag 값을 부여한 후 fc [i] .Tag를 사용하여이 작업을 수행 할 수 있습니다. – Frederick
제가 도와 드릴 수있어서 다행입니다. 부탁을 회신 하시려면 대답으로 표시하거나 투표를하십시오. 감사합니다 – w69rdy
제 질문은, cleaver 사용자가 내 adminForm이 adminForm이 열려있을 때 열려 있다고 생각하도록 속일 경우 adminForm과 동일한 이름 (또는 Tag 값)을 가진 양식으로 자신의 응용 프로그램을 만든 다음 설치할 수 있습니까? 컴퓨터에서 해당 양식을여십시오. 즉, 이렇게하면 내 응용 프로그램의 OpenForms 코드가 사용자 정의 폼을 열지 못하게 할 수 있습니까? – Frederick