程序间参数传递

2016-02-19 12:48 1 1 收藏

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

【 tulaoshi.com - 编程语言 】

 

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

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

  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 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

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

  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.

来源:https://www.tulaoshi.com/n/20160219/1601971.html

延伸阅读
标签: Web开发
属性方法是可以带参数: 代码如下: function ClassX(name) { this.name = name; ClassX.prototype.show = function (param) { alert(this.name + " " + param); }; } var o = new ClassX("name"); o.show("param");//name param 但是,上面是虽然是直接在函数签名中定义了参考,如果不是自己调用o.show('param')时,而是通过其他...
标签: Delphi
  有关 Delphi 传入应用程式的命令列参数, 请参考以下的说明: 用ParamCount函数取得命令参数的个数: 呼叫 ParamStr(0), 传回执行档的档名(含路径) 呼叫 ParamStr(n), 传回第n个参数的内容 procedure TForm1.FormCreate(Sender: TObject); var sFileName: string; begin if ParamCount 0 then begin (* 有执行参数传入 *) sFileNam...
标签: Web开发
function getparastr(strname)   {    var hrefstr,pos,parastr,para,tempstr;    hrefstr = window.location.href;    pos = hrefstr.indexOf("?")    parastr = hrefstr.substring(pos+1);    para = parastr.split("&");    tempstr="";    for(i=0;ipara....
我们在写Remoting程序或者其他的一些应用程序的时候难免要和线程打交道,.Net使我们很容易就可以创建一个线程,但是它提供的创建线程和启动线程的方法没有明显的提供参数,假如我们要用线程来启动类里面一个带参数的方法该怎么办?下面就简单的介绍如何使用.NET提供的丰富的框架来实现这个功能。为了可以生动详细的介绍整个过程,我建立下面的一...
标签: Web开发
代码如下: !DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" html xmlns="http://www.w3.org/1999/xhtml" head title/title script src="js/Jquery1.7.js" type="text/javascript"/script script type="text/javascript" $(function () { $('#txtUserName'...

经验教程

910

收藏

38
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部