如何将换行符转换为PChar字符串



我正在使用ShellExecute调用本地电子邮件客户端,并在电子邮件客户端中填充mailto Address、Subject和Body。这是我用过的代码。。。

HdrBdy := 'mailto: support@positonstudio.co.uk' +
'?Subject=Test Message Subject' +
'&Body=Positron Studio ' + fmIDEAbout.lblIDEVersion.caption +' '+ fmIDEAbout.lblBuildTarget.caption + #13+
CompInfo.SystemManufacturer + ' Model No. ' + CompInfo.SystemProductName  +#13+
'Processor ' + CompInfo.ProcessorName + ' OS Version ' + OSInfo.Description  +#13+
'----------------------------------------------------------------------------------';
ShellExecute(Self.Handle,
nil,
PChar(HdrBdy),
nil,
nil,
SW_NORMAL);

这是有效的,但正文文本在电子邮件客户端中显示为一行。如何在邮件客户端中插入多行。

您已接近目标,您需要同时拥有回车和换行。

所以你需要+#13+#10+而不是+#13+,或者你可以使用+#13#10+

我怀疑您还需要对设置为Body值的字符串进行百分比编码,以便在URL中正确传递它。

您可以使用TURLEncoding.Encode()

HdrBdy := 'mailto: support@positonstudio.co.uk' +
'?Subject=Test Message Subject' +
'&Body='+TURLEncoding.Encode('Positron Studio ' + fmIDEAbout.lblIDEVersion.caption +' '+ fmIDEAbout.lblBuildTarget.caption + #13#10+
CompInfo.SystemManufacturer + ' Model No. ' + CompInfo.SystemProductName  +#13#10+
'Processor ' + CompInfo.ProcessorName + ' OS Version ' + OSInfo.Description  +#13#10+
'----------------------------------------------------------------------------------');

最新更新