/
MyOrder.py
135 lines (115 loc) · 4.51 KB
/
MyOrder.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
# coding=utf-8
import win32gui
import time
import win32con
from pandas import json
import KeyBroadUtil
import log
from Util import SingleUtil
from UserInfoBean import SingleUserInfo
class MyOrder:
def __init__(self):
self.keyBroadUtil = KeyBroadUtil.KeyBrodaUtil()
self.xiadanH = SingleUtil.findMainHwnd()
if self.xiadanH == 0:
log.log("3s后重新尝试")
time.sleep(3000)
self.xiadanH = SingleUtil.findMainHwnd()
if self.xiadanH != 0:
# todo 初始化用户数据
self.initUserInfo()
def clickBroad(self, VK):
self.keyBroadUtil.clickBroad(VK)
def clickBroadF2(self):
self.clickBroad(win32con.VK_F2)
def clickBroadF1(self):
self.clickBroad(win32con.VK_F1)
def clickBroadF4(self):
self.clickBroad(win32con.VK_F4)
def clickTab(self, clickNum):
self.keyBroadUtil.clickTab(clickNum)
def clickEnter(self, ):
self.keyBroadUtil.clickEnter()
def sell(self, stockNum, sellNum):
win32gui.SetForegroundWindow(self.xiadanH)
self.clickBroadF1()
self.clickBroadF2()
# 4下tab
self.clickTab(4)
# enter确定重填
self.clickEnter()
# 卖出股票
stockNums = map(ord, stockNum)
for index in stockNums:
self.clickBroad(index)
self.clickTab(2)
# 卖出份额
sellNums = map(ord, sellNum)
for index in sellNums:
self.clickBroad(index)
time.sleep(0.2)
self.clickBroad(self.keyBroadUtil.KEY_S)
self.clickEnter()
time.sleep(0.2)
self.clickEnter()
def buy(self, stockNum, buyNum):
# 程序前置
win32gui.SetForegroundWindow(self.xiadanH)
self.clickBroadF2()
self.clickBroadF1()
# 4下tab
self.clickTab(4)
# enter确定重填
self.clickEnter()
# 买入股票
stockNums = map(ord, stockNum)
for index in stockNums:
self.clickBroad(index)
self.clickTab(2)
# 买入份额
buyNums = map(ord, buyNum)
for index in buyNums:
self.clickBroad(index)
time.sleep(0.2)
self.clickBroad(self.keyBroadUtil.KEY_B)
self.clickBroad(self.keyBroadUtil.KEY_Y)
def initUserInfo(self):
log.log("===================================================")
log.log("开始填充用户数据.......")
log.log("===================================================")
# 程序前置
win32gui.SetForegroundWindow(self.xiadanH)
self.clickBroadF2()
self.clickBroadF4()
childWindows = SingleUtil.findChildWindows(self.xiadanH)
for childHw in childWindows:
# title = show_window_attr(h)
windowTitle = SingleUtil.getWindowText(childHw)
# log.log '窗口标题:%s' % (str(title))
if "资金余额" in str(windowTitle):
findTitle = self.find_text_for_index(childWindows, childHw)
SingleUserInfo.set_capital_balance(findTitle)
if "总 资 产" in str(windowTitle):
findTitle = self.find_text_for_index(childWindows, childHw)
SingleUserInfo.set_total_assets(findTitle)
if "股票市值" in str(windowTitle):
findTitle = self.find_text_for_index(childWindows, childHw)
SingleUserInfo.set_stock_market_value(findTitle)
if "可取金额" in str(windowTitle):
findTitle = self.find_text_for_index(childWindows, childHw)
SingleUserInfo.set_advisable_fundse(findTitle)
if "冻结金额" in str(windowTitle):
findTitle = self.find_text_for_index(childWindows, childHw)
SingleUserInfo.set_frozen_fundse(findTitle)
if "可用金额" in str(windowTitle):
findTitle = self.find_text_for_index(childWindows, childHw)
SingleUserInfo.set_available_funds(findTitle)
SingleUserInfo.__dict__ = json.loads(json.dumps(SingleUserInfo.__dict__).replace("\u0000", ""))
log.log("===================================================")
log.log("用户信息资金信息:")
log.log(json.dumps(SingleUserInfo.__dict__))
log.log("===================================================")
def find_text_for_index(self, hWndList, h):
index = hWndList.index(h) + 3
findTitle = SingleUtil.getWindowText(hWndList[index])
return findTitle