Comments (12)
i need this too, can anyone help?
from active-win.
Same here
from active-win.
I would love to have this functionality too. Can someone point us to the right direction?
from active-win.
Hello
You can use UI Automation in Windows
Example my code in c++ for chrome
// MathLibrary.cpp : Defines the exported functions for the DLL.
#include "pch.h" // use stdafx.h in Visual Studio 2017 and earlier
#include <AtlBase.h>
#include <UIAutomation.h>
#include <comutil.h>
#include "Chrome.h"
#pragma comment(lib, "comsuppw.lib")
BSTR chrome_geturl(HWND hwnd) {
CoInitialize(NULL);
CComBSTR empty(L"");
BSTR r = empty;
while (true)
{
if (!hwnd)
break;
if (!IsWindowVisible(hwnd))
continue;
CComQIPtr<IUIAutomation> uia;
if (FAILED(uia.CoCreateInstance(CLSID_CUIAutomation)) || !uia)
break;
CComPtr<IUIAutomationElement> root;
if (FAILED(uia->ElementFromHandle(hwnd, &root)) || !root)
break;
CComPtr<IUIAutomationCondition> condition;
//URL's id is 0xC354, or use UIA_EditControlTypeId for 1st edit box
uia->CreatePropertyCondition(UIA_ControlTypePropertyId,
CComVariant(0xC354), &condition);
//or use edit control's name instead
//uia->CreatePropertyCondition(UIA_NamePropertyId,
// CComVariant(L"Address and search bar"), &condition);
CComPtr<IUIAutomationElement> edit;
if (FAILED(root->FindFirst(TreeScope_Descendants, condition, &edit))
|| !edit)
break; //maybe we don't have the right tab, continue...
CComVariant url;
if (FAILED(edit->GetCurrentPropertyValue(UIA_ValueValuePropertyId, &url)))
break;
r = url.bstrVal;
break;
}
CoUninitialize();
return (_bstr_t)r;
};
BSTR getChromeUrl(HWND hwnd)
{
BSTR r = chrome_geturl(hwnd);
return r;
}
from active-win.
from active-win.
it works for me on a mac. would need it to be working on windows/linux as well too. Any idea whats the issue?
from active-win.
from active-win.
is it working on windows and linux ???
from active-win.
There is a tool written in Go that can parse the active browser tab's URL from Chrome's session files: https://github.com/lemnos/chrome-session-dump
Presumably, this tool could be bundled within active-win, or its parsing code ported to NodeJS. This should work on both Windows and Linux. It might even work with all Chromium-based browsers.
I tested it on Linux already. Unfortunately, I don't have the time to do a PR currently. So, if anyone with some Go experience wants to take a look ;)
from active-win.
Does anyone have a solution for URLs on windows?
from active-win.
One option is to use browser extensions to append the URL to the window title, then parse it after retrieving it from active win.
from active-win.
same issue with windows 11 url is missing
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.