【问题标题】:programmatically minimize an application using c#使用 c# 以编程方式最小化应用程序
【发布时间】:2013-01-21 04:19:01
【问题描述】:

我有以下代码sn-p

List<String> sensitiveApps = testConnection.SelectSensitive();

foreach (string sensitiveApp in sensitiveApps)
        {
            Console.Write(sensitiveApp);

            // retrieve applications to minimize handle (connect to database and systematically minimize all applications?)
            IntPtr hwnd = UnsafeNativeMethods.FindWindow(sensitiveApp, null);
            StringBuilder stringBuilder = new StringBuilder(256);
            UnsafeNativeMethods.GetWindowText(hwnd, stringBuilder, stringBuilder.Capacity);
            Console.WriteLine(stringBuilder.ToString());

            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_SHOWMINIMIZED);
            }
        }

其中sensitiveApps 是一个包含字符串“Notepad”、“Recuva”和“VLC media player 2.0.3”的列表。

但是,唯一可以使用此代码最小化的应用程序是记事本。调试程序发现

Console.WriteLine(stringBuilder.ToString());

不会为最后 2 个程序返回任何值,但会返回一个 Untitled - Notepad。

是不是我做错了什么?

【问题讨论】:

  • 1.使用Spy++ FindWindow 名称是否正确? 2. Recuva & VLC没有剥皮功能? 3. 你有没有试过在上面使用 SetWindowText 并把标题改成别的东西?
  • 谢谢!没想到有这么一个叫Spy++的程序……发现MS Word是OpusApp,VLC是QWidget。

标签: c# minimize


【解决方案1】:

尝试使用Spy++ 并检查 FindWindow 名称是否正确。

MS Word 是 OpusApp,VLC 是 QWidget。

【讨论】:

    猜你喜欢
    • 2023-04-08
    • 2011-09-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多