procedure TMainForm.SendCopyData(const A_cFlag: Byte;
const A_sText: string; const A_HD: THandle);
var
HD: THandle;
cdsCopyData: TCopyDataStruct;
begin
FillChar(cdsCopyData,SizeOf(cdsCopyData),#0);
// //1;得到卡号成功,并传递卡号;
// //2:得到卡号失败,并传递信息
cdsCopyData.dwData := A_cFlag;
cdsCopyData.lpData := PChar(Trim(A_sText));
cdsCopyData.cbData := StrLen(PChar(Trim(A_sText))) + 1;
SendMessage(A_HD,WM_COPYDATA,LongInt(Self.handle),LongInt(@cdsCopyData));
end;
这是我写的Delphi的发送字符串给另一个程序的函数。
另一个程序是PB做的,请问,在PB里怎么接收上边函数发过去的值啊? delphi接收的函数如下:
声明函数:
procedure WMCopyData(var Msg: TWMCopyData); message WM_COPYDATA;
函数的实现:
procedure TForm1.WMCopyData(var Msg: TWMCopyData);
var
sText: array[0..1000] of Char;
begin
FillChar(sText,SizeOf(sText),#0);
StrLCopy(sText,msg.CopyDataStruct^.lpData,msg.CopyDataStruct^.cbData);
case Msg.CopyDataStruct^.dwData of
1: RzEdit1.Text := Trim(sText); // 1;得到卡号成功,并传递卡号;
2: ShowMessage(Trim(sText)); // 2:得到卡号失败,并传递信息
3: ShowMessage(Trim(sText)); //3:扣款成功;并接收错误提示信息;
4: ShowMessage(Trim(sText)); //4:扣款失败,并接收错误提示信息;
end;
end;由于我很着急,而且没在PB论坛里混过,所以多贴出一个帖子,求助
const A_sText: string; const A_HD: THandle);
var
HD: THandle;
cdsCopyData: TCopyDataStruct;
begin
FillChar(cdsCopyData,SizeOf(cdsCopyData),#0);
// //1;得到卡号成功,并传递卡号;
// //2:得到卡号失败,并传递信息
cdsCopyData.dwData := A_cFlag;
cdsCopyData.lpData := PChar(Trim(A_sText));
cdsCopyData.cbData := StrLen(PChar(Trim(A_sText))) + 1;
SendMessage(A_HD,WM_COPYDATA,LongInt(Self.handle),LongInt(@cdsCopyData));
end;
这是我写的Delphi的发送字符串给另一个程序的函数。
另一个程序是PB做的,请问,在PB里怎么接收上边函数发过去的值啊? delphi接收的函数如下:
声明函数:
procedure WMCopyData(var Msg: TWMCopyData); message WM_COPYDATA;
函数的实现:
procedure TForm1.WMCopyData(var Msg: TWMCopyData);
var
sText: array[0..1000] of Char;
begin
FillChar(sText,SizeOf(sText),#0);
StrLCopy(sText,msg.CopyDataStruct^.lpData,msg.CopyDataStruct^.cbData);
case Msg.CopyDataStruct^.dwData of
1: RzEdit1.Text := Trim(sText); // 1;得到卡号成功,并传递卡号;
2: ShowMessage(Trim(sText)); // 2:得到卡号失败,并传递信息
3: ShowMessage(Trim(sText)); //3:扣款成功;并接收错误提示信息;
4: ShowMessage(Trim(sText)); //4:扣款失败,并接收错误提示信息;
end;
end;由于我很着急,而且没在PB论坛里混过,所以多贴出一个帖子,求助
现在的问题是在PB里边,有Copydatastruct吗?还有在PB里边WM_COPYDATA是不是要自己定义啊?
说白了就是
delphi接收的函数如下:
声明函数:
procedure WMCopyData(var Msg: TWMCopyData); message WM_COPYDATA;
函数的实现:
procedure TForm1.WMCopyData(var Msg: TWMCopyData);
var
sText: array[0..1000] of Char;
begin
FillChar(sText,SizeOf(sText),#0);
StrLCopy(sText,msg.CopyDataStruct^.lpData,msg.CopyDataStruct^.cbData);
case Msg.CopyDataStruct^.dwData of
1: RzEdit1.Text := Trim(sText); // 1;得到卡号成功,并传递卡号;
2: ShowMessage(Trim(sText)); // 2:得到卡号失败,并传递信息
3: ShowMessage(Trim(sText)); //3:扣款成功;并接收错误提示信息;
4: ShowMessage(Trim(sText)); //4:扣款失败,并接收错误提示信息;
end;
end; 如何转化成PB的语言来写。
早年也用了幾天PB,不過現在全忘了。不知道你那邊有沒有PB的高手,PB是可以調用操作系統的API的,這個結構是WINDOWS的一個規範,就好像DELPHI也封裝了這個結構,PB當然一樣也是可以的。不過要我指導一下PB的代碼,真的不行了。PB8後就再也沒碰過了。
小豬去PB區問下,說不定行。真的忘完了PB,又搞C#,又搞JAVA的,腦子都搞亂了。
不过不知道对不对。
SendMessage(HD,WM_SETTEXT,1,LongInt(PChar(Trim(A_sText))));接收方用WM_SETTEXT来判别。
暂时还不知道WM_SETTEXT的真正意思。查查再说。
有人能帮我解答最好了。
没人的话,我尽快结贴