Skip to content
Snoop - The WPF Spy Utility
C# C++ Other
Branch: develop
Clone or download
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.build Adding "After" for setup so it runs after pack Feb 16, 2020
Artwork Improving logo quality Jun 29, 2019
Shared Adding property manifest to executables Oct 4, 2019
Snoop.Core Fixing missing names in tree caused by refactoring mistake Feb 9, 2020
Snoop.GenericInjector Adding proper debug/trace output macro Feb 8, 2020
Snoop.InjectorLauncher Making diagnostic easier Feb 9, 2020
Snoop Drasically improved performance of AppChooser.Refresh() Feb 15, 2020
SnoopLogo Removing support for WPF 3.5 and upgrading to VS 2017. Aug 8, 2018
TestHarnesses Hide console of injector launcher Feb 9, 2020
chocolatey Fixing assembly names because .net core hass issues with dynamic asse… Dec 7, 2019
.editorconfig Enabling more analyzers and fixing warnings Dec 26, 2019
.gitattributes Fixed line endings and adding the .gitattributes file. GitHub for Win… Jun 8, 2012
.gitignore Using nuke.build as our build system now Jul 26, 2019
.markdownlint.json Adding markdownlint settings and fixing warnings Dec 5, 2019
.nuke Using nuke.build as our build system now Jul 26, 2019
Changelog.md Adding #161 to changelog Feb 15, 2020
Directory.build.props Disabling WriteVersionInfoToBuildLog to fix CI build Feb 8, 2020
Directory.build.targets Adding GitVersionTask Feb 8, 2020
GitVersion.yml Using nuke.build as our build system now Jul 26, 2019
License.rtf Restoring License.rtf Aug 15, 2018
License.txt Adding license and verification for chocolatey Aug 18, 2018
README.md Adding more version highlights to the readme Feb 15, 2020
Snoop.ruleset Fixing all StyleCop errors Dec 26, 2019
Snoop.sln Fixing all StyleCop errors Dec 26, 2019
Snoop.sln.DotSettings Allowing UI in class names Feb 2, 2020
Snoop.wxs Fixing assembly names because .net core hass issues with dynamic asse… Dec 7, 2019
appveyor.yml Fixing text Dec 7, 2019
build.ps1 Reverting change to build.ps1 Feb 16, 2020
build.sh Using nuke.build as our build system now Jul 26, 2019
global.json Pinning .net sdk version Feb 9, 2020

README.md

Snoop

Snoop is the open source WPF spying utility created by Pete Blois when he was employed at Microsoft.

It allows you to spy/browse the visual tree of a running application (without the need for a debugger) and change properties, view triggers, set breakpoints on property changes and many more things.

Build status for master branch Build status for develop branch chocolatey version chocolatey download count

Contact

  • Join the chat at https://gitter.im/snoopwpf/Lobby
  • Twitter

Where can i download Snoop?/How can i install Snoop?

  • chocolatey
  • github releases
  • appveyor for the latest preview versions (built on every code change)
  • Please note that you need at least .NET Framework 4.0 to run Snoop

Versions

3.0.0 (preview)

You can read the changelog for details on what changed in this version. Please note that this version is not yet finished.

Highlights:

  • Support for .NET Core 3.0 and 3.1 (including self contained and single file applications)
  • Rewritten injector code
  • You no longer have to have installed any Microsoft Visual C++ Redistributable(s)
  • Snooping disabled controls when holding CTRL + SHIFT works now
  • Snoop now filters uncommon properties by default
  • Snoop is now able to show MergedDictionaries from ResourceDictionary
  • Snoop now has two tracking modes.
    • Holding CTRL tries to skip template parts
    • Holding CTRL + SHIFT does not skip template parts
  • Drastically improved performance of AppChooser.Refresh() (thanks @mikel785)

Known issues:

  • Trying to snoop a trimmed single file application might not work as trimming might have removed things Snoop relies on

2.11.0

You can read the changelog for details on what changed in this version.

Highlights:

  • Support for multiple app domains
  • Auto elevation to enable spying of elevated processes without running Snoop as administrator
  • Persistent settings for various settings
  • Improved error dialog and issue reporting
  • Rewritten window finder

2.10.0

Was released on September 19th, 2018. In this version we finally got rid of support for snooping WPF 3.5 applications. This allowed us to move the Snoop projects forward to Visual Studio 2017 which should make it much easier to work with Snoop's source code.

2.9.0

Was released on July 27th, 2018. The big addition in this version was the inclusion of the triggers tab which was a useful feature of another WPF spying utility called WPF Inspector (written by Christan Moser). It was ported to Snoop by Bastian Schmidt.

Documentation on how to use Snoop

Unfortunately there isn't any exhaustive documentation on how to use Snoop and there are plenty of hidden features. If someone is willing to work on this, please let me know. On the bright side, it is a pretty easy utility to use and learn. I have made three videos which should get most people quick started.

Here are the links to the current Snoop Tips & Tricks:

Why can't I snoop WPF 3.5 applications?

Well, you can! You will just need to use Snoop 2.9.0 and earlier, in order to do so. As part of the process of moving to Visual Studio 2017, we have dropped support for WPF 3.5 applications.

How do i build Snoop?

Just open Snoop.sln with Visual Studio 2019 (16.3 or later) and build it. Please note that you need the Visual Studio 2019 C++ payload and in case you are using a later version you also need the VC++ 142 payload.

Contributors

Over time contributions have been added by several people, most notably:

You can’t perform that action at this time.