示例#1
0
        private void buttonGetColor_Click(object sender, EventArgs e)
        {
            IntPtr windowHandler = Module.FindWindowByName("CYBOS Starter");

            Win32.Rect rect = Module.WindowPosisionByName(windowHandler);
            //Ut.Log("top:" + rect.Top + " left:" + rect.Left + " bottom:" + rect.Bottom + " right:" + rect.Right);

            // 685, 715
            // 6, 15

            double argb    = 0;
            int    counter = 0;

            for (int i = 6; i < 16; i++)
            {
                for (int j = 685; j < 716; j++)
                {
                    int x = rect.Left + j;
                    int y = rect.Top + i;
                    argb = argb + Win32.GetPixelColor(x, y).ToArgb();
                    counter++;
                }
            }

            Ut.Log((argb / Convert.ToDouble(counter)).ToString());

            return;
        }
示例#2
0
        // 해당 좌표에 클릭 버튼
        public static bool Click(Win32.Rect location)
        {
            Ut.Log("X : " + location.Left + " Y : " + location.Top + " 에 클릭");

            Win32.mouse_event(Win32.MOUSEEVENTF_LEFTDOWN, (uint)location.Left, (uint)location.Top, 0, new IntPtr());
            Win32.mouse_event(Win32.MOUSEEVENTF_LEFTUP, (uint)location.Left, (uint)location.Top, 0, new IntPtr());
            return(true);
        }
示例#3
0
        // 모의투자 버튼이 눌려있는지를 판단.
        public static bool CheckVirtualBtnClicked()
        {
            IntPtr windowHandler = Module.FindWindowByName("CYBOS Starter");

            Win32.Rect rect = Module.WindowPosisionByName(windowHandler);
            //Ut.Log("top:" + rect.Top + " left:" + rect.Left + " bottom:" + rect.Bottom + " right:" + rect.Right);

            // 685, 715
            // 6, 15

            double argb    = 0;
            int    counter = 0;

            for (int i = 6; i < 16; i++)
            {
                for (int j = 685; j < 716; j++)
                {
                    int x = rect.Left + j;
                    int y = rect.Top + i;
                    argb = argb + Win32.GetPixelColor(x, y).ToArgb();
                    counter++;
                }
            }

            double avgPxl = argb / Convert.ToDouble(counter);

            if (avgPxl < -9000000)
            {
                // avgPxl : -10287651 --> 모의투자버튼 눌러져 있음.
                return(true);
            }
            else
            {
                // avgPxl : -8949047 --> 모의투자버튼 눌러져 있지 않음
                return(false);
            }
        }
示例#4
0
 // 윈도우 좌표를 가져온다.
 public static Win32.Rect WindowPosisionByName(IntPtr wdwHandler)
 {
     Win32.Rect rect = new Win32.Rect();
     Win32.GetWindowRect(wdwHandler, ref rect);
     return rect;
 }
示例#5
0
 // 윈도우 좌표를 가져온다.
 public static Win32.Rect WindowPosisionByName(IntPtr wdwHandler)
 {
     Win32.Rect rect = new Win32.Rect();
     Win32.GetWindowRect(wdwHandler, ref rect);
     return(rect);
 }
示例#6
0
        public void Action()
        {
            string id       = Setting.ReadIniValueByKey(@"C:\settings\cybos.ini", "id");
            string password = Setting.ReadIniValueByKey(@"C:\settings\cybos.ini", "password");

            Module.KillProcess();
            Module.Pause(2000);

            System.Diagnostics.Process.Start(@"C:\DAISHIN\STARTER\ncStarter.exe", "/prj:cp");

            Module.Pause(3000);

            if (Module.CheckWindowIsExist("대신증권 CYBOS FAMILY"))
            {
                // 대신증권 CYBOS FAMILY 화면 존재
                // 보안프로그램이 사용하지 않음으로 선택되어 있습니다.
                Module.ButtonClick(Module.FindWindowByName("대신증권 CYBOS FAMILY"), 6);
            }
            ;

            Module.Pause(2000);

            IntPtr windowHandler = Module.FindWindowByName("CYBOS Starter");

            mainWndHandler = windowHandler; // 메인 윈도우 핸들러 등록 (WinEventProc에서 사용해야되기 때문)

            Ut.Log("메인핸들러 : " + mainWndHandler.ToString("X8"));

            if (Module.CheckVirtualBtnClicked())
            {
                // 모의투자 버튼 눌러져 있음.
            }
            else
            {
                // 모의투자 버튼 눌러져 있지 않음. 눌러야함.
                Module.ButtonClick(mainWndHandler, 327);
            }

            Module.mainWndHander = mainWndHandler;
            Ut.Log("메인핸들러 : " + mainWndHandler.ToString("X8"));

            //IntPtr hhook = Win32.SetWinEventHook(Win32.EVENT_SYSTEM_FOREGROUND, Win32.EVENT_SYSTEM_FOREGROUND,
            //   IntPtr.Zero, new Win32.WinEventDelegate(Module.WinEventProc), 0, 0, Win32.WINEVENT_OUTOFCONTEXT);

            Module.Pause(2000);
            Module.SetTextInEdit(windowHandler, 156, id);
            Module.Pause(500);
            Module.SetTextInEdit(windowHandler, 157, password);
            Module.Pause(500);
            Module.ButtonClick(windowHandler, 203);
            Module.Pause(20000);

            Win32.Rect rec = Module.WindowPosisionByName(mainWndHandler);
            rec.Top  = rec.Top + 128 + 10;
            rec.Left = rec.Left + 492 + 10;

            Win32.POINT p = new Win32.POINT();
            p.x = rec.Left;
            p.y = rec.Top;

            Win32.SetCursorPos(p.x, p.y);
            Win32.SetCursorPos(p.x, p.y);

            Module.Click(rec);
            Module.Click(rec);
            Module.Click(rec);

            Ut.Log(System.Diagnostics.Process.GetCurrentProcess().MainWindowHandle.ToString("X8"));
        }