Wrong character in ClipBoard.AsText??
In Delphi, use ClipBoard unit, a common method "ClipBoard.AsText" is doing a wrong way when using non-English character. How to fix it? Look into the source code, you will find VCL use CF_TEXT to do the job (change it to CF_UNICODETEXT)!
Now we can use following code to due with the problem!
---Chinese---
使用Delphi的剪贴板的AsText方法会导致非英语出现乱码,怎么解决?改用Unicode就OK啦
procedure SetClipboardText(AStr: string);
var // SetBuffer(CF_TEXT, PChar(Value)^, Length(Value) + 1);
Data: THandle;
DataPtr: Pointer;
Size: Integer;
WStr: PWideChar;
begin
Size := Length(AStr) * 4;
WStr := AllocMem(Size);
try
// convert to Unicode
StringToWideChar(AStr, WStr, Size);
OpenClipboard(0);
EmptyClipboard;
Data := GlobalAlloc(GMEM_MOVEABLE+GMEM_DDESHARE, Size);
try
DataPtr := GlobalLock(Data);
try
Move(WStr^, DataPtr^, Size);
SetClipboardData(CF_UNICODETEXT, Data);
finally
GlobalUnlock(Data);
end;
except
GlobalFree(Data);
raise;
end;
finally
CloseClipboard;
FreeMem(WStr);
end;
end;
mathsfan补充:好久没更新了,顺便来更新一下。
文章转自:
http://blog.csdn.net/ly_liuyang/archive/2007/09/28/1804562.aspx
分享到:
相关推荐
例如,`TClipboard.AsText`用于获取剪贴板上的文本内容,`TClipboard.Clear`用于清空剪贴板,而`TClipboard.SetAsText`则可以将指定的文本内容放到剪贴板上。 要实现剪贴板监测,我们需要在程序中设置一个定时器(`...
本篇文章将详细探讨如何在Delphi中获取剪贴板中的Excel数据,并将其封装成自定义的数据集。 首先,我们要理解剪贴板在操作系统中的作用。剪贴板是操作系统提供的一种临时存储区域,用户可以将数据复制到剪贴板,...
通过以上方法,可以有效地解决Delphi应用程序在使用SQLite3数据库时遇到的中文乱码问题。对于开发者而言,理解不同编码间的转换机制,以及如何在代码中实现这些转换,是非常重要的技能,这不仅可以解决当前的问题,...
这是我用Delphi写的一个可以自动监视剪贴板的程序;可将监视得到的文本保存到文本文件。
例如,`TClipboard.ContainsFormat`方法可以检查剪贴板上是否存在特定格式的数据,`TClipboard.AsBitmap`和`TClipboard.AsText`则分别用于获取剪贴板中的位图数据和文本数据。 在这个项目中,程序可能会监听Windows...
Delphi 剪贴板监视,这里使用了Delphi中的 Clipbrd操作类,可监视复制到剪贴板中的数据,只要有复制的操作,复制的文字就会自动显示在监视器文本框中,如运行截图所示,文本框会显示任意复制到剪贴板中的数据,不过...
敝人近期整理的客户端与服务端通信实例,数据编码约定采用UTF-8编码,解决中文乱码问题.ServerSocket组件可以同时接受一个或多个ClientSocket组件的连接请求,并与每个ClientSocket组件建立单独的连接,进行单独的...
4. 错误处理:处理可能出现的API调用错误,如权限问题或剪贴板已被其他程序占用。 标签中提到了"朱建强",这可能是作者的名字,他可能分享了更多的Delphi编程作品。如果你对Delphi编程感兴趣,可以通过搜索这个标签...
这个单元提供了如`Clipbrd.Clear`、`Clipbrd.ContainsText`、`Clipbrd.GetText`等方法,方便地与剪贴板进行交互。 创建剪贴板查看器的第一步是建立一个新的Delphi项目。在项目中,添加一个主窗体,并在上面放置一些...
需要注意的是,由于剪贴板是全局共享的,所以进行剪贴板操作时需要考虑到线程安全和多线程环境下的同步问题。 在提供的"剪贴板监视"压缩包文件中,可能包含了实现这一功能的Delphi源代码示例。这些代码可能包括了...
敝人近期整理的客户端与服务端通信实例,数据编码约定采用UTF-8编码,解决中文乱码问题.ServerSocket组件可以同时接受一个或多个ClientSocket组件的连接请求,并与每个ClientSocket组件建立单独的连接,进行单独的...
本资源“Delphi改变桌面壁纸以及监视剪贴板内容”显然涉及到两个核心知识点:一是如何使用Delphi程序来修改Windows系统的桌面背景,二是如何利用Delphi实现对系统剪贴板内容的监控。 首先,让我们深入探讨如何使用...
### 在DELPHI中使用MyDAC连接MySQL数据库时中文显示乱码的解决方法 #### 背景介绍 在软件开发过程中,特别是涉及到多语言环境的应用程序开发时,字符编码问题常常成为开发者需要解决的一个重要问题。对于使用...
在Delphi编程环境中,获取剪贴板中的图像是一项常见的任务,尤其在涉及到用户交互和数据交换的场景下。本文将详细讲解如何利用Delphi的API函数来实现这一功能,并提供一个简单的源码示例。 首先,剪贴板是操作系统...
**log4delphi 0.8 for XE2 解决中文乱码问题详解** `log4delphi` 是一个基于 Delphi 开发的开源日志记录框架,它为 Delphi 应用程序提供了灵活的日志记录功能。这个框架是受到了 Java 语言中的 `log4j` 的启发,为 ...
这个“Delphi监控剪切板的内容”示例可能是关于如何使用Delphi来监听和处理操作系统剪贴板中的数据变化。下面将详细讨论如何在Delphi程序中实现这一功能。 首先,我们要理解Windows API在剪贴板操作中的作用。剪贴...
在Delphi项目中,首先需要导入`Clipbrd`单元,它包含了处理剪贴板操作所需的类和方法。 ```delphi uses Clipbrd; ``` 2. **打开Word文档**: 使用`MSOInterfaces`单元中的`TWordApplication`类来创建一个Word...
标题中的“delphi XE10写的,检测windows剪贴板中文本长度的小程序源码”揭示了这个项目是使用Delphi XE10开发的一个小型应用程序,其主要功能是检查Windows操作系统剪贴板中当前存储的文本内容的长度。Delphi是一款...
在Delphi编程环境中,剪贴板操作是常见的数据交换手段,尤其在处理图像时。本教程将深入探讨如何使用Delphi实现剪贴板上的图像复制和粘贴功能。Delphi的VCL(Visual Component Library)框架提供了丰富的API,使得...
总结起来,这个"用Delphi写的从剪切板获取图片Base64String的ActiveX插件"是一个高效的解决方案,它利用了Delphi的强大编程能力,结合ActiveX技术实现了从剪切板读取图片并转化为网络友好的Base64字符串。...