Registering Sample Property Handler - windows-search

So I built the RecipePropertyHandler from the Windows 7 SDK samples, ran regsvr32, and registered my PROPDESC file. This gives me the ability to edit a custom property named Difficulty on files of type .recipe, with a three-state dropdown box in the Details Pane, and also gives me the option for adding that property as a column in Explorer details view.
So far, so good. However, I'm trying to follow instructions from this MSDN thread, and I'm seeing some odd things.
First, none of the three registry entries they mention are showing up for me. Specifically:
HKLM\Software\Microsoft\Windows\CurrentVersion\PropertySystem\PropertySchema\
HKLM\Software\Microsoft\Windows\CurrentVersion\PropertySystem\PropertyHandlers.recipe
HKLM\Software\Classes\CLSID{50D9450f-2a80-4f08-93b9-2eb526477d1a} [Actually this is from the Vista SDK, and it looks like the CLSID has changed, but the new one isn't in the registry either.]
They mention a .reg file on the other thread, but I don't think it works that way anymore.
For what it's worth, I do see an entry under HKEY_CLASSES_ROOT\.recipe. I'm also able to see the installed property using the prop.exe utility like so:
C:\tools>prop.exe schema describe Microsoft.SampleRecipe.Difficulty
Microsoft.SampleRecipe.Difficulty
----------------------------------
Property Key: {1794C9FE-74A9-497F-9C69-B31F03CE7EF9} 100
Canonical Name: Microsoft.SampleRecipe.Difficulty
Property Type: VT_LPWSTR
Display Name: Recipe difficulty
Edit Invitation: Specify recipe difficulty
Type Flags: PDTF_CANGROUPBY | PDTF_CANSTACKBY | PDTF_ISVIEWABLE | PDTF_ISQUERYABLE
View Flags:
Default Column Width: 20
Display Type: PDDT_ENUMERATED
Column State: SHCOLSTATE_TYPE_STR
Grouping Range: PDGR_ENUMERATED
Relative Desc. Type: PDRDT_GENERAL
Sort Description: PDSD_A_Z
Sort Desc. Labels: A on top/Z on top
Aggregation Type: PDAT_DEFAULT
Condition Type: PDCOT_STRING
Condition Operation: COP_WORD_EQUAL
Enumerated Types: 4
0 PET_DISCRETEVALUE: Easy VT_LPWSTR/[Easy]
1 PET_DISCRETEVALUE: Medium VT_LPWSTR/[Medium]
2 PET_DISCRETEVALUE: Hard VT_LPWSTR/[Hard]
3 PET_DISCRETEVALUE: Really, Really Hard VT_LPWSTR/[ReallyReallyHard]
Search Info Flags: PDSIF_ISCOLUMN | PDSIF_ISCOLUMNSPARSE
Column Index Type: PDCIT_ONDISK
Projection String Microsoft.SampleRecipe.Difficulty
Max Size: 512
Anyway, the main question is, should I not be able to query this property using either its canonical name or mneumonic name in the Windows Explorer Search UI? That doesn't seem to work for me, and it's not clear from the other thread if it's even supported. It may be the case that Vista and Windows 7 store this information in different places, though.
However, I did notice at least one non-custom property supported using the Advanaced Search Query syntax, namely Microsoft.IE.VisitCount as defined in ie9props.propdesc. So I think there must be a way to do this. What I'm looking for is blue text in the explorer search bar when I type propertyname:value using Advanced Query Syntax. I figure if they support custom edit UI in the Details pane, surely if the property is queryable it will give me a little search filter in the Explorer UI.

Yes, it works. I'm not completely sure what did it, but now I've got it working on my machine at least. I can use either my canonical name or mnemonics alias and when I hit the colon character, it turns blue in the Explorer search bar.
The registry locations mentioned in the older thread aren't up-to-date. See https://msdn.microsoft.com/en-us/library/windows/desktop/bb266532(v=vs.85).aspx#prophandlers__installation for the right values as of Windows 7.

Related

The system cannot find the file specified in uft 12.01

I was trying to use Insight feature of UFT to avoid using the build configuration of libraries from development side for a flex based application. When i tried using the method "GetVisibleText" UFT 12.01 returns "The system cannot find the file specified". But i was click on different buttons in the same page Example buttton x, Button y at my wish. So it means UFT is distinguishes the objects. My purpose is to check on the dynamic text objects in the page. Note : "GetRoProperty" returned nothing and there is only one property called "similarity" and its returning a constant value at all the times immaterial of different pages.
UFT's Insight technology uses images in order to identify objects, the fact that it identifies button x does not mean that it has any intrinsic understanding that it contains the text "x".
In Insight the similarity property is used in order to decide how dissimilar a control has to be from the captured image in order for it not to constitute a match. Similarity isn't a regular identification property as we are used to. This is why you get the same value for each test object (it doesn't mean that the specific object supports this property).
Regarding GetVisibleText, UFT uses OCR in order to extract the text. You can specify which language you're expecting in the last parameter.
In any case none of these things should fail due to not being able to find a file. I have two thoughts on the matter:
Are you using descriptive programming to identify the InsightObject (see link further on) if so perhaps the image file you specified isn't found?
What OCR Mechanism are you using? (Tools ⇒ Options ⇒ GUI Testing ⇒ Text Recognition), perhaps the mechanism you're using isn't installed correctly and this is causing the failure, try using a different OCR mechanism.
You can read a bit more about Insight here.

Efficient Searching in Outlook mail box

I have outlook 2011 in my mac. I have more than 30,000 emails in my mail box and would like to search from all the mails based on inputs.
Now using Advanced find I can do that , But for each and every value I have to add a new search criteria
eg . Subject contains xxx
Subject contains yyy
Subject contains zzz
it would be very difficult for me to add the search value manually if I have 1000 values to search for.
Is there any effective way to do this or do we some plugin which would read from input file and populate these vales ?
Any help would be really appreciated
I think, you can get little bit help from this -- http://derflounder.wordpress.com/2011/04/26/finding-the-hidden-search-options-in-outlook-2011/ , also this one too - https://www.gvsu.edu/cms3/assets/428A2C9A-0FB7-5B0C-BBFCF723C12E59E3/outlook_mac_search_email.pdf
In Windows version of Outlook there is a hidden tab that can be enabled by creating a new registry key HKEY_CURRENT_USER\Software \Microsoft\Office\12.0\Outlook\QueryBuilder. See here (sroll to Building DASL Queries).
This adds SQL tab to Filter dialog of Customize Current View. Here you can write a text with DASL query. The query for your example would look like this:
("urn:schemas:httpmail:subject" LIKE '%xxx%' AND
"urn:schemas:httpmail:subject" LIKE '%yyy%' AND
"urn:schemas:httpmail:subject" LIKE '%zzz%')
You can create script that takes all keywords from a text file and formats them like
"urn:schemas:httpmail:subject" LIKE '%MyKeyword%'
and construct the DASL query prorgamatically from a text file. You can store your generated queries as text files and copy them in the SQL tab as necessary.
This solution is surely far from perfect but it is relatively easy to implement. The problem is that I do not know how to enable that tab in Outlook 2011 on Mac nor whether it is possible at all. I do not have a Mac so take this rather as a hint.

Share All Resharper code formatting/inspection options

As denoted in This Article ReSharper's .sln.DotSettings file contains only those settings which values changed from default ones. Is there a way to store all the code editting and code inspection settings in a team-shared layer, regardless of the value being changed or default?
The only way to do this I see is changing each and every value and switching it back (so all of them end up in .sln.DotSettings file), however this seems to be quite a time-consuming task.
The problem I'm trying to avoid is as follows:
Suppose a team has 2 developers, say Jessika and John, and they decide that they are OK with Resharper's default to prefix private fields with with an underscore:
int _myPrivateField = 1;
So they are not changing the "Instance fields(private)" setting under "C# Naming Style" section and check in the .sln.DotSettings file.
However, when Jessica checks out the source code on her home laptop it Resharper still suggests using
int myPrivateField = 1;
because her computer has its setting changed to have no prefix, saved as "Save to this computer". As denoted in Resharper's docs if a "This Computer" layer has a value for a setting, whereas the other layers don't the value will be applied (see the middle green setting in this picture: http://blogs.jetbrains.com/dotnet/wp-content/uploads/2012/08/layers3.png
Regrettably, at the moment we can offer no option other than changing options one by one and saving them in the requisite layers. We are aware that this approach is inconvenient, and are in discussions as to how to best handle this.

Search for partial registry key in InstallShield

As part of our installation procedure we have to install Adobe Acrobat XI. According to Adobe:
The basic formula for constructing and decoding the GUID is as follows:
Acrobat: Example: AC76BA86-1033-F400-7760-100000000002
[product family]-[language code]-[additional languages]-[product type]-
[license type][major version][major minor version]
Since I know the key is located in HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall and I know the key starts with {AC76BA86- I would like to simply search for the key(s) that begin with that sequence so I can inspect it to determine if we need to install Acrobat.
Is there a way to do a partial registry key search in InstallShield's install script?
Adobe is bastardizing their product codes and I really DON'T suggest playing along with that game.
However, if you read section 2.11.3 you'll see that all readers share the common UpgradeCode of A6EADE66-0000-0000-484E-7E8A45000000.
What this allows you to do is use the Upgrade Table / FindRelatedProducts to search for ProductCodes based on this UpgradeCode. Use the "Detect Only" setting and the ProductCode found will be assigned to the Property of your choosing.
No custom actions, no bastardized ProductCode GUIDS. Simple, easy... "It Just Works".
Looks like the best way to do this was to use RegDBQueryKey(<registry path>, REGDB_KEYS, <returnList>) to get a list of subkeys and then inspect each key in the list to see if it started with the partial value I was looking for.

OpenERP reports - What are the OpenOffice Writer properties for?

I have been searching the web, this site and obviously the developers section on reports from OpenERP and I can not find any explanation as what the Openwriter properties/User defined are used for.
Spending some time on developing a first report, I came to some conclusion but can't work it all out:
There are three columns: Name, Type and Value. In all the predefined OpenERP reports I have opened using Openwriter, the schema seems to be always the same. Four rows, "Info 1" to "Info 4", all with the type "text", and then the server location, the user login id, a number and a table name.
I understand that the server location and user login id will be used when connecting to the server.
I understand that the table name will be used when creating a loop object.
Question 1: But what is the number for, the one usually corresponding to Info 3? I thought it might be the res_model id from the ir_act_window table but I found a report that doesn't match (Crossovered analytic). Any idea what the number is for and how it is defined?
EDIT Answer 1: It is linked to the binding action. When creating a new report for an existing model, then an existing binding action value on this model should be incremented by one (well, that's the theory as I haven't tried yet).
Question 2: Why is the type "text" when Info 3 is a number? I guess it is the interpretation from python and that it is the way it is and this is the only way to configure the properties to operate with OpenERP. Can someone confirm?
Question 3: Why when I add Info 5 and Info 6, pointing out to another table, hoping to create a loop on a different table, it gets totally ignored?
Question 4: Why when binding to the server it doesn't ask me anything and doesn't add the report anywhere?
EDIT Answer 4: See Answer 1 as when changing the binding action index in "Info 3" to an existing binding action index in OpenERP then it pops the binding window up.
Thanks for reading this far! I am sure answers to these questions will help a lot of people understanding at least the basic connection between Openwriter and OpenERP.
EDIT: Thanks Amit for the formatting, it is much more readable this way and I will apply it to my next messages.
Not sure what Openwriter is - I suggest you try a different reporting engine. The easiest imo is the webkit html reports, you can use normal html and "mako" templating code to iterate through the objects.

Resources