python如何触发exe程序_python如何调用win32应用程序方法分享

在网上看到有人问python如何调用win32应用程序,网上找了一圈还真让我找到了一段码感觉还行,贴在玩蛇网这里,大家给看看能不能用。

from ctypes import *

kernel32 = windll.kernel32

#定义数据结构中的字段类型

WORD = c_ushort

DWORD = c_ulong

LPBYTE = POINTER(c_ubyte)

LPTSTR = POINTER(c_char)

HANDLE = c_void_p

#定义函数中的初始化变量值

CREATE_NEW_CONSOLE = 0x00000010

PROCESS_ALL_ACCESS = 0x001F0FFF

INFINITE = 0xFFFFFFFF

#STARTUPINFO数据结构

class STARTUPINFO(Structure):

_fields_ = [

("cb", DWORD),

("lpReserved", LPTSTR),

("lpDesktop", LPTSTR),

("lpTitle", LPTSTR),

("dwX", DWORD),

("dwY", DWORD),

("dwXSize", DWORD),

("dwYSize", DWORD),

("dwXCountChars", DWORD),

("dwYCountChars", DWORD),

("dwFillAttribute",DWORD),

("dwFlags", DWORD),

("wShowWindow", WORD),

("cbReserved2", WORD),

("lpReserved2", LPBYTE),

("hStdInput", HANDLE),

("hStdOutput", HANDLE),

("hStdError", HANDLE),

]

#PROCESS_INFORMATION数据结构

class PROCESS_INFORMATION(Structure):

_fields_ = [

("hProcess", HANDLE),

("hThread", HANDLE),

("dwProcessId", DWORD),

("dwThreadId", DWORD),

]

#www.iplaypy.com

class debugger():

def __init__(self):

#pass

self.h_process = None

self.pid = None

self.debugger_active = False

def load(self,path_to_exe):

#实例化上述两个数据结构,并设置标志,这里是现实在桌面上(也可以隐藏,因设置的标志不同而不同)

creation_flags = CREATE_NEW_CONSOLE

startupinfo = STARTUPINFO()

process_information = PROCESS_INFORMATION()

startupinfo.dwFlags = 0x1

startupinfo.wShowWindow = 0x0

startupinfo.cb = sizeof(startupinfo)

#调用win32中的函数CreateProcessA打开所给应用程序

if kernel32.CreateProcessA(path_to_exe,

None,

None,

None,

None,

creation_flags,

None,

None,

byref(startupinfo),

byref(process_information)):

print "[*] We have successfully launched the process!"

print "[*] PID: %d" % process_information.dwProcessId

else:

print "[*] Error: 0xx." % kernel32.GetLastError()

#return process_information.dwProcessId

if __name__ == "__main__":

debugger = debugger()

debugger.load("C:\\WINDOWS\\system32\\calc.exe")

玩蛇网文章,转载请注明出处和文章网址:https://www.iplaypy.com/code/other/o2207.html

相关文章 Recommend

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值