Tôi muốn viết ứng dụng C# sẽ chuyển đổi giữa một số ứng dụng đang chạy. Nó nên làm các chức năng chính xác như Alt + Tab trong cửa sổ. Tôi sử dụng chức năng SetForegroundWindow()
từ Windows API, nhưng nó không hoạt động tốt nếu ứng dụng được thu nhỏ trên thanh tác vụ của cửa sổ. Vì vậy, tôi đã thêm ShowWindow()
chức năng, nhưng có một vấn đề mà tôi không thể hiển thị cửa sổ ở kích thước ban đầu mà người dùng thiết lập.Chuyển ứng dụng trong C# như trình quản lý tác vụ
[DllImport("user32.dll")]
public static extern bool SetForegroundWindow(IntPtr hWnd);
[DllImport("user32.dll")]
public static extern bool ShowWindow(IntPtr hWnd, int nCmdShow);
Ví dụ: Tôi phóng to cửa sổ, sau đó tôi thu nhỏ cửa sổ vào thanh tác vụ. Khi tôi gọi:
ShowWindow(processWindowHandle, ShowWindowCmd.SW_NORMAL);
WindowsApi.SetForegroundWindow(processWindowHandle);
Cửa sổ không được phóng to. Tôi đã thử chơi với tham số ShowWindowCmd.SW_NORMAL
nhưng với cùng một kết quả.
bạn đã thử SW_RESTORE? – David
Có, tôi đã thử SW_RESTORE. Các ứng dụng được tối đa hóa và sau đó được tối thiểu hóa sau đó hiển thị NOT tối đa (như mong đợi). Nó được hiển thị dưới dạng cửa sổ có kích thước thấp hơn kích thước tối đa của màn hình. –
Tôi không muốn tối đa hóa cửa sổ mỗi lần. Tôi muốn hiển thị cửa sổ trong cùng một trạng thái đã được cho tôi ẩn cửa sổ với một số khác hoặc befor tôi tối thiểu hóa nó vào thanh tác vụ ... –