關於控制乙個外部視窗的相關問題

2021-06-16 01:42:16 字數 2112 閱讀 7148

using system;

using system.diagnostics;

using system.runtime.interopservices;

using system.threading;

using system.text;

class program

catch (exception ex)

}/// 

/// 獲得應用程式主窗體控制代碼

/// 

/// 窗體的標題

/// 每次查詢的延時

/// 限制迴圈重複的最大次數

/// 

static intptr findmainwindowhandle(string caption, int delay, int maxtries)

static intptr findtoplevelwindow(string caption, int delay, int maxtries)

else

} while (!formfound && attempts < maxtries);

if (mwh != intptr.zero)

return mwh;

else

throw

new exception("could not find main window");

}/// 

/// 獲得控制項的控制代碼

/// 

/// 目標控制項的父窗體的控制代碼

/// 目標控制項的索引值

/// 目標控制項的控制代碼

static intptr findwindowbyindex(intptr hwndparent, int index)

while (ct < index && result != intptr.zero);

return result;}}

/// 

/// 自動實現滑鼠單擊乙個控制項

/// 

/// 要單擊的目標控制項

static

void clickon(intptr hcontrol)

/// 

/// 傳送字元給基於文字的控制項

/// 

/// 目標控制項

/// 要傳送的字元

static

void sendchar(intptr hcontrol, char c)

/// 

/// 傳送字串給基於文字的控制項

/// 

/// 目標控制項

/// 要傳送的字串

static

void sendchars(intptr hcontrol, string s)

}指定要使用的非受控函式所在的dll檔案

[dllimport("user32.dll", entrypoint = "findwindow", charset = charset.auto)]

//使用win32 api函式 findwindow得到待測主窗體的控制代碼

static

extern intptr findwindow(string lpclassname, string lpwindowname);

[dllimport("user32.dll", entrypoint = "findwindowex", charset = charset.auto)]

//使用win32 api函式 findwindowex得到有名字的控制項或者窗體的控制代碼

static

extern intptr findwindowex(intptr hwndparent, intptr hwndchildafter, string lpszclass, string lpszwindow);

[dllimport("user32.dll", entrypoint = "sendmessage", charset = charset.auto)]

//使用win32 api函式 sendmessage 向應用程式傳送訊息,windows訊息處理完畢後返回

static

extern

void sendmessage1(intptr hwnd, uint msg, int wparam, int lparam);

}

關於視窗中TopMost屬性的乙個問題

在開發乙個自定義下拉控制項時,由於需要的是乙個可調整尺寸的彈出視窗,因此使用了動態生成視窗的方法,在控制項的構造過程中生成了乙個視窗。在顯示下拉列表時顯示該視窗,並使用bringtofront 方法將視窗顯示在前方。控制項功能正常。使用了一段時間後,使用者要求增加類似ie位址列那樣的自動完成功能。即...

c 視窗布局的乙個問題

同事做了乙個msn功能的客戶端工具.在主視窗上有乙個treelist用來顯示聯絡人.每個節點 聯絡人 雙擊時彈出乙個對話方塊,用與和對方互動.可以說這是乙個非常簡單的gui而局 拋開通訊部分 但雙擊節點後彈出的視窗總是自動在後面.當主視窗最大化時用於互動的視窗就看不到了,手動切換非常麻煩.分析 彈出...

乙個關於 include的問題

2001年05月03日 12 04 00 乙個關於 include的問題 趙湘寧 問題 我試圖將乙個標頭檔案包含在工程的資源檔案中。為此在.rc檔案中新增了如下一行 include myfile.h 雖然執行沒有問題,但是每次在visual studio中開啟資源時,它都把這一行 刪除掉了。我之所以...