Newer versions of xperfview don't have a summary option? - windows

EDIT- As it turns out I was using the Windows Performance Analyzer. With the Windows 8 ADK when you install the Performance Tools it makes an icon for the Performance Analyzer but no longer makes an icon for xperfview. xperfview 6.2.2900 is still included and still has its responsive interface and now it can properly read Windows 8 etl files. It can be found here:
C:\Program Files (x86)\Windows Kits\8.0\Windows Performance Toolkit\xperfview.exe
Sorry for the confusion. My original question is below, and the answer I checked correct tells how you can show the modules in Windows Performance Analyzer.
I used xperf 4.6.7231 to capture some latency info on a Windows 8 x64 system. I then tried to use the same version of xperfview to view the results but I couldn't. There was only "unknown". All my symbols are configured correctly and this is only a problem trying to use that version of xperfview on Windows 8.
Long story short I had to download the Windows Assessment and Deployment Kit (ADK) to get the latest version of Windows Performance Tools. xperfview from both Win8 and Win8.1pre ADKs work to properly view the etl file created on Windows 8.
The interface for xperfview has changed drastically in Windows 8 ADKs. It is now based on .NET and much less responsive than older versions. It also looks to have many more options. One thing I can't figure out (and I've checked the help and googled) is how I can do what I could in the older versions where I highlight a section, right-click it, then choose "Summary" to see drivers and their percentages at that selected time.
To give you an example here's a link to what xperfview looks like with its new .NET interface:
and here's what it used to look like when you could select a summary. Note it says unknown that's because the old version doesn't handle Win8 etls right. This is just an example of what I'm looking for in the new version, but with the driver names of course.

You have to click at the first icon over the graph. This shows the Graph + table. The 3rd icons shows you the table only.

With WPA the tables show data for the entire visible time range, not the selected time range. If you want to show a summary for the selected time range you need to zoom to that range. You can zoom in the current view or in a new view.
The new UI does take some getting used to, but it has a number of significant advantages:
1) Symbols load asynchronously without hanging the UI while they are loading.
2) Detailed analysis can be done in a single window -- xperfview would frequently require opening a dozen windows to analyze one trace.
3) More configurable (although some of the configuration options are not obvious).
4) More features, such as custom exporting of data and comparing of two traces
5) When a subset of the data (a process, and entry on a call stack) is selected then the areas where that piece of data is active are highlighted on the timeline.
WPA 8.0 had some bugs which forced me to occasionally use xperfview but with WPA 8.1 I no longer need to use xperfview. I don't miss it.
For an overview of new features in 8.1 see this post:
http://randomascii.wordpress.com/2013/10/28/new-version-of-xperfupgrade-now/
For details on the custom export feature see this post:
http://randomascii.wordpress.com/2013/11/04/exporting-arbitrary-data-from-xperf-etl-files/
For various articles on how to use xperf and WPA effectively see the whole series:
http://randomascii.wordpress.com/category/xperf/

Related

What's the recommended tech to program Windows shell?

I am developing a small tool that can detecting which folders are being opened in windows explorer and bring it to front if a specific address has been opened.
I can use both C# and C++ and finally pick C# as it is easier than C++ to accomplish the same target. Then I googled the internet and knowing COM object SHDocVw.ShellWindows can help collect all windows being opened. Then I start looking for Microsoft document to see if any functions can help to achieve my other requirements. However, when I search shell related documents: https://learn.microsoft.com/en-us/previous-versions/windows/desktop/legacy/ff521731(v=vs.85) I am warned that "We're no longer updating this content regularly. Check the Microsoft Product Lifecycle for information about how this product, service, technology, or API is supported." Moreover, some documents even say these techs will be deprecated in Win11 (See the following screenshot)
I am wondering what the status of these Shell related technical. If these are being deprecated. What's the alternative solution? I don't want my tool stop working when start using new Windows. Meanwhile, I am confusing in the study routine of learning Windows desktop technical. Looks like so many technical to achieve the same targets. Is there anyone can give me some road maps?
Last thing, it's really frustrating to search COM object documents at Microsoft sites. Is this tech going down?
Microsoft has been trying to kill win32/desktop applications since Windows 8. That parts of the documentation is labeled as "legacy" is not something I would worry too much about. Some of the shell functions have been marked as deprecated for 20 years but still work fine today and too many applications rely on them for Microsoft to successfully remove them.
The Internet Explorer warning is different and IE might actually go away but that does not affect IShellWindows which is also used by Explorer.exe and 3rd-party applications. Its implementation lives in a shell DLL and not in IE.

Changing the screen brightness on Windows via the console

I am trying to write a simple console application for Windows 10 that changes the screen brightness. Ultimately, I want to use this application with AutoHotKey, but this is secondary.
In researching this, almost everything I found referred to Android, which doesn't help. I did find this Q&A about changing the screen brightness with C, but unfortunately that is for Linux.
This archived thread contains a script that (while appearing quite hacky) makes a good impression - but it
is deprecated, and on many [Systems] it will not return the full brightness settings array. So, where you should have 8 levels, IOCTL_VIDEO_QUERY_DISPLAY_BRIGHTNESS will only return 6, or none at all. (by jkiel, 1)
So I would prefer to use the WmiMonitorBrightness class (2 3) over IOCTL_VIDEO_QUERY_SUPPORTED_BRIGHTNESS. It also provides a lot finer granularity, but I lack the skills to implement it correctly.
So how can I change the screen brightness on Windows 10? Possibly using the mentioned WmiMonitorBrightness class? I don't mind if it is a C application, an AutoHotKey script or something else, that I can control from console.
Looking for a solution, I found this software from 2008 which works like a charm for me on Windows 10. The developer provided the C# source and compiled application here. "You will need the Microsoft .NET Framework 2.0 or greater for the app to work."
Plus it supports the full granularity of setting brightness on your screen.
To use the console app, the following parameters are allowed:
DisplayBrightnessConsole.exe
This will return the current brightness level.
DisplayBrightnessConsole.exe -getlevels
This will return all possible brightness levels accepted by the display, separated by a new line.
DisplayBrightnessConsole.exe 20 (or some other brightness level number)
This will set the brightness level of the display to the parameter given, in this case, 20.
The code currently only works on single-display systems. If your system has more than one display, it
will only work on the first (generally primary) display. It should be fairly easy to modify it to support more.
Possibly helpful for people using python - but it doesn't help in my specific case:
How can I detect brightness changes using Python and WMI on Windows 10?

Blank icons in start menu

There are no start menu icons showing up for my programs. This is a standard vs2010 setup project for a winforms project. I have set the icon for each start menu shortcut in the setup project's file system window, each executable has it's icon manifest set. The icons appear in windows explorer. I have recreated the setup project from scratch, didn't help. This used to work. Nothing I have tried today has fixed this it doesn't make sense. Any ideas appreciated.
Microsoft Visual Studio 2010
Version 10.0.40219.1 SP1Rel
Microsoft .NET Framework
Version 4.0.30319 SP1Rel
I've experienced this once quite some time ago, but frankly don't recall the exact cause right away - two things come to mind:
Icons can come in a wide variety of both size and color depth, so maybe you have chosen a combination of formats within the ICO file which doesn't cover the required formats for the particular version and/or configuration (color/dpi) of Windows you are using currently? Here are some resources:
The Icons section within the Windows User Experience Interaction Guidelines, specifically Color and saturation and Size requirements - please be aware of section For high dpi in particular.
Creating Windows XP Icons, which is definitely outdated, but still provides some useful insights regarding the respective Windows (Explorer) defaults, see e.g. Icon Design Overview.
Update - the following doesn't seem to apply here as per your comment: Another association is triggered by your statement each executable has it's icon manifest set: There could be an issue with 32 vs. 64 bit handling here, insofar Windows might pull all sorts of magic regarding respective executable treatment, e.g. regarding a 32 bit executable o a 64 bit host etc.
I'll try to dig further and recall my specific experience, but maybe this can provide some ideas for further exploration on your side already.
Good luck!

How can i recover data/code from visual studio 2010 made debug folders?

I have a serious issue, my harddisk crashed yesterday , and i had tons of projects on it .I lost most of them but the ones i recovered are all the debug folders i sent to clients (most of them are desktop applications). I am unable to recover the code for most of the work , but i do have debug folders , my question is is there any way that i can recover my code from them.
I am sure some one you would have gone through it in the past, please help if you have any information regarding this.
Files in the debug folder:Example i make application apple
apple.exe type=application
apple.pdb type=PDBFIle
apple.vshost type=Application
apple.vshost.exe.mainfest type=MANIFEST File
ADDITIONAL INFO:
My laptop hardisk crashed so i am currently using it as a usb drive with another laptop . I had 3 partitions but now i see 4 i,j,k,l . One of them which used to be my D: drive working fine, i see it shows 72 GB free out of 150 GB. Rest of them they are just there no info, when i click them nothing for minutes then it says format drive etc... If you know how to fix that that would be wonderful.
Thank you
You really lucked out with having access to the Debug folders containing your compiled binaries. The fact that you're working in a managed language (C#) means that you can use one of the many .NET decompilers to display the source code that they contain in a readable format. It may not be exactly the same as what you initially typed into Visual Studio, but it will be pretty darn close—way better than can normally be expected in the event of a system crash.
I used to recommend Redgate's .NET Reflector for this task, but they recently decided to eliminate the free version of their decompiler utility and adopted some business practices that I personally disagreed with. Then again, their tools are probably still the best around, so you might consider downloading their 30-day trial to attempt to get your code back. Who knows, you might like it so much that you buy!
If you're a cheapskate like me, or a devotee to truly free software, you can try one of the free alternatives that cropped up after Reflector became not free, like ILSpy, developed by the same people who develop SharpDevelop. Even more alternatives are listed here.
Whichever decompiler utility you choose, download a copy and open its executable. Then from the "File" menu, choose "Open", and navigate to the first compiled .exe from which you want to recover source. The utility will display the name of your application and some metadata about your assembly. From here, you can make sure that you opened the correct file.
In both ILSpy and .NET Reflector, you can click the [+] toggle next to your application's name to expand its listing. You'll see a bunch more expandable items, like References (the DLLs that your application uses), Resources (the resource files compiled into your application), and the namespaces defined in your code. Expanding an individual namespace will show you all of the types defined in that namespace, and expanding a type will show you all of the types, methods, members, etc. defined in that type, and so on down the hierarchy. Clicking on individual items in the source tree to the left will display the decompiled code in the output pane to the right; both ILSpy and .NET Reflector support displaying the code as C#, which should look very readable to you.
For example, using ILSpy to open the ILSpy.exe application itself produces the following output:
You really can't break anything in here, so navigate around, exploring and seeing what all can be recovered, amazed at how well this works. Everything works just as well with DLLs as it does with EXEs.
Then get started copying and pasting...
The next order of business is getting your system stable again. If you had a hard disk crash, you definitely don't want to trust that drive ever again! Run out and buy a new one immediately, wipe it, and reload Windows.
Once you finish with that, you definitely want to get on setting up a source/version/revision control system to use in the future to store your code. All smart developers use this for so many reasons. Find more information with a Google search. There are lots of different options. Which one you pick is not important; the important thing is that you pick one!

What to look for in estimating a PowerBuilder Conversion Project?

I've been trying to do a spec for a PowerBuilder 9 to 11.5
migration of a relatively complex application. Granted PowerBuilder
is not really my specialty I'm having issues trying to justify an
estimate for this part of the project (and the PowerBuilder people
I've been talking with have had some personal issues lately and are out of
communication). These are some of the metrics that we have seen and can evaluate:
-PBL Files
-Main Windows
-Data Windows
-Functions
(no we don't have the source available on this project)
What metrics in particular are helpful and how long would any given "unit" such as a Data Window take?
Most PowerBuilder migrations are rather smooth. The biggest thing that might get you moving from 9.0 to 11.5 are (a) the change in the Rich Text Edit control (if used) and (b) Unicode versus ANSI. The later will primarily be an issue if you have external function calls that pass strings, and only require the addition of a ;ANSI suffix or a migration to the Unicode version of the call.
So, look to see if the Rich Text Edit control is used, and look to see how many external function calls are declared. If you don't have any of either, it would be as simple as opening the project up in 11.5 (after making a backup of course) and allowing 11.5 to do the migration.
Its been a while, and I don't remember the specifics, but our upgrade from 9 to 11.5 went very smoothly.

Resources