Alec Bennett wrote:
<code>
import wmi
wmi.WMI(privileges=["Shutdown"]).Win32_OperatingSystem()[0].Shutdown ()
</code>
Stylin, works. The only thing it doesn't do that I personally need
it to do is the "force shutdown". In other words "shutdown.exe -f".
I found this page with some hints but couldn't get it to work:
http://www.freevbcode.com/ShowCode.asp?ID=7693
Well I'm slightly surprised. The MS docs for this method:
http://msdn.microsoft.com/en-us/library/aa393627(VS.85).aspx
state that there are no params. And, on my XP SP3 box, introspection
says the same:
<code>
import wmi
c = wmi.WMI ()
c.Win32_OperatingSystem.Shutdown
<function Shutdown () => (ReturnValue uint32) | Needs: SeShutdownPrivilege>
</code>
Ah. I remember. You need the *Win32Shutdown* method, not the *Shutdown*
method. Sorry.
Try this (untested because I can't be fagged to power my machine down
just to test an email :) ):
<code>
import wmi
nForcePowerDown=12
wmi.WMI(privileges=["Shutdown"]).Win32_OperatingSystem()[0].Win32Shutdown (Flags=nForcePowerDown)
</code>
Earlier versions of the WMI module had a bug/feature which only allowed
named params in method calls. Can't remember whether the current release
version has it fixed. Certainly my dev version does.
TJG
_______________________________________________
python-win32 mailing list
python-win32@python.org
http://mail.python.org/mailman/listinfo/python-win32