国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

程序間參數傳遞

2019-11-18 18:20:06
字體:
來源:轉載
供稿:網友
 

風花雪月 e夢情緣
網絡代號:wnhoo or sos_admin
網名:e夢緣
Mail:
wnhoo@163.com

功能:
第一次執行的時候…會開啟PRoject1.exe
第二次執行的時候…不開啟project1.exe(因程式已執行)…但會將參數會丟給已執行的project1.exe
第3次執行的時候…不開啟project1.exe(因程式已執行)…但會將參數會丟給已執行的project1.exe
...



[公共單元文件]
unit Unlib;
interface
type
par = record
str1 : string[255];
str2 : String[255];
Str3 : string[255];
end ;
implementation
end.


[工程文件]
program Project1;

uses
Forms,
Unit1 in 'Unit1.pas' {Form1},
Windows,
Messages,
Dialogs,
unlib in 'unlib.pas';

const
appname='myname';
var
myhandle:hwnd;
RexData : ^COPYDATASTRUCT ;
ppar:^par;
{$R *.res}

begin
myhandle:=findwindow(appname,nil);
begin
GetMem(RexData,SizeOf(COPYDATASTRUCT));
GetMem(ppar,Sizeof(par));
with ppar^ do
begin
str1 :=ParamStr(1);
str2 :=ParamStr(2);
Str3 :=ParamStr(3);
end;

with RexData^ do
begin
dwData := myhandle ;
cbData := Sizeof(par) ;
lpData := ppar;
end;
if myhandle>0 then SendMessage(myhandle,WM_COPYDATA,0,LONGINT(REXdATA));
FreeMem(RexData);
FreeMem(ppar);
if myhandle>0 then exit;
end ;
application.Initialize;
Application.CreateForm(TForm1, Form1);
Application.Run;
end.

[單元文件]
unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls,unlib;
const
appname='myname';
type
TForm1 = class(TForm)
Memo1: TMemo;
Memo2: TMemo;
Memo3: TMemo;
private
{ Private declarations }
public

procedure createparams(var params:tcreateparams);override;
procedure restorerequest(var msg:TWMCopyData);message WM_CopyData;


{ Public declarations }
end;

var
Form1: TForm1;
implementation

{$R *.dfm}
procedure TForm1.createparams(var params:tcreateparams);
begin
inherited createparams(params);
params.WinClassName:=appname;
end;

procedure TForm1.restorerequest(var msg:TWMCopyData);
var
RexData :TCopyDataStruct ;
ppar: ^par ;
begin
if msg.CopyDataStruct<> nil then
begin
RexData := msg.CopyDataStruct^ ;
ppar:= RexData.lpData ;

if ppar^.str1='' then
memo1.Lines.Add('Not Parameter')
else
memo1.Lines.Add (ppar^.str1);

if ppar^.str2='' then
memo2.Lines.Add('Not Parameter')
else
memo2.Lines.Add (ppar^.str2);

if ppar^.str3='' then
memo3.Lines.Add('Not Parameter')
else
memo3.Lines.Add (ppar^.str3);
end ;

end;


end.


上一篇:如何獲取自己在程序中運行的外部EXE的Handle?

下一篇:調用DLL文件中的FORM

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
學習交流
熱門圖片

新聞熱點

疑難解答

圖片精選

網友關注

主站蜘蛛池模板: 济阳县| 六盘水市| 蕲春县| 新疆| 互助| 永兴县| 昌图县| 台北市| 易门县| 丰城市| 巴林右旗| 潮安县| 扶风县| 黑山县| 通许县| 柳州市| 育儿| 宣武区| 南阳市| 上高县| 东光县| 泽普县| 鹤庆县| 社旗县| 凤山市| 东莞市| 赤水市| 延津县| 会泽县| 陆丰市| 天门市| 乌苏市| 林口县| 府谷县| 和平区| 新闻| 什邡市| 磐安县| 苏尼特右旗| 磐安县| 鲁甸县|