Home > Net >  Changing the title of uwp process
Changing the title of uwp process

Time:12-23

I want to change the title bar of calc.exe. I read that it's done via SetWindowTextA() but when I used this it only change the title of the preview (1) and I want to change title at (2) as well.

Can anyone explain for me why it change the title at (1) not (2) and how can I change the title at (2)

enter image description here

CodePudding user response:

The Calculator title is Text Control Type retrieved using enter image description here

Edit:

#include <Windows.h>
#include <UIAutomation.h>
#include <wchar.h>

int Element(IUIAutomation* automation)
{
    // Get the element under the cursor
// Use GetPhysicalCursorPos to interact properly with
// High DPI
    POINT pt;
    GetPhysicalCursorPos(&pt);

    IUIAutomationElement* pAtMouse;
    HRESULT hr = automation->ElementFromPoint(pt, &pAtMouse);
    if (FAILED(hr))
        return hr;

    // Get the element's name and print it
    BSTR name;
    hr = pAtMouse->get_CurrentName(&name);
    if (SUCCEEDED(hr))
    {
        IUIAutomationTextPattern* pattern;
        pAtMouse->GetCurrentPatternAs(UIA_TextPatternId, IID_IUIAutomationTextPattern,(void**)&pattern);
        //TODO
        wprintf(L"Element's Name: %s \n", name);
        SysFreeString(name);
    }

    // Get the element's Control Type (in the current languange)
    // and print it
    BSTR controlType;
    hr = pAtMouse->get_CurrentLocalizedControlType(&controlType);
    if (SUCCEEDED(hr))
    {
        wprintf(L"Element's Control Type: %s \n", controlType);
        SysFreeString(controlType);
    }

    // Clean up our COM pointers
    pAtMouse->Release();
    return hr;
}

int main(int argc, TCHAR* argv[])
{
    // Initialize COM and create the main Automation object
    IUIAutomation* g_pAutomation;
    CoInitialize(NULL);
    HRESULT hr = CoCreateInstance(__uuidof(CUIAutomation), NULL,
        CLSCTX_INPROC_SERVER, __uuidof(IUIAutomation),
        (void**)&g_pAutomation);
    if (FAILED(hr))
        return (hr);

    bool quit = false;
    while (!quit)
    {
        SHORT leftControlMod = GetAsyncKeyState(VK_LCONTROL);
        if (leftControlMod != 0)
        {
            Element(g_pAutomation);
        }
        quit = GetAsyncKeyState(VK_ESCAPE);
    }

    g_pAutomation->Release();
    CoUninitialize();
    return 0;
}
  • Related