2013-04-13 91 views
0

我使用的是c#.net 4.5; 我的問題是我怎麼能得到cmd的位置。 例如要獲得我自己的表單位置我使用this.Location,我得到x和y。 我怎麼可以做一個正在運行的應用程序,但與我自己的應用程序無關?我知道這是可能的,因爲Windows 8使用類似的東西。 :)如何獲取cmd位置?

感謝幫助...

+1

CMD.EXE的位置是「%WINDIR%\ system32 \ cmd.exe「...但我懷疑你想要其他東西...但不清楚是什麼? –

回答

3

你乍一看問題似乎你想要的應用程序exe文件的位置,而不是窗口的位置。如果你想要窗口的位置,你需要使用API​​。

[StructLayout(LayoutKind.Sequential)] 
public struct Rect 
{ 
    public int left; 
    public int top; 
    public int right; 
    public int bottom; 
} 

[DllImport("user32.dll")] 
public static extern IntPtr GetWindowRect(IntPtr hWnd, ref Rect rect 

,然後用它像這樣:

var proc = Process.GetProcessesByName(proccessName)[0]; 
Rect rect = new Rect(); 
GetWindowRect(proc.MainWindowHandle, ref rect); 

希望它可以幫助

欲瞭解更多信息,看看MSDNpInvoke

+1

+1回答和心靈感應力:) –

+0

+1爲心理體操。 ^^ – C3PO