?? sendunit.pas
字號:
unit sendunit;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Buttons;
type
TForm1 = class(TForm)
Edit1: TEdit;
Label1: TLabel;
BitBtn1: TBitBtn;
Label2: TLabel;
Edit2: TEdit;
BitBtn2: TBitBtn;
procedure BitBtn1Click(Sender: TObject);
procedure BitBtn2Click(Sender: TObject);
private
{ Private declarations }
public
procedure SendData;
{ Public declarations }
end;
Const
C1= 17856;
C2= 23589;
var
Form1: TForm1;
implementation
{$R *.dfm}
function EncryptModule(SourceStr:String;Key:Word;N:Integer):String;
var
I:Integer;
begin
SetLength(Result,Length(SourceStr));//利用SetLength函數指定密文長度
//對每一個索引元素進行變換
for I:=1 to Length(SourceStr) do
begin
Result[I]:=Char(byte(SourceStr[I]) xor (Key Shr N));
Key:= (byte(Result[I]) + Key)*C1+C2;
end;
end;
procedure TForm1.SendData; //發送消息和數據過程
var
Copydatastruct: TCopyDataStruct; //定義一個Tcopydatastruct類型的變量
hwnd: THandle; //句柄類型,用于存儲目標對象的句柄
begin
Copydatastruct.cbData := Length (Edit1.Text) + 1;
//為傳遞的數據區分配內存并把要傳送的字符串放入數據區
GetMem (Copydatastruct.lpData, Copydatastruct.cbData );
StrCopy (Copydatastruct.lpData, PChar (Edit1.Text));
// 獲得接收窗口的句柄
Hwnd := FindWindow (nil, '利用WM_COPYDATA交換數據Receive改進版');
// 如果目標對象存在,則向其發送WM_COPYDATA消息
if Hwnd <> 0 then
SendMessage (Hwnd, WM_COPYDATA, Handle, Cardinal(@Copydatastruct))
else
ShowMessage ('目標對象窗口沒找到!');
//釋放資源
FreeMem (Copydatastruct.lpData);
end;
procedure TForm1.BitBtn1Click(Sender: TObject);
begin
if Edit1.Text<>'' then
SendData;
end;
procedure TForm1.BitBtn2Click(Sender: TObject);
begin
Edit1.Text:=EncryptModule(Edit2.Text,12345,10);
end;
end.
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -