2017-10-10 157 views
0

我是個不錯的Google員工,但這次我碰到了路障。我創建了一個C#WinForm應用程序,用於打開應用程序ICBusinessManager的登錄窗口。我無法弄清楚的是如何讓我的winform自動登錄。 IC應用程序的登錄窗口中有「登錄」和「取消」按鈕。我對發展很陌生(現在是自學),如果我不清楚,我會提前道歉。請問你是否需要我更具體。如何從C#WinForm應用程序自動登錄到桌面應用程序?

private void roboDialerBtn_Click(object sender, EventArgs e) 
{ 

      Process roboDialer = new Process(); 
      roboDialer.StartInfo.FileName = "ICBusinessManager.exe"; 
      roboDialer.StartInfo.Arguments = "ProcessStart.cs"; 
      roboDialer.Start(); 

     } 
+0

太寬泛無法回答。看看這裏:https://stackoverflow.com/questions/517694/ui-automation-selected-text – rene

+0

你最好的選擇是使用自動化工具輸入用戶名和密碼,並在開始過程後點擊登錄。只用一個'Process'就沒有辦法做到這一點。我已經成功地使用QAliber(自動化框架)來做這件事。說實話,雖然它並不簡單。 –

回答

0

您可以使用SendKeys登錄。嘗試使用任何\t{enter}的組合來嘗試類似這樣的操作,您需要從每個輸入選項中提供控制焦點(從而允許鍵入)。 這會打開記事本,等待記事本打開一小段,然後鍵入「用戶名」,製表符,「密碼」,製表符,然後輸入。

var info = new ProcessStartInfo() { FileName = "Notepad.exe" }; 
new Process() { StartInfo = info }.Start(); 
System.Threading.Thread.Sleep(500); 
System.Windows.Forms.SendKeys.SendWait("username\tpassword\t{enter}"); 

您可以使用Process.WaitForInputIdle(int),而不是Thread.Sleep(int)取決於你啓動應用程序。