向窗口句柄发送字符串

原创 2007年09月12日 18:52:00

用剪贴板进行粘贴和复制unicode 字符串
包括汉字.

HLOCAL LocalAlloc(
UINT uFlags,
UINT uBytes
);
This function allocates the specified number of bytes from the heap. In the linear Microsoft® Windows® CE application

programming interface (API) environment, there is no difference between the local heap and the global heap.

#include <wceatl.h>
#define GlobalAlloc LocalAlloc

LPVOID GlobalLock(
  HGLOBAL hMem   // handle to global memory object
);


The GlobalLock function locks a global memory object and returns a pointer to the first byte of the object's memory

block.

Note  The global functions are slower than other memory management functions and do not provide as many features.

Therefore, new applications should use the heap functions. However, the global functions are still used with DDE and the

clipboard functions.

BOOL GlobalUnlock(
  HGLOBAL hMem   // handle to global memory object
);
The GlobalUnlock function decrements the lock count associated with a memory object that was allocated with

GMEM_MOVEABLE. This function has no effect on memory objects allocated with GMEM_FIXED.

Note  The global functions are slower than other memory management functions and do not provide as many features.

Therefore, new applications should use the heap functions. However, the global functions are still used with DDE and the

clipboard functions.

 


//wxg add  2007 -8-30
BOOL CopyAndPaste( LPTSTR pstr)
{
 
 HGLOBAL   hglbCopy;    
 LPTSTR   lpstrCopy= NULL;       
 
 
 if   (!OpenClipboard(g_hwndTran))    
  return 0L  ;    
 EmptyClipboard();   
 
 
 //   Allocate   a   global   memory   object   for   the   text.    
 hglbCopy   =   GlobalAlloc(GMEM_MOVEABLE, wcslen(pstr)*2+2);    
 if   (hglbCopy   ==   NULL)    
 {    
  CloseClipboard();    
  return 0L   ;    
 }    
 lpstrCopy   =   (LPTSTR)GlobalLock(hglbCopy);
 memset(lpstrCopy,0,wcslen(pstr)*2+2);
 memcpy(lpstrCopy,   pstr,  wcslen(pstr)*2);  
 *(lpstrCopy+wcslen(pstr)*2)=_T('/0');
 *(lpstrCopy+wcslen(pstr)*2+1)=_T('/0');
 GlobalUnlock(hglbCopy);
 
 //   Place   the   handle   on   the   clipboard.    
 SetClipboardData(CF_UNICODETEXT,   hglbCopy);    
 CloseClipboard();    
 //SetFocus(g_hwndTran);  
 
 ::SendMessage(g_hwndTran,   WM_PASTE,   0,   0);
 GlobalFree(hglbCopy);
 memset(lpstrCopy,0,wcslen(pstr)*2+2);
 return TRUE;
}

Best Regards To All! 

相关文章推荐

窗口句柄自动抓取

  • 2016年09月02日 14:53
  • 653KB
  • 下载

VC_各种情况下的窗口句柄的获取

  • 2012年04月28日 16:36
  • 31KB
  • 下载

C#获取进程的主窗口句柄

通过调用Win32 API实现。 public class User32API {     private static Hashtable processWnd = null;     ...

取窗口句柄+进程名+进程ID

  • 2010年04月28日 08:34
  • 21KB
  • 下载

查看窗口句柄

  • 2015年12月17日 16:09
  • 853KB
  • 下载

[python爬虫] Selenium切换窗口句柄及调用Chrome浏览器

因为我的博客是根据我每个阶段自己做的事情而写的,所以前言可能有点跑题,但它更有利于让我回忆这个阶段自己的所作所为。这篇文章主要介绍Selenium爬虫获取当前窗口句柄、切换窗口句柄以及调用Chrome...

取进程和窗口句柄

  • 2013年11月27日 14:16
  • 5KB
  • 下载

VC 各种情况下的窗口句柄的获取

AfxGetMainWnd函数功能:AfxGetMainWnd获取自身窗口句柄函数原型:HWND hWnd = AfxGetMainWnd()->m_hWnd;GetTopWindow函数功能:该函数...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:向窗口句柄发送字符串
举报原因:
原因补充:

(最多只允许输入30个字)