penzi 最近的时间轴更新
penzi

penzi

V2EX 第 491066 号会员,加入于 2020-05-23 16:01:46 +08:00
今日活跃度排名 1972
AI 编程:软件行业的产能过剩
  •  1   
    程序员  •  penzi  •  87 天前  •  最后回复来自 jeesk
    10
    我做了一个插件,让你远离窃取 Chrome 明文密码的恶意软件
    分享创造  •  penzi  •  2024-05-28 16:21:42 PM  •  最后回复来自 kyuuseiryuu
    37
    华为 MateBook X Pro 2024 上手吐槽一下这个触摸板
    Windows  •  penzi  •  2024-07-26 11:19:28 AM  •  最后回复来自 zhiqiang404
    68
    这是目前最好的视频下载插件,并且支持 Safari, Edge, Chrome
    分享创造  •  penzi  •  2023-10-18 10:49:23 AM  •  最后回复来自 jiyan5
    12
    能否用 RFID 标签来进行物品收纳?
    奇思妙想  •  penzi  •  2023-07-27 16:13:44 PM  •  最后回复来自 rm0gang0rf
    40
    我新做的情侣聊天功能, 上线两天消息数突破一万条
  •  1   
    分享创造  •  penzi  •  2023-06-21 16:33:50 PM  •  最后回复来自 InkAndBanner
    22
    🔴 VideoTogether 新功能: 无需安装插件, 就能一起看视频✅
  •  1   
    分享创造  •  penzi  •  2023-10-05 20:22:56 PM  •  最后回复来自 Satansickle
    2
    Yoga Pro 14s 至尊版到货了,分享一下体验
    Windows  •  penzi  •  2023-04-26 23:00:29 PM  •  最后回复来自 INCerry
    8
    我把百度输入法的怀旧灰键皮肤移植到了 iOS 平台
    程序员  •  penzi  •  2023-04-17 17:12:20 PM  •  最后回复来自 iamchi
    1
    penzi 最近回复了
    关于 env 那一部分评论,我觉得你对 node ,对操作系统,对命令行等等都不是太懂的样子
    3 天前
    回复了 BeijingBaby 创建的主题 程序员 Monorepo 就是个大坑
    没有几十个人的团队维护,用什么 monorepo 。
    去医院看一下心理医生
    你这个商业模式合理吗,美团能给线下店带来线上流量。

    你能烧钱攒几十万个软件爱好者用户,就爱从你这买软件吗
    9 天前
    回复了 ZenKun 创建的主题 分享创造 做了一个小玩具,在线播放下载 M3U8
    9 天前
    回复了 ZenKun 创建的主题 分享创造 做了一个小玩具,在线播放下载 M3U8
    用 wasm ffmpeg 转 mp4 ,文件一大直接爆内存,要改 ffmpeg 用浏览器的 file system api
    10 天前
    回复了 tenali 创建的主题 问与答 1000 V2EX 征名
    建议直接放弃,别开发


    让 AI 写的,好像一次过

    ```
    #include <iostream>
    #include <windows.h>
    #include <comdef.h>
    #include <UIAutomation.h>
    #include <atlbase.h>
    #include <thread>
    #include <chrono>

    #pragma comment(lib, "ole32.lib")
    #pragma comment(lib, "oleaut32.lib")

    HWND consoleWindow = nullptr;
    std::wstring lastSelectedText;

    HRESULT GetTextFromActiveWindow(IUIAutomation* automation, std::wstring& selectedText) {
    HWND foregroundWindow = GetForegroundWindow();
    if (!foregroundWindow || foregroundWindow == consoleWindow) {
    return E_FAIL;
    }

    CComPtr<IUIAutomationElement> windowElement;
    HRESULT hr = automation->ElementFromHandle(foregroundWindow, &windowElement);
    if (FAILED(hr) || !windowElement) {
    return hr;
    }

    CComPtr<IUIAutomationTextPattern> textPattern;
    hr = windowElement->GetCurrentPatternAs(UIA_TextPatternId, IID_PPV_ARGS(&textPattern));
    if (FAILED(hr) || !textPattern) {
    CComPtr<IUIAutomationElement> focusedElement;
    hr = automation->GetFocusedElement(&focusedElement);
    if (FAILED(hr) || !focusedElement) {
    return hr;
    }
    hr = focusedElement->GetCurrentPatternAs(UIA_TextPatternId, IID_PPV_ARGS(&textPattern));
    if (FAILED(hr) || !textPattern) {
    return hr;
    }
    }

    CComPtr<IUIAutomationTextRangeArray> textRangeArray;
    hr = textPattern->GetSelection(&textRangeArray);
    if (FAILED(hr) || !textRangeArray) {
    return hr;
    }

    int length = 0;
    hr = textRangeArray->get_Length(&length);
    if (FAILED(hr) || length == 0) {
    return hr;
    }

    selectedText.clear();
    for (int i = 0; i < length; i++) {
    CComPtr<IUIAutomationTextRange> textRange;
    hr = textRangeArray->GetElement(i, &textRange);
    if (SUCCEEDED(hr) && textRange) {
    BSTR text = nullptr;
    hr = textRange->GetText(-1, &text);
    if (SUCCEEDED(hr) && text) {
    selectedText += text;
    SysFreeString(text);
    }
    }
    }
    return S_OK;
    }

    void MonitorSelectedText(IUIAutomation* automation) {
    while (true) {
    std::wstring currentSelectedText;
    HRESULT hr = GetTextFromActiveWindow(automation, currentSelectedText);

    if (SUCCEEDED(hr) && !currentSelectedText.empty() && currentSelectedText != lastSelectedText) {
    lastSelectedText = currentSelectedText;

    HWND foregroundWindow = GetForegroundWindow();
    wchar_t windowTitle[256];
    GetWindowTextW(foregroundWindow, windowTitle, 256);

    std::wcout << L"\n=== 检测到新的选中文本 ===" << std::endl;
    std::wcout << L"窗口: " << windowTitle << std::endl;
    std::wcout << L"选中内容: " << currentSelectedText << std::endl;
    std::wcout << L"========================\n" << std::endl;
    }

    std::this_thread::sleep_for(std::chrono::milliseconds(200));
    }
    }

    int main() {
    CoInitializeEx(NULL, COINIT_MULTITHREADED);

    consoleWindow = GetConsoleWindow();

    CComPtr<IUIAutomation> automation;
    HRESULT hr = CoCreateInstance(CLSID_CUIAutomation, NULL, CLSCTX_INPROC_SERVER, IID_PPV_ARGS(&automation));

    if (FAILED(hr)) {
    std::wcout << L"无法创建 UI Automation 对象" << std::endl;
    CoUninitialize();
    return -1;
    }

    std::wcout << L"文本选择监控程序已启动..." << std::endl;
    std::wcout << L"程序将在后台监控其他窗口中的文本选择" << std::endl;
    std::wcout << L"按 Ctrl+C 退出程序\n" << std::endl;

    std::thread monitorThread(MonitorSelectedText, automation.p);
    monitorThread.detach();

    std::wcin.get();

    CoUninitialize();
    return 0;
    }

    ```
    SEO 之神的徒弟又来展示高超的 JS 做游戏技术了
    @alading11 按照安卓人的逻辑,不买我怎么骂他?华为电脑就是垃圾,安卓电脑
    关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2550 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 21ms · UTC 15:09 · PVG 23:09 · LAX 08:09 · JFK 11:09
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.