我有这段代码:
If CheckBox1.Checked = True Then
My.Computer.FileSystem.RenameFile("C:\Users\mario\Desktop\Dominio\1\Pc - S.txt", "Pc - S - A.txt")
'Sleep(2000) ' to sleep for 2 second
System.Threading.Thread.Sleep(2000)
My.Computer.FileSystem.RenameFile("C:\Users\mario\Desktop\Dominio\1\Pc - S - A.txt", "Pc - S.txt")
End If
If CheckBox2.Checked = True Then
My.Computer.FileSystem.RenameFile("C:\Users\mario\Desktop\Dominio\2\Pc - S.txt", "Pc - S - A.txt")
'Sleep(2000) ' to sleep for 2 second
My.Computer.FileSystem.RenameFile("C:\Users\mario\Desktop\Dominio\2\Pc - S - A.txt", "Pc - S.txt")
End If
如果还有另外24个,那么它还会继续。我需要他们同时更改所有名称,然后等待两秒钟并同时再次更改它。我是否需要48(24 + 24)IF?
说明:
我正在创建一种超级简单的方式来摆弄我学校的计算机。这是我的想法(希望你能理解)
我在学校的每台计算机上(在启动时的regestry中)放了一个程序,它执行以下操作: (Atencion并不是真正的编程语言)
有(1){
sleep 1000 // wait 1 sec
if.FILE.EXISTS(\\domain\folder1\shutdown.txt) then{
do: shutdown pc // if file exist it shutdowns the pc
}
}
这样做的是,如果域中的某个目录中有文件,它会关闭pc。 我这样做了24个,所以我需要单独关闭它们,因此有很多文件夹。 所以我可以简单地手动重命名文件,但对于24个这是很多工作。因此,我正在开发一个应用程序,询问我想要关闭的PC,然后执行:
1:重命名文件。
2:等待2秒或更长时间(以便网络中的计算机有时间验证是否有此类文件)
3:重命名文件,以便当pc重新启动时,它不会再次关闭。
你有没有得到我想做的事情?是的,有更多的正统方法可以做到这一点。但这非常简单,这比任何事情都更重要。 (稍后将使用更合适的方式执行此操作并通过网络执行其他选项)
答案 0 :(得分:0)
由于唯一的区别是文件路径中的单个数字,为什么不这样做呢?
var dict = new Dictionary<CheckBox, string>();
dict.Add(CheckBox1, "1");
dict.Add(CheckBox2, "2");
//etc
foreach (var kvp in dict)
{
if(kvp.Key.Checked == true)
{
My.Computer.FileSystem.RenameFile(String.Format("C:\Users\mario\Desktop\Dominio\{0}\Pc - S.txt", kvp.Value ), "Pc - S - A.txt")
}
}
我们创建一个通用字典来存储复选框与字符串/数字的关联,然后遍历字典,检查值。我们使用格式字符串(您可以使用字符串连接)将字符串/数字插入到文件路径字符串中。
注意,这是在C#中,因为我不是VB程序员。语法可能略有不同。
答案 1 :(得分:0)
由于您的目的是远程关闭PC,为什么不实际关闭它们的代码,而不是一些hackish&#34;创建文件然后等待2秒&#34;接近?
同样,这是C#,但翻译应该非常简单:
var ComputerNames = new List<string>() {"Computer1", "Computer2", "Computer3"};
foreach(var pc in ComputerNames)
{
Process.Start("shutdown","-s -m \\\\" + pc);
}