如何把系统当前正在运行的其他程序窗口的属性修改

解决方案 »

  1.   

    有些属性可以利用SendMessage来修改。当你用FindWindow/WindowFromPoint等函数得到其他窗口的句柄之后,你可以使用
    SendMessage(窗口句病,消息,参数1,参数2)
    的语法来修改。不过并不是什么都可以用这来修改的,例如修改窗口过程要用SetWindowLong
      

  2.   

    不要妄想用VCL来修改其它的程序窗口属性
      

  3.   

    除了API或者封装了API的第三方VCL?
      

  4.   

    这样的语句如何转化成为这样的东西阿
    Form1.AlphaBlend:=True;
    Form1.AlphaBlendValue:=100
    设为
    SendMessage(窗口句病,消息,参数1,参数2)
      

  5.   

    Form.AlphaBlend:=True;
    Form.AlphaBlendValue:=100
    是其他指定的Form的属性阿
      

  6.   

    对,使用setwindowlong,的到窗口的handle后就可以使用。
      

  7.   

    不要用sendmessage
    其实上所有的控件都是window
    如楼上所言得到handle之后
    都可以直接用api修改其值
    举个例子
    setwindowtext()
    可以修改窗口的标题
    不过你能修改的属性十分有限
      

  8.   

    Form.的AlphaBlend:=True;
    Form.的AlphaBlendValue:=100
    如何用以上方法修改
      

  9.   

    procedure TForm1.Button1Click(Sender: TObject);
    var 
      HWndCalculator : HWnd;
    begin 
      // 查找计算器句柄
      HWndCalculator := FindWindow(nil, '计算器');
       if HWndCalculator <> 0 then
        SendMessage(HWndCalculator, WM_CLOSE, 0, 0);
        //关闭计算器
    end;
        SendMessage(HWndCalculator, WM_CLOSE, 0, 0);

    WM_CLOSE, 0, 0参数和这样的如何转换
    Form.的AlphaBlend:=True;
    Form.的AlphaBlendValue:=100