谢谢lyhoo163,用户登录是指的windows的用户,现在写了个service开机运行的时候出错了,原因是启动早了

解决方案 »

  1.   

    我写了个service,start事件里面create一些对象,可能是create对象的时候,依赖的一些东西,操作系统还没有启动这些东西,导致了出错。可能是与服务器登录没有关系
      

  2.   

    你可以放一个TTimer控件,定时1-5分钟后,再执行连接。
    我所做的服务器,就是这样的,因为使用MSSQL,当MSSQL服务器未能正常运行前,是连接不上数据库的,因此,使用缓时再连接。
      

  3.   

    好的,谢谢你,有没有办法判断windows的桌面界面已经出现了呢?如果能判断出这个的话,基本所有的服务都执行的差不多结束了
      

  4.   

    查到了一个c语言写的判断系统是否登录:http://www.yourdelphi.com/topic_389685_f4c5.htm
    看不大懂,欢迎各位朋友指点一下,谢谢。
      

  5.   

    你另写一个小程序,放在用户的登录后运行里,只要用户登录后,这个小程序就会被运行。
    这样,你就达到了你想判断是否用户已登录的目的了。至于之后怎么办,看你想怎么设计:1.用刚刚写那个小程序,去启动服务。
    2.一早就启动服务,但不运行那段提早运行就有影响而出错那段代码,直到测到你写的小程序运行了,再执行那段代码。当然,同时通知那小程序停止。至于小程序,可以运行在右下角,提供随时启动、结束那服务的功能。对了,你知道win7以后,服务可以设置延后启动吧?
      

  6.   

    如果使用MSSQL,可以通过判断MSSQL Server是否启动,再执行连接。
    一般做了延时连接,就可以了。
      

  7.   

    写freank_lee,这个思路好像可以,不过win7的话,有办法设置让用户登录后运行一个程序吗?
      

  8.   

    写freank_lee,这个思路好像可以,不过win7的话,有办法设置让用户登录后运行一个程序吗?计划任务
      

  9.   

    写freank_lee,这个思路好像可以,不过win7的话,有办法设置让用户登录后运行一个程序吗?把程序快捷方式放到“开始-所有程序-启动”里不就行了?
      

  10.   

    WTSGetActiveConsoleSessionId
    如果桌面session已经启动,这个函数能获得他的session id,也就是你认为的用户已经登录了,否则返回0xFFFFFFFF