用python创建窗口

利用win32库可以做到这点,直接上代码

import win32api, win32con, win32gui 
import win32gui_struct 
import ctypes 
from ctypes import * 
GUID_DEVINTERFACE_USB_DEVICE = "{A5DCBF10-6530-11D2-901F-00C04FB951ED}" 

class MyWindow: 

	def __init__(self): 
		win32gui.InitCommonControls() 
		self.hinst = win32api.GetModuleHandle(None) 
		className = 'MyWndClass' 
		message_map = { 
		win32con.WM_DESTROY: self.OnDestroy, 
		win32con.WM_DEVICECHANGE: self.OnDeviceChange, 
		win32con.WM_CREATE: self.OnCreate, 
		} 
		className = 'MyWndClass' 
		wc = win32gui.WNDCLASS() 
		wc.style = win32con.CS_HREDRAW | win32con.CS_VREDRAW 
		wc.lpfnWndProc = message_map 
		wc.lpszClassName = className 
		win32gui.RegisterClass(wc) 
		style = win32con.WS_OVERLAPPEDWINDOW 
		self.hwnd = win32gui.CreateWindow(className,'My win32api app',style,win32con.CW_USEDEFAULT,win32con.CW_USEDEFAULT,300,300,0,0,self.hinst,None) 
		# register for a device notification - we pass our service handle 
		# instead of a window handle. 
		filter = win32gui_struct.PackDEV_BROADCAST_DEVICEINTERFACE(GUID_DEVINTERFACE_USB_DEVICE) 
		self.hdn = win32gui.RegisterDeviceNotification(self.hwnd, filter, 4) 
		win32gui.ShowWindow(self.hwnd, win32con.SW_SHOW) 
		win32gui.UpdateWindow(self.hwnd) 

	def OnDestroy(self, hwnd, message, wparam, lparam): 
		win32gui.UnregisterDeviceNotification(self.hdn)	
		win32gui.PostQuitMessage(0) 
		return True 
	def OnDeviceChange(self, hwnd, message, wparam, lparam): 
		ctypes.windll.user32.MessageBoxW(0, "DeviceChange", "Message", 1) 
		return True 
	def OnCreate(self, hwnd, message, wparam, lparam): 
		ctypes.windll.user32.MessageBoxW(0, "Create", "Message", 1) 
		return True 

w = MyWindow() 
win32gui.PumpMessages()

 

写python代码时要注意缩进,不然容易报模块错误~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值