ColorCop
A Windows-based color picker utility built with Microsoft Foundation Classes (MFC).

About this repository
This GitHub repository contains the source code for Color Cop.
It is intended for developers and contributors who want to build, debug, or improve the application.
If you just want to download and use Color Cop, visit the official website: colorcop.net, which provides the latest stable installer and user-focused information.
This repository is focused on development, issue tracking, and contribution workflows.
Quick start for developers
-
Install prerequisites
- Windows 10/11
- Visual Studio 2022 with:
- MSVC v143 compiler toolset
- Windows 10/11 SDK
- MFC for latest v143 build tools (x86 & x64)
-
Clone the repository
git clone https://github.com/ColorCop/ColorCop.git
cd ColorCop
Building in Visual Studio
- Open
ColorCop.sln in Visual Studio 2022.
- Select the desired configuration from the toolbar:
- Debug | Win32
- Release | Win32
- Build the solution via Build → Build Solution.
A placeholder version.h is included in the repository so the project builds cleanly in the IDE.
When using the command‑line build.cmd script, this file is automatically regenerated with version information from Git tags.
Build Configurations
- Debug — Development build with debugging symbols and no optimizations
- Release — Optimized production build suitable for distribution
Command-line build and versioning
ColorCop includes a build.cmd script for reproducible Release builds.
-
Version source: The script reads the latest Git tag using
git describe --tags --abbrev=0. Tags are expected to follow semantic
versioning, typically vMAJOR.MINOR.PATCH (for example, v5.5.2).
-
Fallback behavior: If no tags are found (for example, in forks or
shallow clones), the script falls back to 0.0.0.
-
Generated files:
ColorCop\version.h — contains VER_FILEVERSION, VER_PRODUCTVERSION,
and related string macros derived from the Git tag.
ColorCop\installer\version.iss — contains AppVersionStr for the
installer, also derived from the Git tag.
-
Build invocation: The script locates a C++‑capable MSBuild.exe via
vswhere and runs a Rebuild of the Release | Win32 configuration.
Release Workflow
ColorCop uses Git tags (e.g., v5.5.2) to drive the release pipeline.
Pushing a new tag triggers GitHub Actions to:
- Build the application
- Update version metadata
- Publish a new GitHub Release with compiled binaries
> GitHub does not support a “post‑release” event.
> The following steps must be run after the GitHub Release has been created.
Post‑release actions
After a new release is published on GitHub, two manual follow‑up workflows must be run:
1. Publish to Chocolatey
- Go to Actions → Publish Chocolatey Package
- Click Run workflow
- Enter the release tag (e.g.,
v5.5.2)
- Run the workflow to publish the updated Chocolatey package
2. Publish to WinGet
- Go to Actions → Publish to WinGet
- Click Run workflow
- Enter the same release tag (e.g.,
v5.5.2)
- Run the workflow to submit the updated WinGet manifest
Listing existing tags
git tag --list
Development
Project Structure
ColorCop.cpp/h - Main application class
ColorCopDlg.cpp/h - Main dialog implementation
SystemTray.cpp/h - System tray functionality
Res/ - Application resources and icons
Code Linting
This project uses cpplint to enforce C++ style guidelines.
Install:
pip install cpplint
Run linting:
mise lint
Contributing
- Fork the repository
- Create a feature branch
- Make your changes
- Test thoroughly on Windows 10/11
- Submit a pull request
License
ColorCop is licensed under the MIT License.
See LICENSE.txt for the full license text.
Troubleshooting
Build Errors:
- Ensure MFC components are installed in Visual Studio 2022
- Verify Windows SDK is installed
- Check that platform toolset is set to v143
Runtime Issues:
- Install Visual C++ Redistributable for Visual Studio 2022