private void btnGetHWnd_Click(object sender, RoutedEventArgs e)
{
var winNameCond = new PropertyCondition(AutomationElement.NameProperty, "QQ2013");
var app = AutomationElement.RootElement.FindFirst(TreeScope.Children, winNameCond); var edit = new PropertyCondition(AutomationElement.ControlTypeProperty, ControlType.Edit);
var list = app.FindAll(TreeScope.Descendants, edit); //var password = list[0].GetCurrentPropertyValue(ValuePattern.ValueProperty); 这个取会出错
var qq = list[1].GetCurrentPropertyValue(ValuePattern.ValueProperty);//这个QQ号取成功 ValuePattern setQQ = (ValuePattern)list[1].GetCurrentPattern(ValuePattern.Pattern);
setQQ.SetValue("10000");//这里会出错
}以下是System.Windows.Automation的用法
http://blog.csdn.net/zhongjiekangping/article/details/5262688
我现在已经可以取得QQ2013登录框里面的登录QQ号了,
但现在setQQ.SetValue("10000");的时候会出错!!
怎么办?万分感谢
try
{
setQQ.SetValue("10000");
}
catch {
System.Windows.Forms.SendKeys.SendWait("10000");
}这样的话是可以在Edit中插入数据的,但总是不完美,不是用代码给设置的
谢谢