線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1980
推到 Plurk!
推到 Facebook!

如何在Form最小化後,取得螢幕上任一點座標的RGB值?

答題得分者是:yorkland
howdz
一般會員


發表:17
回覆:12
積分:5
註冊:2003-12-16

發送簡訊給我
#1 引用回覆 回覆 發表時間:2007-02-10 12:30:21 IP:61.229.xxx.xxx 訂閱
我只會取得Form上某一點的RGB值,
但是我現在想把Form最小化成工具列圖示後,
取得螢幕上任一點座標的RGB值,
並且讓滑鼠去點其他程式另一點位置,

那我該怎麼讓這些動作可以作用在當下螢幕上任一視窗,
而不用限定在某單一視窗呢?

例如:我想做一個滑鼠自動點擊程式,讓滑鼠自動點某一視窗,
但在某些情形下會跳出對話框,我想在對話框出現時自動按下Enter,然後滑鼠繼續點原來的地方。
所以我想抓取那個對話框出現時螢幕的改變,當成是偵測對話框出現的依據.....
yorkland
高階會員


發表:2
回覆:138
積分:108
註冊:2004-12-17

發送簡訊給我
#2 引用回覆 回覆 發表時間:2007-02-14 17:36:08 IP:60.248.xxx.xxx 訂閱
以下程式段不知道對你有沒有幫忙.. Bitmap:=TBitmap.Create; // 取得DC Handle DesktopDC:=GetDC(GetDesktopWindow); Bitmap.Width:=Screen.Width; Bitmap.Height:=Screen.Height; // 以下指令會把整個畫面畫到之前Create的Bitmap物件 BitBlt(Bitmap.Canvas.Handle,0,0,Bitmap.Width,Bitmap.Height,DesktopDC,0,0,SRCCOPY); // 即然已經入Bitmap物件, 想要取得那一塊的圖像資料就不是問題了。
howdz
一般會員


發表:17
回覆:12
積分:5
註冊:2003-12-16

發送簡訊給我
#3 引用回覆 回覆 發表時間:2007-02-14 21:39:49 IP:61.229.xxx.xxx 訂閱
多謝!
對我來說,DesktopDC:=GetDC(GetDesktopWindow); 這一行是關鍵,
因為我不知道的就是這方法,謝謝,我正學著用這function中...... ^^
bugmans
高階會員


發表:95
回覆:322
積分:188
註冊:2003-04-12

發送簡訊給我
#4 引用回覆 回覆 發表時間:2007-02-15 18:38:09 IP:125.225.xxx.xxx 未訂閱
http://delphi.ktop.com.tw/board.php?cid=63&fid=329&tid=10724
我找到另一個範例
http://delphi.ktop.com.tw/board.php?cid=30&fid=69&tid=58214
發問者給的連結也有範例下載
利用GetPixel這個API
color=GetPixel(hdc, pt.x, pt.y);
howdz
一般會員


發表:17
回覆:12
積分:5
註冊:2003-12-16

發送簡訊給我
#5 引用回覆 回覆 發表時間:2007-02-15 22:32:17 IP:61.229.xxx.xxx 訂閱
恩,看到範例程式了,感謝 bugmans 板友提供範例,非常感謝!
系統時間:2024-05-06 18:31:04
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!