python脚本:给特定窗口发送消息

# -*- coding: utf-8 -*-
import os
import time
import win32gui
import win32api
import win32con
import sys
import  msvcrt

#筛选需要的窗口句柄
def get_mesh_windows(hWndList, name):
	winhwnd= []
	for hWnd in hWndList:
		title = win32gui.GetWindowText(hWnd)
		clsname = win32gui.GetClassName(hWnd)
 
		#print 'title:%s' % (title)
		#print 'name:%s' % (clsname)

		if title.startswith(name):
			winhwnd.append(hWnd)
	return winhwnd

if __name__ == "__main__":

	base_dir = sys.argv[1]
	file = sys.argv[2]
	
	#启动两个程序,titles: mesh-view1, mesh-view2, start:不阻塞当前进程
	os.system('start python dynamic_viewer.py ' + base_dir + ' ' + file)
	os.system('start python dynamic_viewer1.py ' + base_dir + ' ' + file + '_Refine')

	#sleep 1s, 当前进程才能找到这两个窗口
	time.sleep(1)

	print 'search window with title mesh-view...'

	#搜索所有窗口
	hWndList = []
	win32gui.EnumWindows(lambda hWnd, param: param.append(hWnd), hWndList)
	name = 'mesh-view'
	winhwnds = get_mesh_windows(hWndList,name)

	print 'there are %d windows named mesh-view '%len(winhwnds)

	while True:
		ch = msvcrt.getch()
		if ch == 'q' :
			break
		asc = ord(ch)

		for wh in winhwnds:
			win32api.PostMessage(wh, win32con.WM_CHAR, asc, 0) 

	print "work done!"
  • 4
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Researcher-Du

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值