From 60feedf43a35a9ca69d05095a01c5d1797b1bdc3 Mon Sep 17 00:00:00 2001
From: admin <weikou2014>
Date: 星期五, 09 九月 2022 18:47:14 +0800
Subject: [PATCH] '完善'

---
 ConsoleApplication/CurrentPriceCapture.cpp |   30 ++++++++++++++++++------------
 1 files changed, 18 insertions(+), 12 deletions(-)

diff --git a/ConsoleApplication/CurrentPriceCapture.cpp b/ConsoleApplication/CurrentPriceCapture.cpp
index 2561f7c..108e673 100644
--- a/ConsoleApplication/CurrentPriceCapture.cpp
+++ b/ConsoleApplication/CurrentPriceCapture.cpp
@@ -3,6 +3,9 @@
 #include <set>
 #include "Win32Util.h"
 #include "TaskChecker.h"
+#include "GPUtil.h"
+
+bool CurrentPriceCapture::tradeTimeCapture;
 OpenCLExcuter* CurrentPriceCapture::openCLExcuter;
 bool CurrentPriceCapture::inited;
 //是否正在执行
@@ -28,6 +31,13 @@
 	while (true) {
 		if (kill)
 			break;
+		if (tradeTimeCapture) {
+			if (!GPUtil::isPreTradeTime()) {
+				Sleep(100);
+				continue;
+			}
+		}
+
 		TaskChecker::clientLiveTime.limitUp = clock();
 		if (running && inited) {
 			clock_t start = clock();
@@ -73,14 +83,14 @@
 	rt.detach();
 }
 void CurrentPriceCapture::refreshHWND() {
-	HWND hwnd = THSActionUtil::getMainWin();
+	HWND hwnd = THSActionUtil::getSecondWindow();
 	if (hwnd <= 0)
-		throw string("同花顺主屏未打开");
+		throw string("同花顺副屏1未打开");
 
 	//采用快捷键打开
 	Win32Util::focus(hwnd);
-	//Win32Util::keyboardNum("51", 200);
-	//Win32Util::keyboard(VK_RETURN, 10);
+	Win32Util::keyboardNum("51", 200);
+	Win32Util::keyboard(VK_RETURN, 10);
 	Sleep(1000);
 
 
@@ -96,7 +106,7 @@
 	return running;
 }
 
-list<CurrentPriceData> CurrentPriceCapture::capture(cv::Mat oimg) {
+list<CurrentPriceData> CurrentPriceCapture::capture(cv::Mat oimg, OpenCLExcuter* openCLExcuter) {
 	cv::Mat grayImg = cv::Mat::zeros(oimg.rows, oimg.cols, CV_8UC1);//ImgUtil::grayImage(oimg);
 
 	uchar* imgData = (uchar*)malloc(sizeof(uchar) * oimg.rows * oimg.cols);
@@ -246,10 +256,10 @@
 			}
 			int x = wrect.right - 50;
 			int y = wrect.top + 50;
-			SendMessage(win, WM_MOUSEWHEEL, 0, MAKEWORD(x, y));
-			Sleep(100);
+			PostMessage(win, WM_MOUSEWHEEL, 0, MAKEWORD(x, y));
+			Sleep(200);
 			cv::Mat oimg = CaptureUtil::capture(win);
-			list<CurrentPriceData> codes = capture(oimg);
+			list<CurrentPriceData> codes = capture(oimg,openCLExcuter);
 			for (list<CurrentPriceData>::iterator ele = codes.begin();ele != codes.end();ele++) {
 				string code = (*ele).code;
 				if (codesSet.count(code) == 0&&stof((*ele).price)>0) {
@@ -260,11 +270,7 @@
 			codes.clear();
 			Sleep(50);
 	}
-
-
-	
 	return flist;
-
 }
 
 //全部开始

--
Gitblit v1.8.0