Click on button using UI Automation in Winform application in VC++ - winforms

I want to click on a button using UI Automation. I am using UI Automation in Winform VC++.
Here is my code..
AutomationElement^ Select_connect_button= aeForm->FindFirst(TreeScope::Children,gcnew PropertyCondition(AutomationElement::NameProperty, "Select/Connect"));
InvokePattern^ ipClickButton1 = (InvokePattern)Select_connect_button->GetCurrentPattern(InvokePattern::Pattern);
ipClickButton1->Invoke();
but it is showing these Error:
error C2440: 'type cast' : cannot convert from 'System::Object ^' to 'System::Windows::Automation::InvokePattern'
error C2440: 'initializing' : cannot convert from 'System::Windows::Automation::InvokePattern' to 'System::Windows::Automation::InvokePattern ^'
Can anybody please help me to resolve these Errors.
Thanks.

The build error is you convert (InvokePattern) to "InvokePattern^".
In my testing, update the second line to below code will fix this issue:
InvokePattern^ ipClickButton1 = (InvokePattern^)Select_connect_button->GetCurrentPattern(InvokePattern::Pattern);

You can't cast with those objects. Here is one way to do it in C#. You can get the method names, etc. here. The various constants you need are in something like:
C:\Program Files\Microsoft SDKs\Windows\v7.0\Include\UIAutomationClient.h
(might be the v7.1 directory instead)
public static IUIAutomationInvokePattern elementToInvokePattern(this IUIAutomationElement element)
{
var conditionInvokePattern = auto.CreatePropertyCondition(
WindowsConstants.UIA_IsInvokePatternAvailablePropertyId,
true);
var cacheRequest = auto.CreateCacheRequest();
cacheRequest.AddPattern(WindowsConstants.UIA_InvokePatternId);
var cachedElement = element.FindFirstBuildCache(TreeScope.TreeScope_Element,
conditionInvokePattern,
cacheRequest);
var invokePattern = (IUIAutomationInvokePattern)
cachedElement.GetCachedPattern(WindowsConstants.UIA_InvokePatternId);
return invokePattern;
}
Looks like constants in the example are from here: http://msdn.microsoft.com/en-us/library/dd757483.aspx

Related

Sytem.InvalidCastException on Windows Phone : Unity 3d

One of my code throws this exception:
An exception of type 'System.InvalidCastException' occurred in mscorlib.ni.dll but was not handled in user code
Additional information: At least one element in the source array could not be cast down to the destination array type.
I get this exception on visual studio 2013 when I run this project on Windows Phone. OS version is 8.1 developer preview.
the Code snippet is:
private var BootlePattern : int[];
var BootleHits : boolean[];
var maxBottle : int;
function Start() {
...
BootlePattern=new Array(maxBottle);
BootleHits=new Array(maxBottle);
...
}
Can anyone please suggest anything about how to solve this?
Explicitly initializing the arrays like:
BootlePattern = [0, 0, 0, 0, 0, 0];
instead of :
BootlePattern = new Array(maxBottle);
solved my problem. I guess Windows phone could not handle the datatype during the declaration without value. Though I don't know the real reason.

How to load report file in the printing control? - DevExpress

I created report(XtraReport) and i drag reporting tool PrintBarManager or PrintControl to form. Now I need to load that report to that PrintControl. How to load ? Help me.
I tried this code but showing error - Object reference is not set to instance of object
var test = new XtraReport1();
printControl1.Container.Add(test); // Object reference not set to instance of object
test.ShowPreview();
I tried this code but it showing - Best overloaded method match.....
var test = new XtraReport1();
printControl1.Controls.Add(test); // Best overloaded method, invalid arguments
test.ShowPreview();
How to load my report to PrintControl ?
Use the following code:
//Set the printing system
printControl.PrintingSystem = report.PrintingSystem;
//Create and build your report
XtraReport1 report = new XtraReport1();
report.CreateDocument();
P.S. Take a look at How to: Add a Print Preview to a Windows Forms Application guidance.

Property 'sharedFileUtils' not found on object of type 'CCFileUtils'

I'm just getting started running Cocos3d and right out of the box trying to run the demo file I'm getting a compile error. Here's the error in the log:
/Users/user/Developer/Tutorials/Cocos3dInitialTest/Cocos3dInitialTest/cocos3d/cocos3d/Nodes/CC3BitmapLabelNode.m:140:36: error: property 'sharedFileUtils' not found on object of type 'CCFileUtils'
NSString *fullpath = [CCFileUtils.sharedFileUtils fullPathFromRelativePath: fontFile];
I'm sure it's a simple fix but, ah, so much initial code to get through. Don't want to overheat my brain right of the bat if possible.
sharedFileUtils is a method, not a property.
Try this way:
[CCFileUtils sharedFileUtils]
Your code should look like this:
NSString *fullpath = [[CCFileUtils sharedFileUtils] fullPathFromRelativePath: fontFile];

System.Collections.Generic.List<ActualEstimatation.frmEstimate.ItemInfo>' does not contain a definition for 'Where'

I am trying to bind treeview dynamically.
I Searched in Google and found some good links.
When I try to run in my system its showing error something like this
'System.Collections.Generic.List<ActualEstimatation.frmEstimate.ItemInfo>' does not contain a definition for 'Where' and no extension method 'Where' accepting a first argument of type 'System.Collections.Generic.List<ActualEstimatation.frmEstimate.ItemInfo>' could be found (are you missing a using directive or an assembly reference?)
Those links are
How to dynamically populate treeview (C#)
and sga101's Solutions
How to insert Datas to the Winform TreeView(C#) in effitive coding?
I searched in Google to solve the above issue but not found any solution.
Please help me to solve this issue.
Thanks in advance
i need to see more of your code but i believe what you are missing is LINQ statement.
here you can read about it and start to see how to implement in your application.
for example:
using (ServiceContext svcContext = new ServiceContext(_serviceProxy))
{
var query_where1 = from a in svcContext.AccountSet
where a.Name.Contains("Contoso")
select a;
foreach (var a in query_where1)
{
System.Console.WriteLine(a.Name + " " + a.Address1_City);
}
}

Reflection error when using F# sprintf "%A" on Windows Phone

I have a set of F# record types like this:
type Course =
{ Id : int
Title : string
Instructor : string
Duration : string
StartDate : string
IconUrl : string
Url : string
LectureSections : LectureSection list }
and LectureSection =
{ Title : string
Completed : bool
Lectures : Lecture list }
and Lecture =
{ Title : string
VideoUrl : string }
and at some point I call
sprintf "%A" course
where course is an instance of the Course record
On a regular .NET project this works fine, but on a Windows Phone 7.1 / Silverlight 4 F# project (I'm using Daniel Mohl's templates), I get this error:
Late bound operations cannot be performed on types or methods for which ContainsGenericParameters is true.
The problem seems to be the lists. Does anyone know of any way around this problem?
The templates should come with a custom built FSharp.Core.dll that disable features that are not available on Windows Phone. Are you sure you are compiling against this dll, and not the Windows PC one?
I had similar problems with Xbox360 and XNA. The F# team sent me a dll suitable for use for the Xbox360, along with some brief instructions on the settings used to build the dll.
Here is the propertygroup we've used to compile FSharp.Core:
<PropertyGroup Condition="'$(TargetFramework)'=='Xbox360\CompactFramework\3.7'">
<TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
<TargetFrameworkProfile>Client</TargetFrameworkProfile>
<XnaFrameworkVersion>v4.0</XnaFrameworkVersion>
<XnaPlatform>Xbox 360</XnaPlatform>
<XnaProfile>HiDef</XnaProfile>
<XnaCrossPlatformGroupID>a8d70e6b-9a75-4aec-80f8-62cf373f7368</XnaCrossPlatformGroupID>
<XnaOutputType>Game</XnaOutputType>
<TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
<DefineConstants>$(DefineConstants);FX_NO_ARRAY_LONG_LENGTH;FX_NO_DEBUG_PROXIES;FX_NO_EXIT;FX_FSLIB_IOBSERVABLE;FX_NO_WEB_CLIENT;FX_NO_WEB_REQUESTS;FX_NO_CHAR_PARSE;FX_NO_DEFAULT_DEPENDENCY_TYPE;FX_SIMPLE_SECURITY_PERMISSIONS;FX_NO_TRUNCATE;FX_NO_CULTURE_INFO_ARGS;FX_NO_REFLECTION_MODULE_HANDLES;FX_NO_OPERATION_CANCELLED;FX_NO_TO_LOWER_INVARIANT;FX_NO_EXIT_CONTEXT_FLAGS;FX_NO_BASED_ARRAYS;FX_NO_DOUBLE_BIT_CONVERTER;FX_NO_BINARY_SERIALIZATION;FX_NO_ASCII_ENCODING;FX_NO_DEFAULT_ENCODING;FX_NO_FILE_OPTIONS;FX_NO_NONBLOCK_IO;FX_NO_COMMAND_LINE_ARGS;FX_NO_ENVIRONMENT;FX_NO_PROCESS_START;FX_NO_APP_DOMAINS;FX_NO_PROCESS_DIAGNOSTICS;FX_FSLIB_STRUCTURAL_EQUALITY;FX_FSLIB_LAZY;FX_FSLIB_TUPLE;FX_NO_REFLECTION_EMIT</DefineConstants>
<Tailcalls>false</Tailcalls>
<!-- It would be better to use MSBuild resolution here, but the TargetFrameworkIdentifier etc. aren't set up quite correctly as yet -->
<OtherFlags>$(OtherFlags) --simpleresolution -r:"C:\Program Files\Microsoft XNA\XNA Game Studio\v4.0\References\Xbox360\mscorlib.dll"</OtherFlags>
</PropertyGroup>
and the new .targets we use:
<Import Project="$(MSBuildExtensionsPath)\Microsoft\XNA Game Studio\Microsoft.Xna.GameStudio.targets" Condition="'$(TargetFramework)'=='Xbox360\CompactFramework\3.7'"/>
The dll they sent me was working fine, and I never had to use these instructions, but they might be useful to someone who wants to build an FSharp.Core.dll for a new platform. Note in particular the DefineConstants part.

Resources