问题描述
大家好,我用64位win7,在vs2010中用C#写了如下代码:publicclassA{//调用Win32API[System.Runtime.InteropServices.DllImportAttribute("user32.dll",EntryPoint="MoveWindow")]publicstaticexternboolMoveWindow(System.IntPtrhWnd,intX,intY,intnWidth,intnHeight,boolbRepaint);privatevoidOpenAndSetWindow(StringfileName){Processp=newProcess();p.StartInfo.FileName=fileName;p.StartInfo.CreateNoWindow=true;p.StartInfo.WindowStyle=ProcessWindowStyle.Normal;p.Start();MoveWindow(p.MainWindowHandle,200,300,500,400,true);}}外部程序可以打开,但MoveWindow()好像不起作用,不能在指定位置打开。我该怎么办呢?请各位大牛指教。还有就是C#如何实现win7的并排显示窗口功能?谢谢!
解决方案
解决方案二:
窗口属性啊,设置startposition有五种显示模式看你需要哪一种自己选定设置就行了
解决方案三:
楼主解决了吗,我也想知道
解决方案四:
http://www.cnblogs.com/del/archive/2008/02/12/1067358.html用SetWindowsPos试试.
解决方案五:
楼主你太着急了吧,窗口生成需要时间://调用Win32API[System.Runtime.InteropServices.DllImportAttribute("user32.dll",EntryPoint="MoveWindow")]publicstaticexternboolMoveWindow(System.IntPtrhWnd,intX,intY,intnWidth,intnHeight,boolbRepaint);privatevoidOpenAndSetWindow(StringfileName){Processp=newProcess();p.StartInfo.FileName=fileName;p.StartInfo.CreateNoWindow=true;p.StartInfo.WindowStyle=ProcessWindowStyle.Normal;p.Start();newThread(()=>{Thread.Sleep(1000);if(p!=null&&p.MainWindowHandle!=IntPtr.Zero){MoveWindow(p.MainWindowHandle,0,0,500,400,true);}}).Start();}
解决方案六:
p.Start()后 不一定 马上就出现 窗体了 我记得 Process 有一个Process.WaitForInputidle()不是知道是干嘛的你可以试试要不就暂停一下了