2

ShellExecuteを使用して、ユーザーがデフォルトの電子メールプログラムから電子メールを送信できるようにします。例えば

const
  CRLF = '%0D%0A';
var
  Body: string;
begin
  Body := 'Information from my program'+CRLF+
      'that is put in the body of the email'; 
  ShellExecute(Application.Handle, 'open', PChar('?Subject=My Subject&Body=' +  
      Body),nil, nil, SW_SHOWNORMAL);

情報の列で本文をフォーマットしたい。どうすれば空白を入れることができますか?%20は単一のスペースで機能するようですが、行の先頭や複数の連続するスペースでは機能しない場合があります。この''も機能しません:(

4

1 に答える 1

2

Chr(34)文字列内で二重引用符()を使用します。

Body :=  #34 + 'Information from my program' + CRLF +
      'that is put in the body of the email' + #34; 
ShellExecute(Application.Handle, 'open', 
    PChar('?Subject=My Subject&Body=' + Body), nil, nil, SW_SHOWNORMAL);

列を並べるには、代わりにタブ文字を使用してChr(9)てください( )-コメントで述べたように、Windows7でThunderbirdを使用しShellExecuteて作業することはできません。mailto

Body :=  #34 + 'Information from my program' + CRLF +
      'that is put in the body of the email' + CRLF +
      'Col1'#9'Col2'#9'Col3' + #34; 

Stuff#9「Morestuff」を使用した埋め込みは'Stuff' + #9 + 'More Stuff'、BTWの省略形です。

于 2012-06-06T01:36:12.197 に答える