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

Reply via email to