Открыть Блокнот в определенном месте на экране, и до желаемого размера? - PullRequest
3 голосов
/ 18 января 2011

Мне нужно открыть nNtepad до определенного размера и в определенной позиции на экране.

Как я могу сделать это из C #?

Буду признателен за пример кода.

Ответы [ 5 ]

10 голосов
/ 18 января 2011

Вы можете закрепить MoveWindow.Как это:

using System;
using System.Diagnostics;
using System.Runtime.InteropServices;

class Program {
    static void Main(string[] args) {
        var prc = Process.Start("notepad.exe");
        prc.WaitForInputIdle();
        bool ok = MoveWindow(prc.MainWindowHandle, 0, 0, 300, 200, false);
        if (!ok) throw new System.ComponentModel.Win32Exception();
    }
    [DllImport("user32.dll", SetLastError = true)]
    private static extern bool MoveWindow(IntPtr hWnd, int x, int y, int width, int height, bool repaint);
}
1 голос
/ 18 января 2011

Я бы запустил блокнот и переместил его в нужное место. Вы находите hwd блокнота с FindWindow (неуправляемый код), а затем отправляете в окно некоторые события перемещения / изменения размера. Вам нужно будет использовать некоторый неуправляемый код, возможные хуки окон. 1003 *

1 голос
/ 18 января 2011

, чтобы открыть его, вы можете использовать API-интерфейс Process.Start или ShellExecute, чтобы установить для окна приложения определенный размер и положение, которое я бы назвал API SetWindowsPos.

0 голосов
/ 18 января 2011

взгляните на этот вопрос Я думаю, что это сделает то, что вам нужно.

0 голосов
/ 18 января 2011

Взгляните сюда , чтобы получить доступ к командной строке из вашего приложения. Код будет выглядеть так:

System.Diagnostics.Process.Start("Notepad");

Я не верю, что у вас есть возможность позиционировать именно то, что вы хотите на экране

...