//登陆子程function TForm1.LoginU8:Boolean;
begin
  Self.bLogin:=False;
  try
     Self.fLogin:=CreateOleObject('U8Login.clsLogin');
     Self.fNetLogin:=CreateOleObject('UFSOft.U8.Framework.Login.UI.clsLogin');
     if  fNetLogin.login_2('DP') then
     begin
       Self.bLogin:=True;
       oLoginContext:=fNetLogin.SubLogin('DP');  //暂未使用
       fLogin.ConstructLogin(fNetLogin.userToken);
     end;
    except
      MessageBox(0,'请安装用友软件(U8)!','错误',MB_OK);
      bLogin:=False;
      end;
      Result:=Self.bLogin;
end;//获取相关信息if not Self.LoginU8 then
  begin
    Application.Terminate;
  end else begin
     Self.stat1.Panels[0].Text:='操作用户:'+fLogin.cUserName+'('+fLogin.cUserId+')';
     Self.stat1.Panels[1].Text:='应用服务器:'+fLogin.dbServerName;
     Self.stat1.Panels[2].Text:='帐套标识:'+fLogin.cAcc_Id;
     Self.stat1.Panels[3].Text:='操作日期:'+FormatDateTime('yyyy-mm-dd',fLogin.CurDate);
     Self.stat1.Panels[4].Text:='任务ID:'+fNetLogin.GetTaskID('DP');end;//正常退出时 if Self.bLogin then
  begin
    Self.fNetLogin.SubLogout('DP');
    Self.fNetLogin.ShutDown;
  end; 网上搜到以上代码可以试下调用用友登陆获取登陆信息,现在我想不调用登陆,能否直接获取登陆信息,
因为我自己写了个exe程序想挂进用友U8,问题时我需要用友的登陆信息来控制我程序中的权限。在线等,解决立马给分。

解决方案 »

  1.   

    U8除SQL服务器外,还有自己的一个服务器程序,没有仔细研究,应该是三层结构吧。要实现楼主的功能,必须深入了解U8,对局外人来说比较困难。
      

  2.   

    U8除SQL服务器外,还有自己的一个服务器程序,没有仔细研究,应该是三层结构吧。要实现楼主的功能,必须深入了解U8,对局外人来说比较困难。
      

  3.   

    不调用登陆,能否直接获取登陆信息?
    感觉不行,这种登录机制应该是通过一次性的session id控制的,没登录就没这个id可以直接访问它的数据库,当然,只读不改才保险