具体情况为:
程序中有2个函数:SendMessage()和keybd_event(),将消息和键盘事件传给1个窗口.在delphi里编译运行没有任何问题,事件都传过去了.
不关闭,注意是不关闭delphi,直接点击编译好的exe文件,这2个事件都没有任何反应.不知道是什么原因.
整个过程中:环境没有改变,还是在本机,delphi也没有关闭.唯一的区别就是一个是delphi编译执行的,一个是直接运行exe

解决方案 »

  1.   

    没见过这样的问题http://lysoft.7u7.net
      

  2.   

    应该没有重新编译,删除exe文件重新编译一次。
      

  3.   

    你看看其他的程序有没有这种问题
    编译一个demo的程序就可以..
    如果还是这样的话.重装d看看
      

  4.   

    你应该是搞错句柄了,你可能得到的是IDE中的窗口的句柄
      

  5.   

    procedure TForm1.Button1Click(Sender: TObject);
    Var
            hw:thandle;
    begin
            hw:=FindWindow(nil,'1.txt - 记事本');
            if hw = 0 then
                    begin
                    showmessage('记事本没有打开!');
                    Exit;
                    end;
            
            SendMessage(hw, WM_SYSCOMMAND, SC_HOTKEY, hw);
            keybd_event(Ord('A'), MapVirtualKey(Ord('A'), 0), 0, 0);
            keybd_event(Ord('A'), MapVirtualKey(Ord('A'), 0), KEYEVENTF_KEYUP,0);
    end;
      

  6.   

    keybd_event 之间加个 sleep(10); 如何??
      

  7.   

    不行
    SendMessage(hw, WM_SYSCOMMAND, SC_HOTKEY, hw);//这一句就没有执行
      

  8.   

    这个问题很简单,编译环境里的form和exe程序的form重名,sendmessage发到编译环境里的窗口上去了,建议运行时候动态改变窗口的名字,和编译环境的窗口名区分开来
      

  9.   

    http://community.csdn.net/Expert/topic/3385/3385268.xml?temp=.980343
    帮忙看看