博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Windows消息+GlobalAddAtom 实现两程序通信
阅读量:4941 次
发布时间:2019-06-11

本文共 2009 字,大约阅读时间需要 6 分钟。

WinAPI: AddAtom、DeleteAtom、FindAtom、GetAtomName、GlobalAddAtom、GlobalDeleteAtom、GlobalFindAtom、GlobalGetAtomName 这是储存字符串的一组 API. 通过 AddAtom 储存一个字符串, 返回一个 ID; GetAtomName 通过这个 ID 可返回储存的字符串; 还可以用 FindAtom 查找、用 DeleteAtom 删除已储存的字符串. 这个储存区有分本地(程序级)和全局(系统级)两种, 带 Global 前缀的是全局的[但在 Win32 下它们是否还有区别还有待考究]. 表中的字符串不分大小写, 如果重名过来, 会增加一个 ID 引用, 但会使用最先来的字符串. -------------------------------------------------------------------------------- //声明: AddAtom(   lpString: PChar {
串指针} ): ATOM; {
返回串ID} DeleteAtom( nAtom: ATOM {
串ID} ): ATOM; {
返回串ID; 失败返回0} FindAtom( lpString: PChar {
串指针} ): ATOM; {
返回串ID; 失败返回0} GetAtomName( nAtom: ATOM; {
串ID} lpBuffer: PChar;{
缓冲区} nSize: Integer {
缓冲区大小} ): UINT; {
返回串实际长度; 失败返回0} GlobalAddAtom( lpString: PChar {
串指针} ): ATOM; {
返回串ID} GlobalDeleteAtom( nAtom: ATOM {
串ID} ): ATOM; {
返回串ID; 失败返回0} GlobalFindAtom( lpString: PChar {
串指针} ): ATOM; {
返回串ID; 失败返回0} GlobalGetAtomName( nAtom: ATOM; {
串ID} lpBuffer: PChar;{
缓冲区} nSize: Integer {
缓冲区大小} ): UINT; {
返回串实际长度; 失败返回0} -------------------------------------------------------------------------------- //举例: var n1,n2: ATOM; ps: array[0..254] of Char; begin n1 := AddAtom('万一的 Delphi 博客'); n2 := AddAtom('万一的 DELPHI 博客'); GetAtomName(n1, ps, 255); ShowMessage(ps); {
万一的 Delphi 博客} GetAtomName(n2, ps, 255); ShowMessage(ps); {
万一的 Delphi 博客} end;

 

private procedure BookMy(var msg:Tmessage);message WM_User+1000; procedure TForm1.BookMy(var msg: TMessage); var   n1:atom;   ps: array[0..254] of Char; begin if msg.Msg=WM_User+1000 then begin     n1:=msg.LParam;     GlobalGetAtomName(n1,ps,255);     Memo1.Lines.Add(ps);     GlobalDeleteAtom(n1); end; end; //Send PostMessage(FindWindow(nil,'TKSNOW'),WM_USER+1000,0,GlobalAddAtom('hello ftwsnow~!'));

 

转载于:https://www.cnblogs.com/tk-del/archive/2012/03/30/2425443.html

你可能感兴趣的文章
在OS X上的Intllij Idea中配置GlassFish
查看>>
用查表法快速转换yv12到RGB【转】
查看>>
使用公钥登录SSL
查看>>
hdu 1290_献给杭电五十周年校庆的礼物
查看>>
Nginx 入门
查看>>
openCR-用ROS代码点亮LED的方法
查看>>
豆瓣电影api
查看>>
BufferedInputStream和FileInputStream的区别
查看>>
二阶段之六
查看>>
微博爬虫 python
查看>>
中石油 【递归】普通递归关系
查看>>
vue报错Error in render: "TypeError: Cannot read property '0' of undefined"
查看>>
silverlight 隐藏ChildWindow 右上角的关闭按钮
查看>>
likely() 和 unlikely()
查看>>
03一些View总结
查看>>
MapReduce--平均分,最高,低分以及及格率的计算
查看>>
mac下管理论文的工具
查看>>
POJ3122Pie(二分)
查看>>
WF+WCF+WPF第二天--模拟超市收银
查看>>
爬取贴吧好看的桌面图片 -《狗嗨默示录》-
查看>>