青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

記錄一些學習小事

Work hard

統計

留言簿

閱讀排行榜

評論排行榜

進程通信——剪貼板

由于在啟動一個進程后,操作系統會給這個進程分配 4GB 的私有地址空間,至于為何有 4GB 這么大,

那得考慮進程的私有地址空間和實際物理內存地址空間之間的映射以及頁交換等等細節問題了,這里不予討論,

既然操作系統給每一個進程分配的是私有地址空間,自然,這段地址空間也只有這個進程自己才能訪問了,
既然這段私有地址空間只能由進程本身訪問,那也就說明別的進程是不能夠隨意的訪問這個進程的地址空間的,

而上面又說任意兩個進程之間是并能夠互相訪問對方的私有地址空間的,都不能訪問了,那還通信個屁啊 ?

自然上面的訪問對方進程的私有地址空間是行不通了,那應該還有其他辦法的 !!!

如果我在物理內存中劃分出一塊內存,這一塊內存不為任何的進程所私有,但是任何的進程又都可以訪問這塊內存,

那么 進程 A 就可以往這塊內存中存放數據 Data ,然后 進程 B 也是可以訪問這塊內存的,從而 進程 B 就可以訪問到數據 Data 了,

這樣不就實現了 進程 A 進程 B 之間的通信了 !!!

而上面的這種思路就是剪貼板了。

當然解決進程間通信還有好幾種思路,本文暫只介紹利用剪貼板來實現進程間的通信。
前面
這段話是我抄過來的,呵呵,自己寫不了這種書面語。
我寫一下我對剪貼板的使用,我也是新學的,有不對的地方還請大家指點。

向剪貼板中寫入數據
打開剪貼板 OpenClipboard
清空剪貼板 EmptyClipboard
設置剪貼板數據SetClipboardData
關閉剪貼板CloseClipboard

從剪貼板讀取數據
打開剪貼板 OpenClipboard
判斷數據類型IsClipboardFormatAvailable
得到剪貼板數據GetClipboardData
關閉剪貼板CloseClipboard

我在說下具體的函數怎么用
Openclipboard大家在msdn上可以看到 僅有一個參數hWndNewOwner
這個參數表明那個窗口擁有剪貼板的使用權 已在此窗口中打開,別的窗口中調用openclipboard就會失敗
這個參數可以設置成null。If this parameter is NULL, the open clipboard is associated with the current task
呵呵,這個設成null之后 在后邊的 setclipboarddata 就不能采用延遲發送了。因為……等會說延遲發送就會知道了。(這是我試驗得出的結論,應該沒問題)
這個參數我們暫且設為窗口句柄 m_hWnd(我用的MFC編的)
EmptyClipboard這個函數就沒什么說的了。就是清空剪貼板的數據 還有就是The function then assigns ownership of the clipboard to the window that currently has the clipboard open.
SetClipboardData( UINT uFormat, HANDLE hMem);
有兩個參數第一個參數是數據類型 我們設置成CF_UNICODETEXT。
第二個參數是the hMem parameter identifies a memory object, the object must have been allocated using the function with the GMEM_MOVEABLE flag.
這句話得意思就是 hmem是塊內存對象的句柄 這塊內存要是GMEM_MOVEABLE 型的。這又要引進一個申請內存的函數。平常我們用的malloc new 等都是
在自己的進程中申請空間,如果用他們 我們的通信也就通不成了。所以我們要申請個全局的內存空間
GlobalAlloc(GMEM_MOVEABLE,dwBytes);第一個參數就是可移動的意思(當別人申請一塊大空間的時候 比如我們申請的空間比較散亂占用了一部分空間 別人就申請不了一整塊大的空間了。這樣我們的空間如果是可移動的,就會被移動的凝聚一些,別人就有地方申請大的空間了,紅色是我們申請的凌亂的空間,綠色是又想申請的一大塊)。

這個我不在這里多講,內存管理我懂的也不太多。不懂的可以找找內存管理方面的書。 第二個參數就是空間大小。

這樣我們完成了設置剪貼板數據 ,然后我們關閉剪貼板就行了。
讀取簡單一些。
::OpenClipboard(m_hWnd)
IsClipboardFormatAvailable(CF_UNICODETEXT)//判斷剪貼板內數據類型
HANDLE hClip=::GetClipboardData(CF_UNICODETEXT)//得到剪貼板的句柄
然后就是使用里面的數據了。這里要注意,一定要給數據上鎖 ,就是說我們在使用數據的這個時間內,別人不準移動我們的內存。這個大家能理解吧。
TCHAR * p=(TCHAR *)GlobalLock(hClip);//強制裝換成我們的寬字符  上鎖
MessageBox(p);輸出即可
  GlobalUnlock(hClip);  解鎖
  ::CloseClipboard();
這就完成了,我貼一段代碼上來哦

//這個是寫入剪貼板
    if(!::OpenClipboard(m_hWnd))
    
{
        MessageBox(_T(
"打開剪切板失敗"));
    }

    ::EmptyClipboard();
      CString str
=_T("hahaaha");
      HGLOBAL  hG
=GlobalAlloc(GMEM_MOVEABLE,sizeof(_T("hahaaha"))+2);
      _tcscpy_s((wchar_t 
*)GlobalLock(hG),sizeof(_T("hahaaha"))/2+1,str);
      GlobalUnlock(hG);
    ::SetClipboardData(CF_UNICODETEXT,hG);
    ::C
//這個是從剪貼板中讀出數據
if(!::OpenClipboard(m_hWnd))
         
{
             MessageBox(_T(
"打開剪切板失敗"));
            
return ;
         }

        
if (::IsClipboardFormatAvailable(CF_UNICODETEXT))
    
{

        HANDLE hClip
=::GetClipboardData(CF_UNICODETEXT);
        TCHAR 
* p=(TCHAR *)GlobalLock(hClip);
        MessageBox(p);
        GlobalUnlock(hClip);
        ::CloseClipboard();
    }

    
else
    
{
        MessageBox(_T(
"剪貼板的內容不是unicode"));
    }


然后最后我在說說延遲發送setclipboarddata 的第二個參數傳為null 就為延遲發送
延遲發送就是一開始點寫入剪貼板的時候不寫入,然后另一個進程想要得到剪貼板里的信息的時候也就是在getclipboarddata時
系統會發個消息給我們以前的那個窗口 還記得openclipboard傳的那個m_hWnd了吧,就是給這個窗口發個消息WM_RENDERFORMAT
然后你在這個消息響應函數中進行把數據寫入剪貼板。
還有一種情況就是你在想粘貼的時候  你的原先寫入的那個程序已經關閉了,這樣的話你就帖不了了。 這樣 還有一個消息
如果你選擇了延遲發送 然后關閉應用程序的話,就會響應一個WM_RENDERALLFORMATS消息 那么你在這個響應函數中把你要寫入剪貼板得數據
寫入 就可以避免這種情況了。
啊 累死我了,可下寫完了。。。。




posted on 2011-07-31 17:11 陳曉 閱讀(2083) 評論(0)  編輯 收藏 引用


只有注冊用戶登錄后才能發表評論。
網站導航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            久久久久久亚洲精品不卡4k岛国| 老司机精品视频一区二区三区| 亚洲激情另类| 麻豆精品视频| 亚洲三级免费观看| 99riav国产精品| 欧美色图首页| 香蕉久久夜色精品| 欧美一区二区视频在线观看2020| 狠狠色香婷婷久久亚洲精品| 另类成人小视频在线| 久久蜜桃香蕉精品一区二区三区| 91久久精品一区二区别| 亚洲人精品午夜| 国产精品视频在线观看| 久久亚洲美女| 欧美麻豆久久久久久中文| 亚洲欧洲99久久| 久久九九精品| 中文一区字幕| 久久激情五月婷婷| 99国产精品99久久久久久| 一区二区三区**美女毛片| 国产在线成人| 日韩图片一区| 亚洲国产精品一区二区第四页av | 国产日韩欧美视频| 欧美gay视频激情| 欧美调教vk| 欧美成人精品一区二区三区| 欧美日韩视频第一区| 久久色在线观看| 欧美日韩成人激情| 可以看av的网站久久看| 欧美日韩精品二区| 欧美大片在线观看一区| 国产精品日日做人人爱| 麻豆国产精品va在线观看不卡| 欧美日韩影院| 亚洲国产高清一区| 狠狠色丁香久久婷婷综合丁香| 一本一道久久综合狠狠老精东影业 | 欧美新色视频| 亚洲国产日韩在线| 国产一区二区三区黄视频| 亚洲精品欧美日韩专区| 精品99一区二区| 欧美一区二区三区视频在线| 亚洲视频综合在线| 欧美成人国产| 欧美11—12娇小xxxx| 国产小视频国产精品| 亚洲精品久久久久久久久久久久| 狠狠色综合网站久久久久久久| 亚洲婷婷国产精品电影人久久| 99re6这里只有精品视频在线观看| 欧美制服丝袜第一页| 校园激情久久| 国产精品资源| 亚洲一区二区在线播放| 亚洲天堂免费观看| 欧美日韩综合一区| 一区二区国产日产| 亚洲一区二区三区在线| 欧美日韩视频在线| 亚洲另类自拍| 99亚洲一区二区| 欧美激情在线狂野欧美精品| 亚洲国产高清自拍| 日韩视频不卡| 欧美日韩一区二区三区免费 | 久久九九国产精品| 国产日韩亚洲欧美综合| 午夜精品久久久久久久| 久久精品1区| 韩国久久久久| 免费黄网站欧美| 亚洲日韩成人| 亚洲在线视频一区| 国产精品拍天天在线| 午夜精品免费视频| 久久综合九色欧美综合狠狠| 在线成人www免费观看视频| 久久综合给合| 亚洲美女少妇无套啪啪呻吟| 亚洲一区三区在线观看| 国产亚洲欧美色| 老**午夜毛片一区二区三区| 亚洲精品中文字幕女同| 亚洲一区二区影院| 国产婷婷一区二区| 欧美aⅴ一区二区三区视频| 亚洲蜜桃精久久久久久久| 性欧美超级视频| 在线观看欧美黄色| 欧美日韩在线播放三区| 午夜精品av| 亚洲欧洲日产国码二区| 亚洲欧美日韩专区| 1204国产成人精品视频| 欧美精品大片| 午夜综合激情| 亚洲精品中文字幕在线| 久久久九九九九| 一区二区三区欧美在线| 国内激情久久| 欧美日韩极品在线观看一区| 久久精品99国产精品日本| 亚洲美女网站| 欧美11—12娇小xxxx| 午夜久久久久久| 亚洲精品在线观看免费| 国产日本亚洲高清| 欧美日韩国产二区| 久久久欧美精品| 99伊人成综合| 亚洲高清av在线| 久久精品国产第一区二区三区最新章节| 亚洲精品国产精品国自产观看| 国产精品伦子伦免费视频| 欧美xxxx在线观看| 久久精品五月婷婷| 亚洲欧美成人网| 亚洲黄一区二区三区| 麻豆精品在线视频| 久久精品首页| 亚洲欧美精品一区| 在线视频亚洲一区| 亚洲激情网址| 在线观看日韩精品| 狠狠色丁香婷婷综合久久片| 国产精品视频男人的天堂| 欧美日韩在线视频观看| 欧美激情视频一区二区三区在线播放 | 欧美亚洲一区在线| 在线视频亚洲一区| aa国产精品| 亚洲精品一区二区三区樱花| 亚洲二区在线观看| 亚洲国产精品成人久久综合一区| 欧美阿v一级看视频| 久久夜色精品国产噜噜av| 久久久99精品免费观看不卡| 久久精品二区亚洲w码| 久久av资源网站| 久久精品国产免费| 久久久久久久成人| 狂野欧美一区| 男女激情久久| 欧美激情在线免费观看| 亚洲国产美女| av成人国产| 亚洲自拍另类| 久久精品99久久香蕉国产色戒| 久久国产乱子精品免费女 | 99在线精品视频| 一道本一区二区| 性欧美精品高清| 久久久久久91香蕉国产| 免费在线观看一区二区| 欧美精品一区二区蜜臀亚洲| 欧美日韩系列| 国产日本欧美一区二区三区| 在线播放国产一区中文字幕剧情欧美| 在线国产亚洲欧美| 在线综合亚洲| 久久久久久网| 亚洲国产精品嫩草影院| 一本色道久久88亚洲综合88| 亚洲一区二区三区精品动漫| 久久精品国产精品| 欧美连裤袜在线视频| 国产精品久久久久久久久免费樱桃 | 蜜桃av综合| 欧美天天在线| 在线播放中文字幕一区| 一本色道88久久加勒比精品| 欧美在线视频播放| 亚洲第一页在线| 亚洲欧洲av一区二区| 久久综合九色欧美综合狠狠| 欧美午夜精彩| 亚洲国产精品一区二区www在线| 亚洲一级二级| 欧美激情视频在线免费观看 欧美视频免费一| 最新国产成人在线观看| 欧美一级在线亚洲天堂| 欧美日本不卡高清| 精品88久久久久88久久久| 亚洲视频一区在线| 欧美福利视频在线| 午夜精品久久久久久久男人的天堂 | 国产乱码精品一区二区三区不卡 | 性色一区二区| 亚洲理论在线观看| 老司机成人网| 狠狠色丁香婷婷综合久久片| 亚洲在线中文字幕| 亚洲精品久久| 免费日韩av电影|