国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

根據(jù)窗口句柄,移動(dòng)/激活窗口

這篇具有很好參考價(jià)值的文章主要介紹了根據(jù)窗口句柄,移動(dòng)/激活窗口。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

根據(jù)窗口句柄,移動(dòng)/激活窗口

1.獲取窗口句柄

獲取窗口句柄上篇隨筆有寫,不再做贅述

2.引入U(xiǎn)ser32函數(shù)MoveWindow/ShowWindow

引入MoveWindow,用于移動(dòng)窗口,設(shè)置??SetLastError = true,若移動(dòng)窗口失敗,方便查找問(wèn)題

        /// <summary>
        /// 設(shè)置目標(biāo)窗體大小,位置
        /// </summary>
        /// <param name="hWnd">目標(biāo)句柄</param>
        /// <param name="x">目標(biāo)窗體新位置X軸坐標(biāo)</param>
        /// <param name="y">目標(biāo)窗體新位置Y軸坐標(biāo)</param>
        /// <param name="nWidth">目標(biāo)窗體新寬度</param>
        /// <param name="nHeight">目標(biāo)窗體新高度</param>
        /// <param name="BRePaint">是否刷新窗體</param>
        /// <returns></returns>
        [DllImport("user32.dll", CharSet = CharSet.Auto, SetLastError = true)]
        public static extern int MoveWindow(IntPtr hWnd, int x, int y, int nWidth, int nHeight, bool BRePaint);

引入ShowWindow,用于激活窗口

        /// <summary>
        /// 顯示W(wǎng)indow
        /// </summary>
        /// <param name="hwnd">句柄</param>
        /// <param name="nCmdShow">
        /// 0    隱藏窗口并激活另一個(gè)窗口。
        /// 1    激活并顯示窗口。 如果窗口最小化或最大化,系統(tǒng)會(huì)將其還原到其原始大小和位置。 首次顯示窗口時(shí),應(yīng)用程序應(yīng)指定此標(biāo)志。
        /// 2    激活窗口并將其顯示為最小化窗口。
        /// 3    激活窗口并顯示最大化的窗口。
        /// 4    在其最近的大小和位置顯示一個(gè)窗口。 此值類似于 SW_SHOWNORMAL,但窗口未激活。
        /// 5    激活窗口并以當(dāng)前大小和位置顯示窗口。
        /// 6    最小化指定的窗口,并按 Z 順序激活下一個(gè)頂級(jí)窗口。
        /// 7    將窗口顯示為最小化窗口。 此值類似于 SW_SHOWMINIMIZED,但窗口未激活。
        /// 8    以當(dāng)前大小和位置顯示窗口。 此值類似于 SW_SHOW,但窗口未激活。
        /// 9    激活并顯示窗口。 如果窗口最小化或最大化,系統(tǒng)會(huì)將其還原到其原始大小和位置。 還原最小化窗口時(shí),應(yīng)用程序應(yīng)指定此標(biāo)志。
        /// 10    根據(jù)啟動(dòng)應(yīng)用程序的程序傳遞給 CreateProcess 函數(shù)的 STARTUPINFO 結(jié)構(gòu)中指定的SW_值設(shè)置顯示狀態(tài)。
        /// 11    即使擁有窗口的線程未響應(yīng),也會(huì)最小化窗口。 僅當(dāng)將窗口從不同的線程最小化時(shí),才應(yīng)使用此標(biāo)志。
        /// </param>
        /// <returns></returns>
        [DllImport("user32.dll", CharSet = CharSet.Auto, ExactSpelling = true)]
        public static extern int ShowWindow(IntPtr hwnd, int nCmdShow);

?

3.移動(dòng)并激活窗口的一些細(xì)節(jié)

?移動(dòng)并激活窗口后,可能會(huì)因?yàn)橐恍┰颍瑢?dǎo)致窗口移動(dòng)了,也激活了,但被疊在其他窗口下面。

預(yù)設(shè)兩種方案:

  1).遍歷所有窗口,并用ShowWindow隱藏

  2).模擬按下Win + M 最小化所有窗口,再激活需要調(diào)整的窗口

這里只對(duì)第二種方案做示例:

  1).引入U(xiǎn)ser32函數(shù)keybd_event

        [DllImport("user32.dll", CharSet = CharSet.Auto, ExactSpelling = true)]
        public static extern int ShowWindow(IntPtr hwnd, int nCmdShow);
        /// <summary>
        /// 
        /// </summary>
        /// <param name="bVk">虛擬鍵值</param>
        /// <param name="bScan">0</param>
        /// <param name="dwFlags">按下0,釋放2</param>
        /// <param name="dwExtraInfo">0</param>
        [DllImport("user32.dll", CharSet = CharSet.Auto, EntryPoint = "keybd_event")]
        public static extern void keybd_event(byte bVk, byte bScan, int dwFlags, int dwExtraInfo);

  2).模擬按鍵文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-463121.html

    keybd_event(0x5B, 0, 0, 0);
    keybd_event(77, 0, 0, 0);
    keybd_event(0x5B, 0, 0x02, 0);
    keybd_event(77, 0, 0x02, 0);
    //0x5B == Win鍵
    //77 == M鍵

4.示例:將兩個(gè)窗口在屏幕上并排顯示,實(shí)現(xiàn)分屏效果

            var width = Screen.PrimaryScreen.WorkingArea.Width / 2;
            var height = Screen.PrimaryScreen.WorkingArea.Height;
            keybd_event(0x5B, 0, 0, 0);
            keybd_event(77, 0, 0, 0);
            keybd_event(0x5B, 0, 0x02, 0);
            keybd_event(77, 0, 0x02, 0);

            Task.Run(() =>
            {
                Task.Delay(500).Wait();
                ShowWindow(WindowsHandle1, 1);
                MoveWindow(WindowsHandle1, 0, 0, width, height, true);
                ShowWindow(WindowsHandle2, 1);
                MoveWindow(WindowsHandle2, width, 0, width, height, true);
            });

??5.獲取MoveWindow的LastError

//上方調(diào)用MoveWindow
int i = System.Runtime.InteropServices.Marshal.GetLastWin32Error();
  • 系統(tǒng)錯(cuò)誤代碼 (0-499) (0x0-0x1f3)
  • 系統(tǒng)錯(cuò)誤代碼 (500-999) (0x1f4-0x3e7)
  • 系統(tǒng)錯(cuò)誤代碼 (1000-1299) (0x3e8-0x513)
  • 系統(tǒng)錯(cuò)誤代碼 (1300-1699) (0x514-0x6a3)
  • 系統(tǒng)錯(cuò)誤代碼 (1700-3999) (0x6a4-0xf9f)
  • 系統(tǒng)錯(cuò)誤代碼 (4000-5999) (0xfa0-0x176f)
  • 系統(tǒng)錯(cuò)誤代碼 (6000-8199) (0x1770-0x2007)
  • 系統(tǒng)錯(cuò)誤代碼 (8200-8999) (0x2008-0x2327)
  • 系統(tǒng)錯(cuò)誤代碼 (9000-11999) (0x2328-0x2edf)
  • 系統(tǒng)錯(cuò)誤代碼 (12000-15999) (0x2ee0-0x3e7f)

到了這里,關(guān)于根據(jù)窗口句柄,移動(dòng)/激活窗口的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 【Office激活】學(xué)校正版Office已激活成功仍彈出激活窗口

    【Office激活】學(xué)校正版Office已激活成功仍彈出激活窗口

    通過(guò)學(xué)校的Office軟件激活窗口,顯示已成功激活Office,但是打開相關(guān)Office軟件仍會(huì)彈出激活(登錄)窗口,賬戶設(shè)置里顯示需要激活。 本機(jī)原先預(yù)裝了家庭版的Office(僅含Word、Excel、PPT),因?yàn)檎n程需要(Acess軟件),故卸載了原裝的Office,安裝了學(xué)校的增強(qiáng)版Office2016(20

    2024年02月05日
    瀏覽(51)
  • 論多窗口相互關(guān)聯(lián)下window.open打開已在的窗口時(shí)只激活不刷新的實(shí)現(xiàn)方案

    論多窗口相互關(guān)聯(lián)下window.open打開已在的窗口時(shí)只激活不刷新的實(shí)現(xiàn)方案

    前端博主,熱衷各種前端向的騷操作,經(jīng)常想到哪就寫到哪,如果有感興趣的技術(shù)和前端效果可以留言~博主看到后會(huì)去代替大家踩坑的~ 主頁(yè): oliver尹的主頁(yè) 格言: 跌倒了爬起來(lái)就好~ 來(lái)個(gè)關(guān)注吧,點(diǎn)個(gè)贊吧,謝謝 近期,我司有個(gè)小伙伴遇到這么個(gè)場(chǎng)景實(shí)現(xiàn)起來(lái)感覺有點(diǎn)

    2024年02月04日
    瀏覽(94)
  • python --根據(jù)windows窗口名稱、進(jìn)程pid打開窗口(pygetwindow詳解)

    簡(jiǎn)介: pygetwindow 是一個(gè)Python庫(kù),用于獲取、操作和管理當(dāng)前打開的窗口。它提供了一些常用的窗口操作方法,包括獲取窗口句柄,獲取窗口位置和大小,移動(dòng)和調(diào)整窗口大小,最小化、最大化和還原窗口,以及模擬輸入和焦點(diǎn)控制等。 安裝 詳解 獲取當(dāng)前所有窗口 獲取指定標(biāo)

    2024年02月07日
    瀏覽(69)
  • HTML標(biāo)簽根據(jù)瀏覽器窗口大小自適應(yīng)

    1.使用calc實(shí)現(xiàn)自適應(yīng) (需要父盒子寬高固定) 2.使用flex布局,兩欄布局,三欄布局 文章就到這里啦,本人功力尚淺,若有不妥之處請(qǐng)諒解指正,謝謝!

    2024年02月11日
    瀏覽(24)
  • PyQt5:窗口大小根據(jù)屏幕大小自適應(yīng)調(diào)整
  • Angular:根據(jù)瀏覽器縮放比例,自適應(yīng)窗口大小

    Angular:根據(jù)瀏覽器縮放比例,自適應(yīng)窗口大小

    實(shí)際生產(chǎn)過(guò)程中,客戶有時(shí)會(huì)提出一些界面優(yōu)化的需求。拿到需求后,你會(huì)發(fā)現(xiàn)與前端框架設(shè)計(jì)理念背道而馳,但也要盡量滿足,因?yàn)榭蛻艟褪巧系邸?前不久,就接到一個(gè)優(yōu)化需求,客戶要求縮放屏幕,界面要自動(dòng)適應(yīng)屏幕大小。當(dāng)時(shí)我腦海里閃現(xiàn)了幾個(gè)字:“太殘暴了”!

    2024年02月04日
    瀏覽(33)
  • js特效——根據(jù)鼠標(biāo)位置移動(dòng)的圖片

    1、offsetX offset意為偏移量,是事件對(duì)象距左上角為參考原點(diǎn)的距離。以元素盒子模型的內(nèi)容區(qū)域的左上角為參考點(diǎn)。不包括border。 2、clientX 事件對(duì)象相對(duì)于瀏覽器窗口可視區(qū)域的X,Y坐標(biāo)(窗口坐標(biāo)),可視區(qū)域不包括工具欄和滾動(dòng)條 3、pageX 事件對(duì)象相對(duì)于整個(gè)文檔的坐標(biāo)以像素為

    2024年02月03日
    瀏覽(27)
  • 【AHK】鼠標(biāo)調(diào)整窗口大小/移動(dòng)窗口位置/窗口置頂/透明度

    通過(guò)AHK,設(shè)置窗體大小或位置,首先是兩種鼠標(biāo)調(diào)節(jié)窗體方案,后面是快捷鍵,注意修改快捷鍵的位置有兩個(gè),仿照Ubuntu調(diào)節(jié)窗體的快捷鍵 Alt+F7、Alt+F8,個(gè)人感覺比要按著ALT調(diào)節(jié)的小工具要好用一點(diǎn)。 如果換成單個(gè)F7、F8觸發(fā),只需要將多出的GetKeyState刪除即可,具體函數(shù)意

    2024年02月12日
    瀏覽(81)
  • 【Unity】攝像機(jī)跟隨鼠標(biāo)移動(dòng)以物體為中心旋轉(zhuǎn) 物體根據(jù)視線方向移動(dòng)

    【Unity】攝像機(jī)跟隨鼠標(biāo)移動(dòng)以物體為中心旋轉(zhuǎn) 物體根據(jù)視線方向移動(dòng)

    描述 實(shí)現(xiàn)攝像機(jī)根據(jù)鼠標(biāo)移動(dòng)跟隨物體旋轉(zhuǎn),以攝像機(jī)前物體為中心,攝像機(jī)圍繞物體旋轉(zhuǎn),并使攝像機(jī)時(shí)刻指向物體 實(shí)現(xiàn)效果 Unity 組件設(shè)置 Camera 組件設(shè)置 Body 組件設(shè)置 實(shí)現(xiàn)代碼 CameraRotateMove.cs 攝像機(jī)跟隨和旋轉(zhuǎn) move_better.cs 物體根據(jù)按鍵移動(dòng)

    2024年02月08日
    瀏覽(41)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包