{"id":19373888,"url":"https://github.com/crendking/ab-menu","last_synced_at":"2025-07-16T11:05:14.611Z","repository":{"id":147097836,"uuid":"358601996","full_name":"CrendKing/ab-menu","owner":"CrendKing","description":"A Windows context menu shell extension that proxies general commands with two arguments to any application.","archived":false,"fork":false,"pushed_at":"2023-08-21T04:22:34.000Z","size":140,"stargazers_count":7,"open_issues_count":0,"forks_count":1,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-04-02T18:03:52.932Z","etag":null,"topics":["cpp","shell-extension","windows"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/CrendKing.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-04-16T13:05:40.000Z","updated_at":"2024-07-07T18:42:44.000Z","dependencies_parsed_at":null,"dependency_job_id":"7e575020-3ea0-4c2c-b746-30cca43822e2","html_url":"https://github.com/CrendKing/ab-menu","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CrendKing%2Fab-menu","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CrendKing%2Fab-menu/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CrendKing%2Fab-menu/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CrendKing%2Fab-menu/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/CrendKing","download_url":"https://codeload.github.com/CrendKing/ab-menu/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250490252,"owners_count":21439105,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cpp","shell-extension","windows"],"created_at":"2024-11-10T08:32:42.869Z","updated_at":"2025-04-23T18:31:26.987Z","avatar_url":"https://github.com/CrendKing.png","language":"C++","readme":"# AB Menu\n\nA Windows context menu shell extension that proxies user configured commands accepting exactly two launch arguments (thus \"AB\" in the name) to any application.\n\nAmong the examples of such applications are comparison tools, file copy tools and text editors for side-by-side editing.\n\nIf the application does not come with its own shell extension, instead of having to manually type in terminal or create shortcut of it, user of this shell extension can create template of launch command with the two argument placeholders, select the item(s) in Windows Explorer and launch.\n\nThere are multiple ways to select items:\n\n* When exactly two items (both files or both folders but not mixed) are selected, the shell extension will display the value of each argument placeholder and launch app.\n* When only one item is selected for the first time, the shell extension remembers its path.\n* When a different object is selected afterwards, the shell extension either launch app with the two arguments, or replaces the previously remembered first item, depending on user choice.\n\nAgain, the two items must be both files or both folders but not mixed.\n\n## Install\n\n* Unpack the archive.\n* Run install.bat to register the shell extension.\n* config.reg has some examples of user configurable commands. You can edit it and import into registry. The first selected item replaces the `%FIRST%` placeholder, while the second one replaces `%SECOND%`. `\\` in the path needs to be escaped as `\\\\`.\n\n## Uninstall\n\n* Run uninstall.bat to de-register the shell extension.\n* Open Registry Editor and remove `HKEY_CURRENT_USER\\Software\\AB Menu`.\n\n## Build\n\nA build script `build.ps1` is included to automate the process. It obtains dependencies and starts compilation. Before running `build.ps1`, make sure you have the latest Visual Studio installed. The script will automatically assume the Visual Studio developer environment and check out dependencies. To run the script, pass the target configuration and platform as arguments, e.g. `build.ps1 Debug x64` or `build.ps1 Release x86`.\n\n## Screenshots\n\nWhen two items are selected:\n\n![Two selected](screenshots/two_selected.webp)\n\nWhen the first item is selected:\n\n![Select First](screenshots/select_first.webp)\n\nAfter the first item is confirmed, when the second item is selected:\n\n![Select Second](screenshots/select_second.webp)\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcrendking%2Fab-menu","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcrendking%2Fab-menu","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcrendking%2Fab-menu/lists"}