Я использовал C# winform для создания программы, с помощью которой я могу удаленно включать и выключать другие компьютеры, а также управлять программным обеспечением. В настоящее время я закончил часть с включенным ПК, и она работает хорошо, но сейчас я застрял на части с выключенным компьютером. У меня нет проблем с запуском программы, но я не могу управлять другим компьютером нажатием кнопки ВЫКЛ. Программа считывает IP-адрес, но я думаю, что компьютер не может получить данные. Есть ли что-нибудь, что я должен добавить еще? Ниже приведены мои коды.
public partial class Form1 : Form
{
private void PC_OFF_BTN_Click(object sender, EventArgs e)
{
String ipAddress = textBox2.Text.Trim();
if (string.IsNullOrWhiteSpace(ipAddress))
{
MessageBox.Show("유효한 IP 주소를 입력하세요");
return;
}
if (MessageBox.Show("종료?", "YesOrNo", MessageBoxButtons.YesNo) == DialogResult.Yes)
{
MessageBox.Show("Yes");
}
else
{
MessageBox.Show("No");
}
ShutdownRemotePC(ipAddress);
}
private void ShutdownRemotePC(string ipAddress)
{
try
{
string shutdownCommand = $"shutdown /s /3DI \\\\{ipAddress} /t 0";
System.Diagnostics.Process.Start("cmd.exe", shutdownCommand);
ProcessStartInfo processInfo = new ProcessStartInfo
{
FileName = "cmd.exe",
Arguments = shutdownCommand,
RedirectStandardOutput = true,
RedirectStandardError = true,
UseShellExecute = false,
CreateNoWindow = true
};
using (Process process = Process.Start(processInfo))
{
process.WaitForExit();
if (process.ExitCode == 0)
{
MessageBox.Show("전송 완료.");
}
}
}
catch (Exception ex)
{
MessageBox.Show("원격 종료 오류: " + ex.Message);
}
}
}
Подробнее здесь: https://stackoverflow.com/questions/791 ... ake-on-lan