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中開啟資源時,它都把這一行 刪除掉了。我之所以...