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