import t from stdint import * from w32.win32base import * PROCESS_TERMINATE: t.CDefine = 0x0001 PROCESS_CREATE_THREAD: t.CDefine = 0x0002 PROCESS_VM_OPERATION: t.CDefine = 0x0008 PROCESS_VM_READ: t.CDefine = 0x0010 PROCESS_VM_WRITE: t.CDefine = 0x0020 PROCESS_QUERY_INFORMATION: t.CDefine = 0x0400 PROCESS_ALL_ACCESS: t.CDefine = 0x001FFFFF THREAD_TERMINATE: t.CDefine = 0x0001 THREAD_SUSPEND_RESUME: t.CDefine = 0x0002 THREAD_GET_CONTEXT: t.CDefine = 0x0008 THREAD_SET_CONTEXT: t.CDefine = 0x0010 THREAD_QUERY_INFORMATION: t.CDefine = 0x0040 THREAD_ALL_ACCESS: t.CDefine = 0x001FFFFF CREATE_SUSPENDED: t.CDefine = 0x00000004 CREATE_NEW_CONSOLE: t.CDefine = 0x00000010 CREATE_NEW_PROCESS_GROUP: t.CDefine = 0x00000200 CREATE_NO_WINDOW: t.CDefine = 0x08000000 DETACHED_PROCESS: t.CDefine = 0x00000008 STARTF_USESHOWWINDOW: t.CDefine = 0x00000001 STARTF_USESTDHANDLES: t.CDefine = 0x00000100 SW_HIDE: t.CDefine = 0 SW_SHOW: t.CDefine = 5 SW_MINIMIZE: t.CDefine = 6 NORMAL_PRIORITY_CLASS: t.CDefine = 0x00000020 IDLE_PRIORITY_CLASS: t.CDefine = 0x00000040 HIGH_PRIORITY_CLASS: t.CDefine = 0x00000080 REALTIME_PRIORITY_CLASS: t.CDefine = 0x00000100 BELOW_NORMAL_PRIORITY_CLASS: t.CDefine = 0x00004000 ABOVE_NORMAL_PRIORITY_CLASS: t.CDefine = 0x00008000 STILL_ACTIVE: t.CDefine = 259 class STARTUPINFOA(): cb: DWORD lpReserved: CHARPTR lpDesktop: CHARPTR lpTitle: CHARPTR dwX: DWORD dwY: DWORD dwXSize: DWORD dwYSize: DWORD dwXCountChars: DWORD dwYCountChars: DWORD dwFillAttribute: DWORD dwFlags: DWORD wShowWindow: WORD cbReserved2: WORD lpReserved2: VOIDPTR hStdInput: HANDLE hStdOutput: HANDLE hStdError: HANDLE class STARTUPINFOW(): cb: DWORD lpReserved: WCHARPTR lpDesktop: WCHARPTR lpTitle: WCHARPTR dwX: DWORD dwY: DWORD dwXSize: DWORD dwYSize: DWORD dwXCountChars: DWORD dwYCountChars: DWORD dwFillAttribute: DWORD dwFlags: DWORD wShowWindow: WORD cbReserved2: WORD lpReserved2: VOIDPTR hStdInput: HANDLE hStdOutput: HANDLE hStdError: HANDLE class PROCESS_INFORMATION(): hProcess: HANDLE hThread: HANDLE dwProcessId: DWORD dwThreadId: DWORD extern def CreateProcessA(lpApplicationName: LPCSTR, lpCommandLine: CHARPTR, lpProcessAttributes: SECURITY_ATTRIBUTES | t.CPtr, lpThreadAttributes: SECURITY_ATTRIBUTES | t.CPtr, bInheritHandles: BOOL, dwCreationFlags: ULONG, lpEnvironment: VOIDPTR, lpCurrentDirectory: LPCSTR, lpStartupInfo: STARTUPINFOA | t.CPtr, lpProcessInformation: PROCESS_INFORMATION | t.CPtr) -> BOOL extern def CreateProcessW(lpApplicationName: LPCWSTR, lpCommandLine: WCHARPTR, lpProcessAttributes: SECURITY_ATTRIBUTES | t.CPtr, lpThreadAttributes: SECURITY_ATTRIBUTES | t.CPtr, bInheritHandles: BOOL, dwCreationFlags: ULONG, lpEnvironment: VOIDPTR, lpCurrentDirectory: LPCWSTR, lpStartupInfo: STARTUPINFOW | t.CPtr, lpProcessInformation: PROCESS_INFORMATION | t.CPtr) -> BOOL extern def TerminateProcess(hProcess: HANDLE, uExitCode: UINT) -> BOOL extern def GetExitCodeProcess(hProcess: HANDLE, lpExitCode: ULONG | t.CPtr) -> BOOL extern def GetExitCodeThread(hThread: HANDLE, lpExitCode: ULONG | t.CPtr) -> BOOL extern def OpenProcess(dwDesiredAccess: ULONG, bInheritHandle: BOOL, dwProcessId: ULONG) -> HANDLE extern def GetCurrentProcess() -> HANDLE extern def GetCurrentProcessId() -> ULONG extern def CreateThread(lpThreadAttributes: SECURITY_ATTRIBUTES | t.CPtr, dwStackSize: t.CSizeT, lpStartAddress: VOIDPTR, lpParameter: VOIDPTR, dwCreationFlags: ULONG, lpThreadId: ULONG | t.CPtr) -> HANDLE extern def OpenThread(dwDesiredAccess: ULONG, bInheritHandle: BOOL, dwThreadId: ULONG) -> HANDLE extern def SuspendThread(hThread: HANDLE) -> ULONG extern def ResumeThread(hThread: HANDLE) -> ULONG extern def TerminateThread(hThread: HANDLE, dwExitCode: ULONG) -> BOOL extern def GetCurrentThread() -> HANDLE extern def GetCurrentThreadId() -> ULONG extern def GetThreadId(hThread: HANDLE) -> ULONG extern def GetProcessId(hProcess: HANDLE) -> ULONG extern def SetThreadPriority(hThread: HANDLE, nPriority: INT) -> BOOL extern def GetThreadPriority(hThread: HANDLE) -> INT extern def ExitProcess(uExitCode: UINT) -> VOID extern def ExitThread(dwExitCode: ULONG) -> VOID extern def TlsAlloc() -> ULONG extern def TlsFree(dwTlsIndex: ULONG) -> BOOL extern def TlsGetValue(dwTlsIndex: ULONG) -> VOIDPTR extern def TlsSetValue(dwTlsIndex: ULONG, lpTlsValue: VOIDPTR) -> BOOL