我创建了一个列表" exe"和Main()中的新WinForm。我需要在OnFocusChanged()中访问它们。这个想法是创建一个隐藏的WinForm,当" firefox"有焦点,将显示WinForm。我的WinForm有一个方法update(),用于显示WinForm。如果我打电话给" form.update()"在Main中,WinForm出现,但我无法在OnFocusChanged()中访问它。
如何在OnFocusChanged()中访问列表和WinForm对象?感谢。
namespace WinForm1
{
static class Program
{
[STAThread]
static void Main()
{
List<string> exe = new List<string>();
Form1 form = new Form1();
Application.Run(form);
}
static private void OnFocusChanged(object sender, AutomationFocusChangedEventArgs e)
{
string program = "firefox";
if(exe.Any(program.Contains)
{
form.update(true);
}
}
}
}
答案 0 :(得分:1)
exe
,因为它在Main方法的范围内是本地的。
您需要创建列表变量static
并将其置于方法
...
static List<string> exe = new List<string>();
[STAThread]
static void Main()
...
答案 1 :(得分:0)
您可以使用System.Diagnostics.Process将此想法存档
首先获取所有进程的列表并检查进程名称
Process[] processes = System.Diagnostics.Process.GetProcesses();
if (processes.Any(c => c.ProcessName == "firefox"))
{
//your update code
}