mirror of https://github.com/stascorp/rdpwrap
Merge branch 'master' of https://github.com/sjackson0109/rdpwrap
# Please enter a commit message to explain why this merge is necessary, # especially if it merges an updated upstream into a topic branch. # # Lines starting with '#' will be ignored, and an empty message aborts # the commit.pull/4062/head
commit
e57e252d5c
@ -0,0 +1,12 @@
|
|||||||
|
---
|
||||||
|
title: "[Announcement] "
|
||||||
|
---
|
||||||
|
|
||||||
|
<!-- Announcements are for maintainers only.
|
||||||
|
Use this for release notes, breaking changes, and project status updates. -->
|
||||||
|
|
||||||
|
## Summary
|
||||||
|
|
||||||
|
## Details
|
||||||
|
|
||||||
|
## Action required (if any)
|
||||||
@ -0,0 +1,6 @@
|
|||||||
|
---
|
||||||
|
title: ""
|
||||||
|
---
|
||||||
|
|
||||||
|
<!-- Use this category for general conversation that does not fit a bug report,
|
||||||
|
INI request, Q&A, or ideas discussion. -->
|
||||||
@ -0,0 +1,26 @@
|
|||||||
|
---
|
||||||
|
title: "[Idea] "
|
||||||
|
---
|
||||||
|
|
||||||
|
## Problem or motivation
|
||||||
|
|
||||||
|
<!-- What problem does this idea solve? Who is affected? -->
|
||||||
|
|
||||||
|
## Proposed solution
|
||||||
|
|
||||||
|
<!-- Describe the behaviour or change you would like to see -->
|
||||||
|
|
||||||
|
## Alternatives considered
|
||||||
|
|
||||||
|
<!-- Any other approaches you have thought about (optional) -->
|
||||||
|
|
||||||
|
## Component this relates to
|
||||||
|
|
||||||
|
<!-- Pick one or more:
|
||||||
|
- rdpwrap.dll (C++ wrapper library)
|
||||||
|
- RDPWInst / installer (Delphi)
|
||||||
|
- rdpWrapper GUI (sergiye C# app)
|
||||||
|
- rdpwrap.ini (offset database)
|
||||||
|
- CI/CD pipelines
|
||||||
|
- Documentation
|
||||||
|
-->
|
||||||
@ -0,0 +1,25 @@
|
|||||||
|
---
|
||||||
|
title: "[Q&A] "
|
||||||
|
---
|
||||||
|
|
||||||
|
## What are you trying to do?
|
||||||
|
|
||||||
|
<!-- Describe the goal, e.g. enable concurrent RDP sessions on Windows 11 24H2 -->
|
||||||
|
|
||||||
|
## What have you already tried?
|
||||||
|
|
||||||
|
<!-- Steps taken, links consulted, etc. -->
|
||||||
|
|
||||||
|
## System information
|
||||||
|
|
||||||
|
| Field | Value |
|
||||||
|
|---|---|
|
||||||
|
| Windows version (winver) | <!-- e.g. Windows 11 Version 24H2 (OS Build 26100.3915) --> |
|
||||||
|
| termsrv.dll version | <!-- (Get-Item C:\Windows\System32\termsrv.dll).VersionInfo.FileVersion --> |
|
||||||
|
| Architecture | <!-- x64 / x86 / ARM64 --> |
|
||||||
|
| RDPConf status | <!-- green / yellow / red / not installed --> |
|
||||||
|
| RDP Wrapper release | <!-- e.g. ini-2026.03.29.1400 --> |
|
||||||
|
|
||||||
|
## Error or unexpected behaviour
|
||||||
|
|
||||||
|
<!-- Paste any relevant console output, error messages, or screenshots -->
|
||||||
@ -0,0 +1,16 @@
|
|||||||
|
---
|
||||||
|
title: "[Show] "
|
||||||
|
---
|
||||||
|
|
||||||
|
## What are you sharing?
|
||||||
|
|
||||||
|
<!-- A working config, a custom INI section, an automation script, a deployment
|
||||||
|
setup, or anything else the community might find useful -->
|
||||||
|
|
||||||
|
## Details
|
||||||
|
|
||||||
|
<!-- Describe it, paste relevant code/config, add screenshots if helpful -->
|
||||||
|
|
||||||
|
## System or environment
|
||||||
|
|
||||||
|
<!-- Windows version, architecture, any relevant context -->
|
||||||
@ -0,0 +1,88 @@
|
|||||||
|
name: Bug Report
|
||||||
|
description: RDP Wrapper is not working correctly on your machine.
|
||||||
|
labels: [bug]
|
||||||
|
body:
|
||||||
|
- type: markdown
|
||||||
|
attributes:
|
||||||
|
value: |
|
||||||
|
Before submitting, please confirm:
|
||||||
|
- You are running the latest release from https://github.com/sjackson0109/rdpwrap/releases/latest
|
||||||
|
- Your termsrv.dll version is listed in `rdpwrap.ini` (check RDPConf for the status colour)
|
||||||
|
- You have excluded `C:\Program Files\RDP Wrapper\` from your antivirus
|
||||||
|
|
||||||
|
- type: dropdown
|
||||||
|
id: status
|
||||||
|
attributes:
|
||||||
|
label: RDPConf status
|
||||||
|
description: What colour/status does RDPConf show?
|
||||||
|
options:
|
||||||
|
- Fully supported (green) — but RDP still fails
|
||||||
|
- Partially supported (yellow)
|
||||||
|
- Not supported (red)
|
||||||
|
- Not installed
|
||||||
|
- Wrapper DLL not found
|
||||||
|
validations:
|
||||||
|
required: true
|
||||||
|
|
||||||
|
- type: input
|
||||||
|
id: windows_version
|
||||||
|
attributes:
|
||||||
|
label: Windows version
|
||||||
|
description: "Run: winver — paste the full string e.g. Windows 11 Version 24H2 (OS Build 26100.xxxx)"
|
||||||
|
placeholder: "Windows 11 Version 24H2 (OS Build 26100.3915)"
|
||||||
|
validations:
|
||||||
|
required: true
|
||||||
|
|
||||||
|
- type: input
|
||||||
|
id: termsrv_version
|
||||||
|
attributes:
|
||||||
|
label: termsrv.dll version
|
||||||
|
description: "Run: (Get-Item C:\\Windows\\System32\\termsrv.dll).VersionInfo.FileVersion"
|
||||||
|
placeholder: "10.0.26100.3915"
|
||||||
|
validations:
|
||||||
|
required: true
|
||||||
|
|
||||||
|
- type: input
|
||||||
|
id: rdpwrap_version
|
||||||
|
attributes:
|
||||||
|
label: RDP Wrapper version
|
||||||
|
description: Version shown in RDPConf or the release tag you downloaded.
|
||||||
|
placeholder: "ini-2026.03.29.1400"
|
||||||
|
validations:
|
||||||
|
required: true
|
||||||
|
|
||||||
|
- type: dropdown
|
||||||
|
id: architecture
|
||||||
|
attributes:
|
||||||
|
label: System architecture
|
||||||
|
options:
|
||||||
|
- x64 (64-bit)
|
||||||
|
- x86 (32-bit)
|
||||||
|
validations:
|
||||||
|
required: true
|
||||||
|
|
||||||
|
- type: textarea
|
||||||
|
id: description
|
||||||
|
attributes:
|
||||||
|
label: Describe the problem
|
||||||
|
description: What happens? What did you expect to happen?
|
||||||
|
validations:
|
||||||
|
required: true
|
||||||
|
|
||||||
|
- type: textarea
|
||||||
|
id: steps
|
||||||
|
attributes:
|
||||||
|
label: Steps to reproduce
|
||||||
|
placeholder: |
|
||||||
|
1. Run install.bat as administrator
|
||||||
|
2. Open RDPConf
|
||||||
|
3. Status shows ...
|
||||||
|
validations:
|
||||||
|
required: true
|
||||||
|
|
||||||
|
- type: textarea
|
||||||
|
id: logs
|
||||||
|
attributes:
|
||||||
|
label: Relevant log output
|
||||||
|
description: Paste any output from the install/update bat scripts or Event Viewer (optional).
|
||||||
|
render: text
|
||||||
@ -0,0 +1,20 @@
|
|||||||
|
blank_issues_enabled: false
|
||||||
|
contact_links:
|
||||||
|
- name: Q&A — ask a setup or usage question
|
||||||
|
url: https://github.com/sjackson0109/rdpwrap/discussions/new?category=q-a
|
||||||
|
about: Not sure why it is not working? Ask in Discussions rather than opening an issue.
|
||||||
|
- name: Ideas — suggest an improvement
|
||||||
|
url: https://github.com/sjackson0109/rdpwrap/discussions/new?category=ideas
|
||||||
|
about: Have an idea that is not ready to be a formal feature request? Start a discussion.
|
||||||
|
- name: General discussion
|
||||||
|
url: https://github.com/sjackson0109/rdpwrap/discussions/new?category=general
|
||||||
|
about: Anything that does not fit the other categories.
|
||||||
|
- name: Existing INI offset database
|
||||||
|
url: https://github.com/sjackson0109/rdpwrap/releases/latest
|
||||||
|
about: Check whether your Windows build is already covered before opening an INI request.
|
||||||
|
- name: Original project (stascorp, archived)
|
||||||
|
url: https://github.com/stascorp/rdpwrap
|
||||||
|
about: Historical reference only — no longer maintained.
|
||||||
|
- name: sergiye/rdpWrapper (C# rewrite)
|
||||||
|
url: https://github.com/sergiye/rdpWrapper
|
||||||
|
about: Alternative C# implementation with auto-offset generation.
|
||||||
@ -0,0 +1,41 @@
|
|||||||
|
name: Feature Request
|
||||||
|
description: Suggest an improvement or new capability.
|
||||||
|
labels: [enhancement]
|
||||||
|
body:
|
||||||
|
- type: textarea
|
||||||
|
id: problem
|
||||||
|
attributes:
|
||||||
|
label: Problem or motivation
|
||||||
|
description: What problem does this feature solve? Who is affected?
|
||||||
|
placeholder: "At the moment there is no way to ..."
|
||||||
|
validations:
|
||||||
|
required: true
|
||||||
|
|
||||||
|
- type: textarea
|
||||||
|
id: solution
|
||||||
|
attributes:
|
||||||
|
label: Proposed solution
|
||||||
|
description: Describe the behaviour or change you would like to see.
|
||||||
|
validations:
|
||||||
|
required: true
|
||||||
|
|
||||||
|
- type: textarea
|
||||||
|
id: alternatives
|
||||||
|
attributes:
|
||||||
|
label: Alternatives considered
|
||||||
|
description: Any other approaches you have thought about (optional).
|
||||||
|
|
||||||
|
- type: dropdown
|
||||||
|
id: component
|
||||||
|
attributes:
|
||||||
|
label: Component this relates to
|
||||||
|
options:
|
||||||
|
- rdpwrap.dll (C++ wrapper library)
|
||||||
|
- RDPWInst / installer (Delphi)
|
||||||
|
- rdpWrapper GUI (sergiye C# app)
|
||||||
|
- rdpwrap.ini (offset database)
|
||||||
|
- CI/CD pipelines
|
||||||
|
- Documentation
|
||||||
|
- Other
|
||||||
|
validations:
|
||||||
|
required: true
|
||||||
@ -0,0 +1,71 @@
|
|||||||
|
name: INI Update Request — New Windows Build
|
||||||
|
description: Your termsrv.dll version is not in the INI database and auto-generation failed.
|
||||||
|
labels: [ini-update]
|
||||||
|
body:
|
||||||
|
- type: markdown
|
||||||
|
attributes:
|
||||||
|
value: |
|
||||||
|
Use this template when RDPConf shows **Not supported (red)** and the automatic
|
||||||
|
offset-generation step in the installer could not resolve your build.
|
||||||
|
|
||||||
|
If you have the technical skills, please consider following
|
||||||
|
[HOW-TO-ADD-NEW-WINDOWS-BUILDS.md](../docs/HOW-TO-ADD-NEW-WINDOWS-BUILDS.md)
|
||||||
|
and submitting a pull request instead.
|
||||||
|
|
||||||
|
- type: input
|
||||||
|
id: termsrv_version
|
||||||
|
attributes:
|
||||||
|
label: termsrv.dll version
|
||||||
|
description: "Run: (Get-Item C:\\Windows\\System32\\termsrv.dll).VersionInfo.FileVersion"
|
||||||
|
placeholder: "10.0.26100.3915"
|
||||||
|
validations:
|
||||||
|
required: true
|
||||||
|
|
||||||
|
- type: input
|
||||||
|
id: windows_version
|
||||||
|
attributes:
|
||||||
|
label: Windows version string
|
||||||
|
description: "Run: winver — paste the full string"
|
||||||
|
placeholder: "Windows 11 Version 24H2 (OS Build 26100.3915)"
|
||||||
|
validations:
|
||||||
|
required: true
|
||||||
|
|
||||||
|
- type: dropdown
|
||||||
|
id: architecture
|
||||||
|
attributes:
|
||||||
|
label: System architecture
|
||||||
|
options:
|
||||||
|
- x64 (64-bit)
|
||||||
|
- x86 (32-bit)
|
||||||
|
- ARM64
|
||||||
|
validations:
|
||||||
|
required: true
|
||||||
|
|
||||||
|
- type: dropdown
|
||||||
|
id: auto_gen
|
||||||
|
attributes:
|
||||||
|
label: Did the auto-generation step run?
|
||||||
|
description: The installer prints a message about TryAutoGenerateOffsets during install or update.
|
||||||
|
options:
|
||||||
|
- "Yes — it ran but failed with an error"
|
||||||
|
- "Yes — it ran and reported success, but wrapper still shows Not supported"
|
||||||
|
- "No — it was skipped or I installed offline"
|
||||||
|
- Not sure
|
||||||
|
validations:
|
||||||
|
required: true
|
||||||
|
|
||||||
|
- type: textarea
|
||||||
|
id: auto_gen_output
|
||||||
|
attributes:
|
||||||
|
label: Auto-generation output (if any)
|
||||||
|
description: Paste the console output from the installer relating to offset generation.
|
||||||
|
render: text
|
||||||
|
|
||||||
|
- type: textarea
|
||||||
|
id: ini_section
|
||||||
|
attributes:
|
||||||
|
label: Generated INI section (if available)
|
||||||
|
description: |
|
||||||
|
If you ran RDPWrapOffsetFinder manually, paste the output here.
|
||||||
|
Run: .\RDPWrapOffsetFinder.exe C:\Windows\System32\termsrv.dll
|
||||||
|
render: ini
|
||||||
@ -0,0 +1,120 @@
|
|||||||
|
name: Update RDPWrapOffsetFinder tools
|
||||||
|
|
||||||
|
# Run manually to pull a new version of llccd/RDPWrapOffsetFinder into tools/.
|
||||||
|
# The workflow commits the updated binaries and opens a pull request.
|
||||||
|
on:
|
||||||
|
workflow_dispatch:
|
||||||
|
inputs:
|
||||||
|
tag:
|
||||||
|
description: "llccd release tag to fetch (leave blank for latest)"
|
||||||
|
required: false
|
||||||
|
default: ""
|
||||||
|
|
||||||
|
env:
|
||||||
|
FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: true
|
||||||
|
|
||||||
|
permissions:
|
||||||
|
contents: write
|
||||||
|
pull-requests: write
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
update:
|
||||||
|
runs-on: windows-2022
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: Checkout repository
|
||||||
|
uses: actions/checkout@v6
|
||||||
|
|
||||||
|
- name: Download and extract RDPWrapOffsetFinder
|
||||||
|
id: fetch
|
||||||
|
shell: pwsh
|
||||||
|
run: |
|
||||||
|
$tag = "${{ github.event.inputs.tag }}"
|
||||||
|
if ($tag -eq "") {
|
||||||
|
$apiUrl = "https://api.github.com/repos/llccd/RDPWrapOffsetFinder/releases/latest"
|
||||||
|
} else {
|
||||||
|
$apiUrl = "https://api.github.com/repos/llccd/RDPWrapOffsetFinder/releases/tags/$tag"
|
||||||
|
}
|
||||||
|
|
||||||
|
$release = Invoke-RestMethod -Uri $apiUrl -Headers @{ "User-Agent" = "rdpwrap-ci" }
|
||||||
|
$version = $release.tag_name
|
||||||
|
Write-Host "Fetching version $version"
|
||||||
|
|
||||||
|
$asset = $release.assets | Where-Object { $_.name -like "*.zip" } | Select-Object -First 1
|
||||||
|
if (-not $asset) { throw "No zip asset found in release $version" }
|
||||||
|
|
||||||
|
Invoke-WebRequest -Uri $asset.browser_download_url -OutFile finder.zip -UseBasicParsing
|
||||||
|
Expand-Archive -Path finder.zip -DestinationPath .\finder -Force
|
||||||
|
|
||||||
|
Write-Host "Zip contents:"
|
||||||
|
Get-ChildItem -Recurse .\finder | Select-Object FullName, Length
|
||||||
|
|
||||||
|
# The llccd zip uses "64bit/" and "32bit/" subfolder names.
|
||||||
|
# We pick the symbol-enabled exe (not the _nosymbol variant) from each arch folder.
|
||||||
|
function Get-Bin($filter, $archHint) {
|
||||||
|
$hits = Get-ChildItem -Recurse .\finder -Filter $filter |
|
||||||
|
Where-Object { $_.FullName -match $archHint } |
|
||||||
|
Where-Object { $_.Name -notmatch "nosymbol" }
|
||||||
|
return ($hits | Select-Object -First 1)
|
||||||
|
}
|
||||||
|
|
||||||
|
$x64exe = Get-Bin "RDPWrapOffsetFinder*.exe" "64bit"
|
||||||
|
$x64dll = Get-Bin "Zydis*.dll" "64bit"
|
||||||
|
$x86exe = Get-Bin "RDPWrapOffsetFinder*.exe" "32bit"
|
||||||
|
$x86dll = Get-Bin "Zydis*.dll" "32bit"
|
||||||
|
|
||||||
|
# Fall back to x64 if the release only ships one arch
|
||||||
|
if (-not $x86exe) { $x86exe = $x64exe }
|
||||||
|
if (-not $x86dll) { $x86dll = $x64dll }
|
||||||
|
if (-not $x64exe) { throw "Could not locate x64 exe" }
|
||||||
|
if (-not $x64dll) { throw "Could not locate x64 Zydis.dll" }
|
||||||
|
|
||||||
|
New-Item -ItemType Directory -Path tools\RDPWrapOffsetFinder\x64 -Force | Out-Null
|
||||||
|
New-Item -ItemType Directory -Path tools\RDPWrapOffsetFinder\x86 -Force | Out-Null
|
||||||
|
|
||||||
|
Copy-Item $x64exe.FullName tools\RDPWrapOffsetFinder\x64\RDPWrapOffsetFinder.exe -Force
|
||||||
|
Copy-Item $x64dll.FullName tools\RDPWrapOffsetFinder\x64\Zydis.dll -Force
|
||||||
|
Copy-Item $x86exe.FullName tools\RDPWrapOffsetFinder\x86\RDPWrapOffsetFinder.exe -Force
|
||||||
|
Copy-Item $x86dll.FullName tools\RDPWrapOffsetFinder\x86\Zydis.dll -Force
|
||||||
|
Set-Content -Path tools\RDPWrapOffsetFinder\VERSION -Value $version
|
||||||
|
|
||||||
|
Write-Host "Staged tools:"
|
||||||
|
Get-ChildItem -Recurse tools\RDPWrapOffsetFinder | Select-Object FullName, Length
|
||||||
|
|
||||||
|
echo "version=$version" >> $env:GITHUB_OUTPUT
|
||||||
|
|
||||||
|
- name: Commit and push to a new branch
|
||||||
|
id: push
|
||||||
|
shell: pwsh
|
||||||
|
run: |
|
||||||
|
$version = "${{ steps.fetch.outputs.version }}"
|
||||||
|
$branch = "chore/update-finder-tools-$version"
|
||||||
|
|
||||||
|
git config user.name "github-actions[bot]"
|
||||||
|
git config user.email "github-actions[bot]@users.noreply.github.com"
|
||||||
|
git checkout -b $branch
|
||||||
|
git add tools/RDPWrapOffsetFinder
|
||||||
|
if ((git diff --cached --name-only) -eq "") {
|
||||||
|
Write-Host "No changes - tools already up to date"
|
||||||
|
exit 0
|
||||||
|
}
|
||||||
|
git commit -m "chore: update RDPWrapOffsetFinder tools to $version"
|
||||||
|
git push origin $branch
|
||||||
|
echo "branch=$branch" >> $env:GITHUB_OUTPUT
|
||||||
|
|
||||||
|
- name: Create pull request
|
||||||
|
if: steps.push.outputs.branch != ''
|
||||||
|
shell: pwsh
|
||||||
|
run: |
|
||||||
|
$version = "${{ steps.fetch.outputs.version }}"
|
||||||
|
$branch = "${{ steps.push.outputs.branch }}"
|
||||||
|
gh pr create `
|
||||||
|
--title "chore: update RDPWrapOffsetFinder tools to $version" `
|
||||||
|
--body "Automated update of the committed RDPWrapOffsetFinder binaries in ``tools/RDPWrapOffsetFinder/`` to upstream release $version.
|
||||||
|
|
||||||
|
Triggered manually via the **Update RDPWrapOffsetFinder tools** workflow.
|
||||||
|
Merge to include the updated binaries in the next INI release." `
|
||||||
|
--base master `
|
||||||
|
--head $branch
|
||||||
|
env:
|
||||||
|
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||||
@ -0,0 +1,35 @@
|
|||||||
|
# RDPWrapOffsetFinder
|
||||||
|
|
||||||
|
Pre-built binaries of [llccd/RDPWrapOffsetFinder](https://github.com/llccd/RDPWrapOffsetFinder),
|
||||||
|
committed here so that the CI pipeline and releases are self-contained and
|
||||||
|
reproducible without depending on an external release being available at build time.
|
||||||
|
|
||||||
|
## Contents
|
||||||
|
|
||||||
|
```
|
||||||
|
x64/
|
||||||
|
RDPWrapOffsetFinder.exe # x86-64 build
|
||||||
|
Zydis.dll # required runtime (x64)
|
||||||
|
x86/
|
||||||
|
RDPWrapOffsetFinder.exe # x86 32-bit build
|
||||||
|
Zydis.dll # required runtime (x86)
|
||||||
|
VERSION # version tag of the upstream release
|
||||||
|
```
|
||||||
|
|
||||||
|
## Usage
|
||||||
|
|
||||||
|
Extract the appropriate arch folder and run:
|
||||||
|
|
||||||
|
```
|
||||||
|
.\RDPWrapOffsetFinder.exe C:\Windows\System32\termsrv.dll
|
||||||
|
```
|
||||||
|
|
||||||
|
The output `[10.0.xxxxx.xxxxx]` section can be appended to `res/rdpwrap.ini`
|
||||||
|
and submitted as a pull request.
|
||||||
|
|
||||||
|
## Updating
|
||||||
|
|
||||||
|
To update the binaries when llccd releases a new version, trigger the
|
||||||
|
`Update RDPWrapOffsetFinder tools` workflow from the Actions tab
|
||||||
|
(`.github/workflows/update-finder-tools.yml`).
|
||||||
|
It will download the latest release, update this folder, and open a pull request.
|
||||||
@ -0,0 +1 @@
|
|||||||
|
v0.9
|
||||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Loading…
Reference in new issue