程序间参数传递

menghuan686

menghuan686

2016-02-19 12:48

在这个颜值当道,屌丝闪边的时代,拼不过颜值拼内涵,只有知识丰富才能提升一个人的内在气质和修养,所谓人丑就要多学习,今天图老师给大家分享程序间参数传递,希望可以对大家能有小小的帮助。
 

  风花雪月 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;

(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/bianchengyuyan/)

  with RexData^ do
  begin
  dwData := myhandle ;
  cbData := Sizeof(par) ;
  lpData := ppar;
  end;
  if myhandle0 then SendMessage(myhandle,WM_COPYDATA,0,LONGINT(REXdATA));
  FreeMem(RexData);
  FreeMem(ppar);
  if myhandle0 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;

(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/bianchengyuyan/)

  
  end.

展开更多 50%)
分享

猜你喜欢

程序间参数传递

编程语言 网络编程
程序间参数传递

在窗体间传递参数地几种常用办法

编程语言 网络编程
在窗体间传递参数地几种常用办法

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

通过地址栏传递参数.通过url传递参数

ASP
通过地址栏传递参数.通过url传递参数

JSP 传递中文参数的例子

Web开发
JSP 传递中文参数的例子

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

入门基础 Java参数传递方式

编程语言 网络编程
入门基础 Java参数传递方式

取出所有的传递参数短方法

ASP
取出所有的传递参数短方法

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

怎么样给win7提速还是保持它的Aero效果

怎么样给win7提速还是保持它的Aero效果

自己编写树(Tree)的封装类

自己编写树(Tree)的封装类
下拉加载更多内容 ↓