我不完全确定这是可能的。
我有一个用C#编写的遗留GUI应用程序。使用AttachConsole(-1)(来自kernel32.dll)如果从命令行调用它,我可以添加一个控制台窗口。我甚至能够编写一个模块来运行基本用例,并使其看起来好像是一个控制台应用程序。我没有显示窗口,如果我这样做没有更新或正常工作(因为我没有使用Application.Run)
然而,我的团队中的另一个人想要做类似的事情,其中输入参数将引发一系列GUI动作(如buttonExample.PerformClick(),更新文本框等)来模拟用户。是否可以完全使用C#进行此操作,还是必须使用AutoIt之类的东西?
我们正在使用VS2008 / .NET Framework v3.5。
答案 0 :(得分:4)
您可以将字符串数组args添加到static void Main()
并将它们传递给GUI类以执行此类操作。
static class Program
{
/// <summary>
/// The main entry point for the application.
/// </summary>
[STAThread]
static void Main(string[] args)
{
...
//TODO: Stuff with your args
}
}
答案 1 :(得分:0)
你的问题的答案是'有点'......你可以做一些事情,但在大多数情况下,你需要从表格中公开很多细节。这是一个简单的例子:
class Program
{
public static void Main(string[] args)
{
Form2 frm = new Form2();
if( args.Length >= 2 && args[0] == "something" )
{
frm.txtTextArea.Text = args[1];
frm.btnOk_OnClick(frm.btnOk, EventArgs.Empty);
}
}
}
public class Form2 : Form
{
public TextBox txtTextArea;
public Button btnOk;
public void btnOk_OnClick(object sender, EventArgs e)
{
//... code ...
}
}
我真的,真的,真的,不建议这样做。您需要重构表单的实现,并将表单中的代码转换为业务逻辑类。
答案 2 :(得分:0)