Menu

如何检查福彩12选5走势图是否最小化?

辰达

新成员
已加入
2016年6月30日
留言内容
4
编程经验
Beginner
您好,我需要检查c#中的福彩12选5走势图是否最小化,这是我所做的:
C#:
{
    class RestoreWindow
    {
        [DllImportAttribute("user32.dll")]
public static extern IntPtr FindWindow(string lpClassName, string lpWindowName);
 
[DllImportAttribute("user32.dll")]
public static extern bool ShowWindow(IntPtr hWnd, int nCmdShow);
 
[DllImportAttribute("user32.dll")]
public static extern bool SetForegroundWindow(IntPtr hWnd);
 
[DllImport("user32.dll")]
[return:MarshalAs(UnmanagedType.Bool)]
static extern bool IsIconic(IntPtr hWnd);
 
public static void MaximizeWindowIfMinized(string windowName,Form f1)
{
    try
    {
        var instance = FindWindow(null, windowName);
 
        if (IsIconic(instance))
        {
            Button btn = new Button();
            btn.Width = 10;
            btn.Height = 10;
            f1.Controls.Add(btn);
            MessageBox.Show("Window is minimized");
 
           // ShowWindow(instance, 1);
            //SetForegroundWindow(instance);
        }
    }
    catch (Exception ex)
    {
        MessageBox.Show(ex.Message);
    }
}
    }
}
但是当我编译没有任何反应时,您有任何想法吗?
 

金西尼(Jmcilhinney)

C#论坛主持人
工作人员
已加入
2011年4月23日
留言内容
3,566
地点
悉尼,澳大利亚
编程经验
10+
说的不准确"nothing happen"。您可能没有看到任何特定的用户事件,但是代码确实做了一些事情。作为开发人员,您需要完全确定代码的功能以及与您的期望有何出入。这就是调试的目的。

你知道怎么调试吗?如果是这样,请执行此操作。如果没有,现在是时候学习了。您将从在该方法的开头放置一个断点(F9)开始。调用该方法时,执行将在此时中断。然后,您可以逐行(F10)遍历代码,从而确定执行是否采用了您期望的路径。您还可以使用“自动”,“本地”和“监视”福彩12选5走势图以及其他各种工具来检查每一步的状态,从而确定变量是否包含期望的值,等等。

这样可以准确地确定出了什么问题,然后您就可以确定原因。如果您不能自行确定原因,则可以在此处发布所有相关信息,我们可能有机会确定问题所在。您需要检查FindWindow返回的句柄,然后使用Spy ++之类的工具来确保它是您要查找的福彩12选5走势图的句柄。
 

辰达

新成员
已加入
2016年6月30日
留言内容
4
编程经验
Beginner
您好,我的目的是我的C#应用​​程序是当我打开exe文件时,然后在Winform上创建了一个按钮,并且当exe福彩12选5走势图关闭时,该按钮消失了。按钮的功能将是:如果我们单击按钮,则将福彩12选5走势图最小化,然后将恢复该福彩12选5走势图。这是我尝试过的:

私人的 静态的 福彩12选5走势图布置 GetPlacement(诠释 hwnd)
{
WINDOWPLACEMENT展示位置= 新的 WINDOWPLACEMENT();
Placement.length = Marshal.SizeOf(placement);
参考 placement);
返回 placement;
}

[DllImport("user32.dll",SetLastError = 真的)]
[返回:MarshalAs(UnmanagedType.Bool)]
内部的 静态的 外部 布尔 GetWindowPlacement(
诠释 hWnd, 参考 福彩12选5走势图布置 lpwndpl);
内部的 枚举 ShowWindowCommands: 整型
{
Hide = 0,
Normal = 1,
Minimized = 2,
Maximized = 3,
}

[Serializable]
[StructLayout(LayoutKind.Sequential)]
内部的 结构 WINDOWPLACEMENT
{
上市 整型 length;
上市 整型 flags;
上市 ShowWindowCommands showCmd;
上市 System.Drawing.Point ptMinPosition;
上市 System.Drawing.Point ptMaxPosition;
上市 System.Drawing.Rectangle rcNormalPosition;
}

[DllImport("user32.dll")]
私人的 静态的 外部 布尔 ShowWindowAsync(诠释 hWnd, 整型 nCmdShow);
上市 静态的 空白 MaximizeWindowIfMinized(细绳 windowName,计时器tim,FlowLayoutPanel f1)
{
tim.Start();
Button btn = 新的 Button();
Process [] procs = Process.GetProcesses();
尝试
{


前言 (处理过程 procs)
{
如果 (proc.ProcessName.Contains(windowName))
{
变种 位置= GetPlacement(proc.MainWindowHandle);
Console.WriteLine(placement.showCmd.ToString());

如果 (placement.showCmd == ShowWindowCommands.Normal)
{

btn = 新的 Button();
// btn.Width = 150;
// btn.Height = 120;
f1.Controls.Add(btn);
// btn.Left = 500;
// btn.Visible = true;
// btn.Click + = button1_Click(windowName);
tim.Stop();
}
tim.Start();

如果 (placement.showCmd == ShowWindowCommands.Hide)
{
btn.Visible = 错误的;
tim.Stop();

}

}
}
}
抓住
{

}

}
 
最佳 底部