3
我工作的應用程序將優化我的工作,通過RDP連接到我的服務器。在這一點上,我想要做一個窗口窗體,向我展示我的所有服務器。憑藉我的適當知識 - 我想在我的Windows窗體中以編程方式添加AxMsRdpClient2
或AxMsTscAxNotSafeForScripting
控件。在開始時,我有一個Form1,用於保存我的憑證(IP,USER,PASS),並使用簡單的FOR
來添加ActiveX客戶端到我的Form2並連接到服務器。RDP客戶端 - AxHost.InvalidActiveXStateException
在這裏,我有問題。讓我們看看我的代碼如下。從Form1中
呼叫()>
var btt = new RunRDP();
for (int i = 0; i < 15; i++)
{
btt.PozitionMaster();
}
RunRDP類別:
private static int _count;
private static int _row = 4;
private static int _colum = 4;
private static int _objId;
public void PozitionMaster()
{
if (_count != 6)
{
UInitializer(_objId++, _row, _colum);
_row += 196;
_count++;
}
else
{
_colum += 196;
_row = 4;
_count = 0;
}
}
UInitializer功能:
public AxMsRdpClient2 rdpClient;
public void UInitializer(int id, int x, int y)
{
Form2 ippo = new Form2();
rdpClient = new AxMsRdpClient2();
rdpClient.UserName = "username";
rdpClient.Server = "192.168.0.100";
rdpClient.Height = y;
rdpClient.Width = x;
rdpClient.BeginInit();
rdpClient.CreateControl();
if (ippo.InvokeRequired)
{
ippo.Invoke(new Action(() => ippo.Controls.Add(rdpClient)));
ippo.Invoke(new Action(() => ippo.Update()));
}
else
{
ippo.Controls.Add(rdpClient);
}
//this.Controls.Add(rdpClient);
rdpClient.AdvancedSettings2.RDPPort = 3389;
rdpClient.AdvancedSettings2.ClearTextPassword = "hello_rdp";//
rdpClient.ColorDepth = 16;//
rdpClient.FullScreen = false;//
rdpClient.Connect();
}
得到這個錯誤:
An unhandled exception of type 'System.Windows.Forms.AxHost.
InvalidActiveXStateException' occurred in AxInterop.MSTSCLib.dll
{"Exception of type 'System.Windows.Forms.AxHost+InvalidActiveXStateException' was thrown."}
謝謝!這是我的解決方案! – KiNG