Sendmessage 与
setForeGroundWindow 可以到最前面
SetWindowPos 可使其最大化。

解决方案 »

  1.   

    嗯~~我用了
    SendMessage hwnd, WM_SYSCOMMAND, SC_RESTORE, ByVal 0&
    SetForegroundWindow hwnd
    还是只对JAVA程序有效,对VB那个鸟程序还是无效!~~
    经过研究发现是前面那句我试图把它最大化的那句没起作用,
    SendMessage hwnd, WM_SYSCOMMAND, SC_RESTORE, ByVal 0&
    但是对JAVA程序有用。
    请问怎么把VB那个最大化?
      

  2.   

    Private Declare Function FindWindow% Lib "user32" Alias "FindWindowA" (ByVal lpclassname As Any, ByVal lpCaption As Any)
    Private Declare Function SetWindowPos Lib "user32" (ByVal hwnd As Long, ByVal hWndInsertAfter As Long, ByVal X As Long, ByVal y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As LongConst HWND_TOPMOST = -1
    Const SWP_NOSIZE = &H1
    Const SWP_NOMOVE = &H2
    Private Function Float_Calc()
    Dim X&, hwnd%
    X = Shell("CALC.EXE", 1)
    hwnd% = FindWindow%("SciCalc", 0&)
    Call SetWindowPos(hwnd%, HWND_TOPMOST, 0(窗口新的x坐标), 0(窗口新的y坐标), 0(指定新的窗口宽度), 0(新的窗口高度), SWP_SHOWWINDOW)End FunctionPrivate Sub Command1_Click()
    Float_Calc
    End Sub这样应该能行了
      

  3.   

    这样写和前面的没什么区别~~
    你拿VB编的程序试过吗?好像就是VB的程序不接受改变窗体大小的消息~~曹~
      

  4.   

    BTW,我以前那样写的也能对付计算器~~
      

  5.   

    我是菜鸟,我的想法是这样的。
    SendMessage hwnd, WM_SYSCOMMAND, SC_MAXIMIZE, ByVal 0&
      

  6.   

    SendMessage hwnd, WM_SYSCOMMAND, SC_MAXIMIZE, ByVal 0&
    这样可以吗?
      

  7.   

    to wozhy(无编)
    我是在windows2000环境,好像这个对VB写的程序无效,而对VC和JAVA的程序是有效的~~
    码的,不知道为什么~~~
      

  8.   

    我在WIN2000环境下试了一下,还是可以使用啊,WIN2000 PROFESSION版+VB6.0
      

  9.   

    我误解了你的意思,不过我照新的理解又试了一下,结果发现还是可以的。
    我以前有一个获得句柄的A软件,我运行后得到我这个A程序主窗体的句柄,然后用VB新建了一个工程,将我的SendMessage hwnd, WM_SYSCOMMAND, SC_MAXIMIZE, ByVal 0& 写入,其中HWND改为我得到的A句柄,运行后A软件变成最大化。WIN2000 PROFESSION版+VB6.0 
      

  10.   

    to wozhy(无编)
    你的A程序是VB写的吗?我发现别的确实可以,但如果是VB的好象就不行~~气死我~~ 
      

  11.   

    to MarGo(连军) 
    误会了~我是丛一个程序B来控制A,不是你那样可以解决的~~嘿嘿~~
    你这样写很侮辱楼上所有人的智商~~