whats the best way (in c#) to get the active window name? (for example the name of the drawing window, the name of the main app window, etc...)
if possible without using the windows api..
Solved! Go to Solution.
Are your talking about Revit? And want to get the Revit's active view's name and Revit main frame name?
The simplest way to get the active Revit view name is:
View class name + ": " + view name + " - " + ProjectName.
For example: Floor Plan: 2 - Mech - Project1
Floor Plan is the view class name.
Project1 is the project name.
The active view name can be easily get by : doc.ActiveView.Name property.
With regard to get the Revit's main app name, there is no straightforward Revit APi can be used. You need to resort to the windows API, I think.
if talking about the main window, the title displayed consists also of product type and year, which can be got by Application.VersionName and Application.VersionNumber.
Window title may change to a shorter string if window is resized.
Also, in a zero-document state, title looks like "[Recent files]", but this depends on Revit's current language.
Good idea to compose the caption string. Normally this should work fine to get the correct string.
However there are situations the caption is different. For example, the Revit used by the ADN partners, there is a sub-string "Not for resale version" in the caption string, the other parts are the same. There maybe some other situations, for example , the Revit education version.
yes, I know that there are special strings for special versions.
Also, these strings are localized (as the "[Recent files]" string is).
After all, I think there is no possibility to get the main window title string except using Windows API functions.
I do not see why not to do so, by the way.
Start with some of our most frequented solutions to get help installing your software.