from ctypes import *
#Microsoftの型とctypesの対応を定義して明快にする
Wo = c_short #word
Dwo = c_ulong #dword
Lb = POINTER(c_byte) #lpbyte
Lp = POINTER(c_char) #lptstr
Ha = c_void_p
#定数
DEBUG_PROCESS = 0x00000001
CREATE_NEW_CONSOLE = 0x00000010
#関数CreateProcessA()のための構造体
class STARTUPINFO(Strucure): #構造体ねぇ
_fields_ = [
("cb", Dwo),
("lpReserved",Lp),
("lpDesktop",Lp),
("lpTitle",Lp),
("dwX", Dwo),
("dwY", Dwo),
("dwXSize", Dwo),
("dwYSize", Dwo),
("dwXCountChars", Dwo),
("dwYCountChars", Dwo),
("dwFillAttribute", Dwo),
("dwFlags", Dwo),
("wShowWindow", Wo),
("cbReserved2", Wo),
("lpReserved2", Lb),
("hStdInput", Ha),
("hStdOutput", Ha),
("hStdError", Ha),
]
class PROCESS_INFORMATION(Structure):
_fields_ = [
("hProcess", Ha),
("hTread", Ha),
("dwProcessId", Dwo),
("dwThreadId", Dwo),
]
ZnJvbSBjdHlwZXMgaW1wb3J0ICoKCiNNaWNyb3NvZnTjga7lnovjgahjdHlwZXPjga7lr77lv5zjgpLlrprnvqnjgZfjgabmmI7lv6vjgavjgZnjgosKV28gPSBjX3Nob3J0ICN3b3JkCkR3byA9IGNfdWxvbmcgI2R3b3JkCkxiICA9IFBPSU5URVIoY19ieXRlKSAjbHBieXRlCkxwID0gUE9JTlRFUihjX2NoYXIpICNscHRzdHIKSGEgPSBjX3ZvaWRfcAoKI+WumuaVsApERUJVR19QUk9DRVNTID0gMHgwMDAwMDAwMQpDUkVBVEVfTkVXX0NPTlNPTEUgID0gMHgwMDAwMDAxMAoKI+mWouaVsENyZWF0ZVByb2Nlc3NBKCnjga7jgZ/jgoHjga7mp4vpgKDkvZMKY2xhc3MgU1RBUlRVUElORk8oU3RydWN1cmUpOiAj5qeL6YCg5L2T44Gt44GHCiBfZmllbGRzXyA9IFsKIAkoImNiIiwJCUR3byksCiAJKCJscFJlc2VydmVkIixMcCksCiAJKCJscERlc2t0b3AiLExwKSwKIAkoImxwVGl0bGUiLExwKSwKIAkoImR3WCIsCQlEd28pLAogCSgiZHdZIiwJCUR3byksCiAJKCJkd1hTaXplIiwJCUR3byksCiAJKCJkd1lTaXplIiwJCUR3byksCiAJKCJkd1hDb3VudENoYXJzIiwJCUR3byksCiAJKCJkd1lDb3VudENoYXJzIiwJCUR3byksCiAJKCJkd0ZpbGxBdHRyaWJ1dGUiLAkJRHdvKSwKIAkoImR3RmxhZ3MiLAkJRHdvKSwKIAkoIndTaG93V2luZG93IiwgV28pLAogCSgiY2JSZXNlcnZlZDIiLCAgV28pLAogCSgibHBSZXNlcnZlZDIiLCBMYiksCiAJKCJoU3RkSW5wdXQiLCBIYSksCiAJKCJoU3RkT3V0cHV0IiwgSGEpLAogCSgiaFN0ZEVycm9yIiwgSGEpLAogCV0KIAkKIAljbGFzcyBQUk9DRVNTX0lORk9STUFUSU9OKFN0cnVjdHVyZSk6CiAJCV9maWVsZHNfID0gWwogCQkgCSgiaFByb2Nlc3MiLCBIYSksCiAJCSAJKCJoVHJlYWQiLCBIYSksCiAJCSAJKCJkd1Byb2Nlc3NJZCIsIER3byksCiAJCSAJKCJkd1RocmVhZElkIiwgRHdvKSwKIAkJIAld