def win32_utf8_argv():
 try:
  from ctypes import POINTER, byref, cdll, c_int, windll
  from ctypes.wintypes import LPCWSTR, LPWSTR
  GetCommandLineW = cdll.kernel32.GetCommandLineW
  GetCommandLineW.argtypes = []
  GetCommandLineW.restype = LPCWSTR
  CommandLineToArgvW = windll.shell32.CommandLineToArgvW
  CommandLineToArgvW.argtypes = [LPCWSTR, POINTER(c_int)]
  CommandLineToArgvW.restype = POINTER(LPWSTR)
  cmd = GetCommandLineW()
  argc = c_int(0)
  argv = CommandLineToArgvW(cmd, byref(argc))
  if (argc.value > 0):
   return [argv[i] for i in xrange(0, argc.value)]
 except Exception:
  pass

def win32_utf8_argv ( ) : try : from ctypes import POINTER , byref , cdll , c_int , windll from ctypes . wintypes import LPCWSTR , LPWSTR GetCommandLineW = cdll . kernel32 . GetCommandLineW GetCommandLineW . argtypes = [ ] GetCommandLineW . restype = LPCWSTR CommandLineToArgvW = windll . shell32 . CommandLineToArgvW CommandLineToArgvW . argtypes = [ LPCWSTR , POINTER ( c_int ) ] CommandLineToArgvW . restype = POINTER ( LPWSTR ) cmd = GetCommandLineW ( ) argc = c_int ( 0 ) argv = CommandLineToArgvW ( cmd , byref ( argc ) ) if ( argc . value > 0 ) : return [ argv [ i ] for i in xrange ( 0 , argc . value ) ] except Exception : pass
uses shell32 .