zoukankan      html  css  js  c++  java
  • 【原創】WinMo之移動今日插件

    WinCE下枚舉窗體的函數與Win32不同,所以要用到GetWindow

    要用到GetWindow的第二個參數有GW_HWNDNEXT,GW_CHILD。

    用Task Manager觀察下窗口句柄,發現今日在DesktopExplorerWindow類下,所以先取得母句柄:

    hParent = FindWindow(_T("DesktopExplorerWindow"), _T("Desktop"));
    

    接下來是取得子窗口句柄:

    hWndPhonEx = GetWindow(hParent, GW_CHILD);
    

    在母窗口下有各個插件的句柄,但是如果直接用GW_HWNDNEXT是取不到的,其實插件句柄都在第三個Worker下。

    所以要先取得第三個Worker的句柄。

    接下來比較奇怪,有人給我解釋下嗎?顯示的是兄弟窗體,但是要這樣取得:

    hWndPhonEx = GetWindow(hWndPhonEx, GW_CHILD);
    

    用的是GW_CHILD,很奇怪。

    再是

    hWndPhonEx = GetWindow(hWndPhonEx, GW_HWNDNEXT);
    

    再進入子窗體:

    hWndPhonEx = GetWindow(hWndPhonEx, GW_CHILD);
    

    然後就是循環檢查句柄了:

    while (!IsFindWindow)
    {
    	if (GetClassName(hWndPhonEx, szClassName, 100))
    	{
    		IsFindWindow = TRUE;
    
    		for (int i=0; i<ilen; i++)
    		{
    			if (szClassName[i] != szPhonEx[i])
    			{
    				IsFindWindow = FALSE;
    			}
    		}
    
    		if (IsFindWindow)
    		{
    			MessageBox(NULL, _T("Get HWND"), NULL, MB_OK);
    		}
    		else
    		{
    			hWndPhonEx = GetWindow(hWndPhonEx, GW_HWNDNEXT);
    			a.Format(_T("Next --> %x"), hWndPhonEx);
    			MessageBox(NULL, a, NULL, MB_OK);
    		}
    	}
    }
    

    最後就是移動窗體了(例子中是PhonEx的今日插件)

    MoveWindow(hWndPhonEx, 0, 630, 480, 76, TRUE);
    
  • 相关阅读:
    单页应用 SPA(Sigle Page Aolication)
    初学数据库
    AJAX与跨域
    面向对象
    event、Dom
    HTML DOM Event 对象
    JavaScript RegExp 对象
    UNITY常用插件
    数据分析师
    VBA工作表排序转载
  • 原文地址:https://www.cnblogs.com/ZzzZzz/p/2664705.html
Copyright © 2011-2022 走看看