SendMessage 宣告 第3,4引數 int / IntPtr |
尚未結案
|
rik
一般會員 發表:40 回覆:81 積分:24 註冊:2004-09-24 發送簡訊給我 |
在我之前擷取網路攝影機影像那篇
所得到程式 其SendMessage 宣告為
public static extern int SendMessage(int hWnd, uint Msg, int wParam, int lParam);
最後兩個引數 種類為int 在msdn上收尋SendMessage 為
LRESULT SendMessage( HWND hWnd,
UINT Msg,
WPARAM wParam,
LPARAM lParam
);
public IntPtr WParam {get; set;}
public IntPtr LParam{get; set;}
最後兩個引數 種類為IntPtr 問題:
何者正確/較好 如
SendMessage(mCapHwnd, WM_CAP_GET_FRAME, 0, 0);
如果使用IntPtr 類別 將無法用0 給值
那該如何更改呢? 但如果用int
如
SendMessage(mCapHwnd ,WM_CAP_FILE_SAVEAS ,X,Y);
在msdn查詢得知
WM_CAP_FILE_SAVEAS
wParam = (WPARAM) 0;
lParam = (LPARAM) (LPVOID) (LPSTR) (szName);
wParam lParam 又該如何給值?
------
時與不時的撿起身旁的拼圖碎片 不懂的部分 半解的部分 就像一塊拼圖 留於腦中 等待拼出完美解答的一天 這就是我的思路 我的創作方法 而我也接受 這作法所帶來的"代價" - 時間 |
windblown
中階會員 發表:0 回覆:117 積分:98 註冊:2003-11-14 發送簡訊給我 |
我的想法: 再增加一個 SendMessage() 給 capFileSaveAs()
[DllImport("user32.dll",EntryPoint="SendMessage")] public static extern int SendMessage(int hWnd, uint Msg, int wParam, [MarshalAs(UnmanagedType.LPWStr)]string fileName); public static bool capFileSaveAs(int hwnd, string strFName) { return 0!=SendMessage(hwnd, WM_CAP_FILE_SAVEAS, 0, strFName); } |
rik
一般會員 發表:40 回覆:81 積分:24 註冊:2004-09-24 發送簡訊給我 |
引言: 我的想法: 再增加一個 SendMessage() 給 capFileSaveAs()使用 public static extern int SendMessage(int hWnd, uint Msg, int wParam, [MarshalAs(UnmanagedType.LPWStr)]string fileName); 時 (1) 當我前置動作 需要作 SendMessage(mCapHwnd,WM_CAP_DRIVER_CONNECT ,0,0); //與驅動程式連結 SendMessage(mCapHwnd,WM_CAP_SET_PREVIEW ,0,0); SendMessage(mCapHwnd,WM_CAP_SET_SCALE ,0,0); SendMessage(mCapHwnd,WM_CAP_SET_PREVIEWRATE ,1000/30,0); //每秒影像變化張數 SendMessage(mCapHwnd,WM_CAP_SET_OVERLAY ,0,0); 0 (int) 將會不符合 而無法編譯過 有方法解決嗎? (2) 我找到的定義是 int uint IntPtr IntPtr 我會同意 int uint int int 是因為 取得的範例是這樣寫 而且可以編譯過 也可以執行一段時間 可以請你提供一下 如何使用 public static extern int SendMessage(int hWnd, uint Msg, int wParam, [MarshalAs(UnmanagedType.LPWStr)]string fileName); 嗎0.0a" (因為不是只用capFileSaveAs就夠了= =") 測試 (1) 宣告1種 [DllImport("user32.dll",EntryPoint="SendMessage")] public static extern int SendMessage(int hWnd, uint Msg, int wParam, [MarshalAs(UnmanagedType.LPWStr)]string fileName); public static bool capFileSaveAs(int hwnd, string strFName) { return 0!=SendMessage(hwnd, WM_CAP_FILE_SAVEAS, 0, strFName); } 然後執行 mCapHwnd = capCreateCaptureWindowA("WebCap1", 0, 0, 0, m_Width, m_Height, this.Handle.ToInt32(), 0); capFileSaveAs(mCapHwnd,@"C:\test.bmp"); 沒反應(就是沒生出test這張圖) 測試 (2) 同時宣告2種 [DllImport("user32.dll",EntryPoint="SendMessage")] public static extern int SendMessage(int hWnd, uint Msg, int wParam, [MarshalAs(UnmanagedType.LPWStr)]string fileName); public static bool capFileSaveAs(int hwnd, string strFName) { return 0!=SendMessage(hwnd, WM_CAP_FILE_SAVEAS, 0, strFName); } [DllImport("user32", EntryPoint="SendMessage")] public static extern int SendMessage(int hWnd, uint Msg, int wParam, int lParam); 先執行 mCapHwnd = capCreateCaptureWindowA("WebCap1", 0, 0, 0, m_Width, m_Height, this.Handle.ToInt32(), 0); SendMessage(mCapHwnd,WM_CAP_DRIVER_CONNECT ,0,0); //與驅動程式連結 SendMessage(mCapHwnd,WM_CAP_SET_PREVIEW ,0,0); SendMessage(mCapHwnd,WM_CAP_SET_SCALE ,0,0); SendMessage(mCapHwnd,WM_CAP_SET_PREVIEWRATE ,1000/30,0); //每秒影像變化張數 SendMessage(mCapHwnd,WM_CAP_SET_OVERLAY ,0,0); 然後執行 capFileSaveAs(mCapHwnd,@"C:\test.bmp"); 也沒反應(就是沒生出test這張圖) 發表人 - rik 於 2005/08/18 00:15:20[DllImport("user32.dll",EntryPoint="SendMessage")] public static extern int SendMessage(int hWnd, uint Msg, int wParam, [MarshalAs(UnmanagedType.LPWStr)]string fileName); public static bool capFileSaveAs(int hwnd, string strFName) { return 0!=SendMessage(hwnd, WM_CAP_FILE_SAVEAS, 0, strFName); }
------
時與不時的撿起身旁的拼圖碎片 不懂的部分 半解的部分 就像一塊拼圖 留於腦中 等待拼出完美解答的一天 這就是我的思路 我的創作方法 而我也接受 這作法所帶來的"代價" - 時間 |
windblown
中階會員 發表:0 回覆:117 積分:98 註冊:2003-11-14 發送簡訊給我 |
|
rik
一般會員 發表:40 回覆:81 積分:24 註冊:2004-09-24 發送簡訊給我 |
引言: 再次抱歉,我沒有攝影機,完全無法測試,僅僅在旁邊搖旗吶喊,出出餿主意而已 >_< 我的想法比較接近 測試 (2) 的做法,可惜無法從 method 的回傳值來看看問題點在哪邊...沒關係^^ 我覺得這樣討論式的回答也不錯^^ 可以觸發想法 對我學習比較好@@" 至少因此我注意到可以同時宣告2種給值法0.0" (沒有從多載直接聯想到這) 有考慮買網路攝影機嗎? 現在不是1千有找0.0a"
------
時與不時的撿起身旁的拼圖碎片 不懂的部分 半解的部分 就像一塊拼圖 留於腦中 等待拼出完美解答的一天 這就是我的思路 我的創作方法 而我也接受 這作法所帶來的"代價" - 時間 |
windblown
中階會員 發表:0 回覆:117 積分:98 註冊:2003-11-14 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |