Chinaunix首页 | 论坛 | 博客
  • 博客访问: 544692
  • 博文数量: 252
  • 博客积分: 6057
  • 博客等级: 准将
  • 技术积分: 1635
  • 用 户 组: 普通用户
  • 注册时间: 2009-12-21 10:17
文章分类

全部博文(252)

文章存档

2013年(1)

2012年(1)

2011年(32)

2010年(212)

2009年(6)

分类: WINDOWS

2010-08-19 14:23:19

procedure TfmMain.Login;
var
  si:STARTUPINFO;
  pi:PROCESS_INFORMATION;
  CommandLine:String;
  ProcessFileName:string;
begin
  if (Trim(edtLoginName.Text)='') or (Trim(edtPassword.Text)='') then
  begin
    MsgBoxError(Handle,'请输入用户名及密码!');
    Exit;
  end;
  if not SemsClientApp.LoginManager.ValidateLogin(edtLoginName.Text,edtPassword.Text) then
  begin
    MsgBoxError(Handle,'用户名或密码错误,请重新输入!');
    Exit;
  end;
  try
    FillChar(si,SizeOf(si),0);
    FillChar(pi,SizeOf(pi),0);
    si.cb:=SizeOf(si);
    ProcessFileName:=SemsClientApp.AppPath+'\sems.bin';
    CommandLine:='"'+ProcessFileName+'" /S"'+Application.ExeName+'" /L"'+edtLoginName.Text+'" /P"'+edtPassword.Text+'"';
    if CreateProcess(PAnsiChar(ProcessFileName),PAnsiChar(CommandLine),nil,nil,False,0,nil,nil,si,pi) then
    Close;
  except
    MsgBoxError(Handle,'启动程序失败!');
  end;
end
阅读(2373) | 评论(1) | 转发(0) |
给主人留下些什么吧!~~

chulia200020012010-08-19 16:48:23

CreateProcess函数的正确BCB调用用法: AnsiString sCreateAppPath; AnsiString sCmdLine; AnsString sParam; STARTUPINFO si; PROCESS_INFORMATION pi; memset(&si,0,sizeof(si)); memset(&pi,0,sizeof(pi)); si.cb =sizeof(si); sCreateAppPath = "C:\\xxx.exe"; sParam = " \p"; //\p前面有一个空格 sParam="空格\p"; sCmdLine = sCreateAppPath + sParam; CreateProcess(sCreateAppPath.c_str(), sCmdLine.c_str(), NULL,NULL, fa