有什么难的吗?
可以在应用程序启动的时候加参数啊?比如你的所有程序都需要
TEST.EXT -USER -PASSWORD

解决方案 »

  1.   

    outer2000(天外流星)
     你又在胡说,或者说胡话。-USER -PASSWORD 的话 我还用登录吗?
      

  2.   

    用Mutex
    参见CreateMutex每个程序定一同一个名字的Mutex,
    所有程序的启动步骤如下:
    1.每个程序启动前创建这个Mutex,如果发现已经存在,说明已经有其他的程序登录,转5
    2.销毁这个Mutex; // 销毁他是为了方式登陆的过程中其他程序启动
    3.登录检查;验证不通过,转6
    4.创建这个Mutex;
    5.你的正常程序;
    6.退出;
      

  3.   

    我又想了想,有个问题,就是这个Mutex的持有者,就是第一个启动的程序,他又控制权,如果他退出了,就是放掉这个mutex了,这时候即使你仍有其他程序运行,在启动新的程序也检查不到这个Mutex了。
    不知道你能明白不?由此我想到了另一个东西,“原子”ATOM
    这个东西一般可以用作计数
    具体参见 MSDN 的 GlobalAddAtom, GlobalDeleteAtom, GlobalFindAtom
    所有程序定义一个唯一的原子字符串,比如"1234"
    程序流程如下:
    1.GlobalFindAtom("1234");找到,说明有其他程序运行了,装4
    2.登录检查,通不过,转6
    3.GlobalAddAtom("1234");
    4.你正常的程序;
    5.退出前执行 GlobalDeleteAtom("1234");
    6.退出这个原子的作用就是,你每次AddAtom,他都会在全局的原子计数器里面增加1,deleteAtom作用相反减一,直到计数器为0才真正删除这个Atom。
    这样,只要你有任何一个程序在运行,这个原子都不会变成0,你新运行的就不需要登录了。原子的技术可以用在限制应用程序同时运行的副本数,比如曾经有个类似icq的工具就只能同时运行7个。
    类似的技术还有很多,比如IPC,消息了等等,这个原子是我想到的最简单的了。
      

  4.   

    首先楼主的意思是几个APP共用一个登录WINDOW,那么就以其为主程序,采用
    winexec在登录窗口中若帐号正确,则就启动APP,对于关闭程序的问题,既可以单独关闭,也可以全部关闭,即若登录窗口的APP关闭,则Findwindows(others),若真,则关闭.关于登录的问题,若不用数据库(注册表也是数据库),存储文件以外的方式,楼主,若想到了好方法,一定告诉我一下,学习!!
      

  5.   

    你是想有一个登录程序,它运行后其他程序可以共享当前登录用户的信息而且它会在任务栏加一个图标。当APP启动时如果发现没有登录则启动该登录程序。
       你可以这样做:
       1、写一个登录管理程序,他会为其他程序提供用户登录信息。该程序可以是COM,Service或者别的什么的,只要能够提供服务就行。
       2、登录界面采用DLL实现,供各个APP调用。
       3、任务栏图标监视,当登录完成后启动一个APP(TrayIcon),它可以退出登录、查看登录用户信息。其实他和其他APP一样使用登录服务程序。
       4、当然如果你不想使用COM、Service等,可以在任务栏图标监视程序中来提供同样的服务,然后使用进程间通讯得到登录用户信息。
      

  6.   

    你的这个要求可能利用IPC好些。
    你看看这篇文章,希望给你启发
    http://www.powerba.com/develop/delphi/article/20000911035.htm
      

  7.   


    : tonyyang(Tony) 你是真正的高手 佩服 佩服
    谢谢你指点迷津请回答我后续的问题http://www.csdn.net/Expert/TopicView1.asp?id=1018130
    同时解贴了