2016-04-22 3 views
2

Прошло некоторое время с тех пор, как я сделал какую-либо программу, так что она была ржавой. Я изучал код, чтобы максимизировать и минимизировать другие приложения. Поэтому я нашел что-то основное, и вот что у меня есть, слегка измененный от оригинала. Мне хотелось, чтобы я создал метод FindWindow, который я сделал. Теперь все выглядит хорошо, и я попытался запустить его, получив сообщение. Не уверен, куда идти отсюда. Оригинальная нить, где я ее нашел, не упоминала об этом.Максимизировать/свести к минимуму другие приложения

enter image description here

private const int SW_SHOWNORMAL = 1; 
private const int SW_SHOWMINIMIZED = 2; 
private const int SW_SHOWMAXIMIZED = 3; 

[DllImport("user32.dll")] 
private static extern bool ShowWindowAsync(IntPtr hWnd, int nCmdShow); 
static void Main(string[] args) 
{ 
    // retrieve Notepad main window handle 
    IntPtr hWnd = FindWindow("Notepad", "Untitled - Notepad"); 
    if (!hWnd.Equals(IntPtr.Zero)) 
    { 
     // SW_SHOWMAXIMIZED to maximize the window 
     // SW_SHOWMINIMIZED to minimize the window 
     // SW_SHOWNORMAL to make the window be normal size 
     ShowWindowAsync(hWnd, SW_SHOWMAXIMIZED); 
    } 
} 

private static IntPtr FindWindow(string p, string p_2) 
{ 
    throw new NotImplementedException(); 
} 

ответ

1

Во-первых, с помощью метода FindWindow(), когда метод имеет заброс вам нужно, чтобы поймать его в методе, где он вызывается в этом случае Main().

Теперь NotImplementedExceptionis класс, здесь я выкладываю вам иерархию наследования

  1. System.Object
  2. System.Exception
  3. System.SystemException
  4. System.NotImplementedException

Как скажем, ошибка, вам просто нужно реализовать метод и удалить строку: `throw new NotImplemente dException();

Наконец, я отправляю вариант реализации, просто нужно название в окне приложения.

public static IntPtr FindWindow(string titleName) 
    { 
     Process[] pros = Process.GetProcesses("."); 
     foreach (Process p in pros) 
      if (p.MainWindowTitle.ToUpper().Contains(titleName.ToUpper())) 
       return p.MainWindowHandle; 
     return new IntPtr(); 
    } 

Кстати, here еще один вопрос о развернуть/свернуть другие приложения