感谢大家在这个贴子  
http://community.csdn.net/Expert/topic/3897/3897236.xml?temp=.5465052  
里给我的帮助和思路,现在我的程序已经差不多了,但还有两个小问题:  
1:我用了一个hotkey控件来显示客户在photoshop中存储的热键,但我应该如何读取呢?或者谁给我个SendInput的例子  
2:我现在的程序是激活PS窗口为当前窗口然后模拟按键的,如何能不激活而直接想PS发送按键(就是上面的hotkey)信息呢?

解决方案 »

  1.   

    可以通过判断在ps中设置的comand名称来捕捉消息command = 'cbtn1',do code
      

  2.   

    回复人: navyfish(深蓝色的鱼) ( ) 信誉:100  2005-04-06 17:33:00  得分: 0  
     
     
       2.不模拟按键,直接向那个子菜单发消息不行吗?
    ----------------------------------------------------
    我问的就是如何向PhotoShop发按键消息啊
     
      

  3.   

    针对主菜单(测试能过的):  AppHD := FindWindow('Notepad', '需求分析.txt - 记事本');
      MenuHD := GetMenu(AppHD);
      SubMenuHD := GetSubMenu(MenuHD, 0);
      MenuItem := GetMenuItemID(SubMenuHD, 1);
      PostMessage(AppHD, WM_COMMAND, MenuItem, 0);
      

  4.   

    这个也很容易啊.
    找到弹出的那个对话框的句柄(FindWindow),再找到编辑框和确定按钮的句柄(FindWindowEx),给编辑框发消息赋路径和文件名(SendMessage, WM_SETTEXT),再给确定按钮发消息按下就可以了(SendMessage, BM_CLICK).
    剪贴板方面的没有研究,应该可以的.
      

  5.   

    我在程序中用到了一个HotKey控件,但我不知道如何判断它是由哪几个键组合的,现在用的笨办法是
    hKey:=HotKey1.HotKey;
            if hKey>32768 then
            begin
                isAlt:=true;
                hKey:=hKey-32768;
            end;
            if hKey>16384 then
            begin
                isCtrl:=true;
                hKey:=hKey-16384;
            end;
            if hKey>8192 then
            begin
                isShift:=true;
                hKey:=hKey-8192;
            end;
    但我觉得应该有更简单的判断方法,这就是我的第一个问题
      

  6.   

    没用过这个控件.
    还是不知道你要得到什么东西.客户在photoshop中存储的热键?有什么用?