Du könntest den Netzwerktraffic überwachen. Wenn dieser eine zeitlang unter einem bestimmten Wert bleibt (Null geht nicht, weil Windows hin und wieder auf das Netzwerk zugreift), dann den Rechner runterfahren.
Hier ist mal ein kleines Beispielskript:
Spoiler anzeigen
HotKeySet('{ESC}', '_End')
$wbemFlagReturnImmediately = 0x10
$wbemFlagForwardOnly = 0x20
$colItems = ""
$strComputer = 'localhost'
$NetworkAdapter = 'Marvell Yukon 88E8053 PCI-E Gigabit Ethernet Controller' ; hier den Namen des Netzwerkadapters eintragen
$Output=""
$Output &= 'Computer: ' & $strComputer & @CRLF
$Output &= '==========================================' & @CRLF
$objWMIService = ObjGet('winmgmts:\\' & $strComputer & '\')
While True
$colItems = $objWMIService.ExecQuery('SELECT * FROM Win32_PerfFormattedData_Tcpip_NetworkInterface', 'WQL', $wbemFlagReturnImmediately + $wbemFlagForwardOnly)
If IsObj($colItems) Then
For $objItem In $colItems
If $objItem.Name = $NetworkAdapter Then
$Output = 'BytesReceivedPersec: ' & $objItem.BytesReceivedPersec & @CRLF
$Output &= 'BytesSentPersec: ' & $objItem.BytesSentPersec & @CRLF
$Output &= 'BytesTotalPersec: ' & $objItem.BytesTotalPersec & @CRLF
ToolTip($Output, @DesktopWidth / 2 - 200, 20, 'Network-Traffic')
EndIf
Next
Else
$Output &= 'No WMI Objects Found for class: ' & 'Win32_PerfFormattedData_Tcpip_NetworkInterface'
Endif
Sleep(50)
WEnd
Func _End()
Exit
EndFunc