Comments (8)
I found a work around, it appears the ref-napi.reinterpretUntilZeros function is broken in electron 8.
I changed the following:
const windowTextBufferClean = ref.reinterpretUntilZeros(windowTextBuffer, wchar.size);
to
const dirtyTitle = wchar.toString(windowTextBuffer);
const windowTitle = dirtyTitle.replace(/\0/g, '');
const processFileNameBufferClean = ref.reinterpretUntilZeros(processFileNameBuffer, wchar.size);
to
const pathDirty = wchar.toString(processFileNameBuffer);
const processPath = pathDirty.replace(/\0/g, '');
from active-win.
@sindresorhus Hi, Now that Electron v7 is out of support (V10 has been released), please can we have a fix for this bug so that projects with dependencies on this library can at least be upgraded to Electron v8? Pull requests have been prepared, a bug has been raised and acknowledged on Electron for v8. There is little possibility of this being resolved in Electron in the short term and less possibility that the issues preventing us from upgrading to Electron v9 and Electron v10 will be resolved in the short term either. Is there anything else preventing this issue from being resolved or is there an alternative path we should follow?
from active-win.
If anyone wants to see this fixed here, please open an issue on Electron first. I'm not going to merge a fix and have to maintain that if people cannot even bother to open an issue to ensure it will eventually be fixed in Electron.
Previous PR attempts:
I don't know if this is enough and if anyone can add to it then please do but with my limited understanding I have tried to open an issue on Electron electron/electron#24981
from active-win.
For anyone that has this problem and is not sure how to best patch a library until a fix is available. I did the following:
- Install the patch_package module
- Apply the changes described above by @SilentRush
- Be careful, you need to replace also the two lines with the
reinterpretUntilZeros
calls, but also the line below with the assignment
- Be careful, you need to replace also the two lines with the
- Run
npx patch-package active-win
- Add
"postinstall": "npx patch-package"
to yourpackage.json
This works well also with deployment pipelines, e.g. GitHub Actions and can be removed easily once there is a fix either from the Electron project or the active-win project.
Btw, thanks for this amazing library @sindresorhus !
from active-win.
Within windows.js the following line is causing the crash.
const windowTextBufferClean = ref.reinterpretUntilZeros(windowTextBuffer, wchar.size);
from active-win.
I found a work around, it appears the ref-napi.reinterpretUntilZeros function is broken in electron 8.
I changed the following:
const windowTextBufferClean = ref.reinterpretUntilZeros(windowTextBuffer, wchar.size);
to
const dirtyTitle = wchar.toString(windowTextBuffer);
const windowTitle = dirtyTitle.replace(/\0/g, '');
const processFileNameBufferClean = ref.reinterpretUntilZeros(processFileNameBuffer, wchar.size);
to
const pathDirty = wchar.toString(processFileNameBuffer);
const processPath = pathDirty.replace(/\0/g, '');
same problem here, your approach save me, thanks!
from active-win.
If anyone wants to see this fixed here, please open an issue on Electron first. I'm not going to merge a fix and have to maintain that if people cannot even bother to open an issue to ensure it will eventually be fixed in Electron.
Previous PR attempts:
from active-win.
The patch I described in my previous comment is no longer necessary with Electron 11 and active-win 7.1. With this setup, everything works out of the box. I think this issue can possibly be closed.
from active-win.
Related Issues (20)
- How to winApi using get active window url in C#? HOT 2
- Cannot find module ffi-napi on Windows 11 HOT 2
- No native build was found for platform=win32 arch=x64 runtime=node abi=64 uv=1 libc=glibc node=10.24.1
- How to track google slides url change in presenter mode HOT 1
- Build error: "no loaders are configured to process this file" (iconv.js)
- active-win requires the screen recording permission error HOT 2
- Question about Firefox HOT 1
- On windows URL property is not showing HOT 1
- `getOpenWindows` does not return all windows HOT 6
- UnhandledPromiseRejectionWarning: SyntaxError: Unexpected number in JSON at position 10 HOT 8
- `getOpenWindows` does not return fullscreen windows HOT 2
- Error Running Simple Example on Electron Forge HOT 4
- activeWindow.getOpenWindows() z-index HOT 1
- Incorrect Y bounds with second monitor case HOT 2
- active-win not recording .flatpak apps in ubuntu
- Build and release process question HOT 3
- I am getting this error after I Forked repo and installed in my electron app HOT 1
- active-win 8.1.0 reports empty title strings on Adobe products on macOS despite correct permissions HOT 2
- UnhandledPromiseRejectionWarning: SyntaxError: Bad escaped character in JSON at position 12
- getOpenWindows() -> parseMac() -> JSON.parse issues
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from active-win.