1

誰かが特定のウィンドウの位置と解像度をその名前で読み取ることができるコードを投稿できますか?

private function findposition(byval windowtitle as string)

乾杯マーティン

私は使っている

Private Declare Function FindWindow Lib "user32" Alias _
    "FindWindowA" (ByVal lpClassName As String, ByVal _
    lpWindowName As String) As IntPtr

Private Declare Function GetWindowRect Lib "user32" (ByVal _
        hwnd As IntPtr, ByVal lpRect As Rectangle) As Integer

Dim lobbywindow As IntPtr = FindWindow("Appclass", "Appname")
Dim lobbyrectangle As New Rectangle

GetWindowRect(lobbywindow, lobbyrectangle)

エラーが発生するので、これを解決するのを手伝ってください

PInvoke 関数 'App!App.Form1::GetWindowRect' の呼び出しにより、スタックのバランスが崩れています。これは、マネージド PInvoke 署名がアンマネージド ターゲット シグネチャと一致しないことが原因である可能性があります。PInvoke シグネチャの呼び出し規約とパラメーターがターゲットのアンマネージド シグネチャと一致することを確認します。

4

2 に答える 2

2

この場合、Windows APIを使用する必要があり、同様の問題がここで説明されています:http: //www.activevb.de/tipps/vb6tipps/tipp0111.html

実装する必要があります

Private Declare Function FindWindow Lib "user32" Alias _
        "FindWindowA" (ByVal lpClassName As String, ByVal _
        lpWindowName As String) As Long

Private Declare Function GetWindowRect Lib "user32" (ByVal _
        hwnd As Long, lpRect As RECT) As Long
于 2012-06-23T14:08:34.000 に答える
2

たとえ外部であっても、それはどのウィンドウ用でもあると思いますか?このようなものが役立つかもしれません:

    [DllImport("user32.dll")]
    private static extern IntPtr FindWindow(string className, string windowName);

    [DllImport("user32.dll")]
    private static extern int GetWindowRect(IntPtr hwnd, out Rectangle rect);



    private void button2_Click(object sender, EventArgs e)
    {
        string className = "yourClassName";
        string windowName = "yourWindowName";

        Rectangle rect;
        IntPtr hwnd = FindWindow(className, windowName);
        GetWindowRect(hwnd, out rect);
    }
于 2012-06-23T14:08:57.783 に答える