我在SQL SERVER 2005上使用命令:exec master..xp_cmdshell 'C:\Notify.exe',但执行中SQL SERVER发出WIN32异常的通知。Notify.exe是一个用VC写的win32控制台程序,在人工调用执行正常,里面使用到Postmessage函数,主要代码如下:void main(int argc,char * argv[])
{
CWnd *pWnd = CWnd::FindWindow(NULL, "目标程序");
pWnd->PostMessage(WM_IDMSG, 0, 0); //传输消息至目标程序,WM_IDMSG是自己定义的消息
return;
}我将Postmessage那句删除就没有出现上述问题,请问各位知道是什么原因或者有没其他方法代替。这个东西很急,麻烦大家帮忙了。谢谢啦~~~
{
CWnd *pWnd = CWnd::FindWindow(NULL, "目标程序");
pWnd->PostMessage(WM_IDMSG, 0, 0); //传输消息至目标程序,WM_IDMSG是自己定义的消息
return;
}我将Postmessage那句删除就没有出现上述问题,请问各位知道是什么原因或者有没其他方法代替。这个东西很急,麻烦大家帮忙了。谢谢啦~~~
http://topic.csdn.net/t/20040423/14/3000755.html
但我按照上面方法弄了,依然不行,不知是否有其他问题,继续等待...
你的理解有点问题,xp_cmdshell所调用的窗口程序不会产生窗口,但现在findwindow不是找不到自己的窗口,而是找不到另一个已启动的窗口。但导致这个问题的原因我还没找到,即使启动了SQLSERVER服务与桌面交互。
But...thank you all the same! ^-^