我的EXE是DELPHI做的,目的是接收SQL触发器传来的字符串,然后通后消息把字符串传给另一个正在运行的程序,
能找到另一个程序的PID(进程ID),但无法找到另一个在运行程序的窗口句柄.因此就无法接收到消息,

解决方案 »

  1.   

    嗯,不会搞,虽然我也搞delphi但是我没你这么牛,建议你到Delphi专区去问
      

  2.   

    从SQL Server 2005开始,官方强烈建议:禁用xp_cmdshell。
    你的问题,主要是delphi开发的应用程序找不到另一个窗口的句柄,这属于delphi开发的问题吧。
      

  3.   

    后来想了一个办法,让要找的那个窗口运行时,把窗口句柄写入INI文件,这样就不用找了,直接用XP_CMDSHELL执行的EXE SENDMESSAGE给那个窗口,但仍不能收到消息。可能是已进程形式运行的EXE,不能FINDWINDOW,也不能SENDMESSAGE
      

  4.   

    这个需求应该用SQL CLR实现.
    参考 http://wenku.baidu.com/view/768912fdf705cc175527095f.html
      

  5.   


    用xp_cmdshell来执行不行的,我试过,凡是调用窗口化的程序都不行,这样也不行:新建一个文件t.bat,输入 notepad然后在sql server中执行,会一直挂在那里不动的:xp_cmdshell 'e:\t.bat'
    建议你还是用c#或者vb.net写个clr存储过程吧
      

  6.   

    那位大师能否发个DEMO,给看看,谢谢。