Textify

Have you ever wanted to copy some text from a dialog box which doesn’t provide such functionality?
Textify was created to solve this problem: you can point your mouse over the text, click on the mouse shortcut (Shift + Middle click by default), and get a selectable view of the text.

Download

exe textify_setup.exe (570.05 kB, changelog)

Source code

https://github.com/m417z/Textify

Demonstration

Textify v1.6 Translation Demo

Textify and Google Chrome

Here are the steps to make Google Chrome work with Textify:

  • Open Google Chrome, and navigate to the following URL: chrome://accessibility/.
  • Check the checkboxes under Global accessibility mode.

To keep accessibility always enabled for Chrome, add the following command line parameter to your Chrome shortcut:
--force-renderer-accessibility

Posted in Releases, Software by RaMMicHaeL at March 5th, 2016.
Tags:

494 Responses to “Textify”

  1. Stamimail says:

    Hi,
    Foxit Reader – I tried to grab the caption/title of the window. It gives me “Ribbon” instead of the real caption/title.
    I tested with Inspect. I can see it there.

    • Stamimail says:

      Consider to make a shortkey for “extended information”.

    • RaMMicHaeL says:

      Hi,
      I looked at it. You can find it manually in Inspect, but when you hover over the title bar, “Ribbon” shows up. Textify uses the same API to query the element under the mouse, and I’m not sure how to make it find/prefer the other element, except maybe implementing a special case for Foxit Reader, something I’m reluctant to do.

      • Stamimail says:

        Consider to make a shortkey for “extended information”.
        by “extended information” I mean that Textify will retrieve all the information at the right pane of Inspect.
        This will solve Foxit case and other cases.

        • RaMMicHaeL says:

          I don’t think it will help in this case. The problem is not that the value is set in a different property of the selected element, but that an incorrect element is selected.

          It would be best for Foxit Reader to fix this, but they might not care since not many users rely on this.

  2. Fab says:

    hello, I downloaded textify years ago, the 1.5 version, portable version. now I downloaded from above the latested version, portable, but when I run it it says 1.5 version again. like it is not updated, why? thank you

  3. User says:

    Love the program, but it keeps showing the main window when opening on Windows startup. Is there a way to force it to always start minimized and in tray?

  4. Johan says:

    Is there a commandline switch to start Textify to the tray?

  5. cartler says:

    Is there a hotkey to popup the query window with the query from selected words?
    if it has this function, this tool may be the best web dict that can be use work with any program.

    • RaMMicHaeL says:

      There’s no such functionality. If I understood your idea correctly, I could emulate Ctrl+C and grab the clipboard content, a bit hacky but should work most of the time. I’m not sure there’s a better way that can work universally.

  6. Volker says:

    Thanks for a great tool.

    I am looking for a silent install/update switch. Standards like /s , /S, /silent do not seem to work. Am I missing something? Would be great to have to automate installs and updates.

  7. Volker says:

    oh… i see you install to %appdata%, would you consider an option to install to %ProgramFiles% ?

  8. Nazer92 says:

    The following error has occurred during the initialization of Textify:
    Назначенная клавиша уже зарегистрирована.
    (The assigned key is already registered.)
    I’m trying any combination for solved this error (on sturtup)
    but no chanse.

    • RaMMicHaeL says:

      By default, Textify tries to register the Ctrl+Alt+Shift+T hotkey. The hotkey can be changed in the ini file. If your system says that the key is already registered for any hotkey you try, perhaps something is wrong with your system, maybe because of a conflict with another tool. I can add an option to disable the hotkey completely if that will help.

  9. Osine says:

    Hello,
    I’m trying your software on Vivaldi (latest stable release). All accessibility options are enabled but I always get the title of the window wherever I click.
    It works fine with Google Chrome.
    Thank you.

    • RaMMicHaeL says:

      Hi Osine,
      I’ve never used Vivaldi, so I don’t have any insights. You can try asking on some community forum of Vivaldi users, perhaps somebody can help with that.

      Also, see my comment here. You can try Inspect to make sure it’s not a Textify-specific problem.

  10. Nazer92 says:

    Hello!
    What about startup with windows (minimize in try)?
    Thanks!

    • RaMMicHaeL says:

      You can use the -hidewnd command line switch to run Textify with a hidden window. If you install Textify normally (not a portable version) and choose to run it at startup, this is done automatically.

  11. Kenan says:

    It would be great if the program could capture tooltip as well.
    I would be glad if you add this feature 🙂

  12. HYUNJIN says:

    Hi, I am really really thank you for this software.

    I am modifying some parts of your code.

    Could you please give me full source code of textify v_1.8.2 ?

    I did clone source code on git. But

    I build textify.sln on vs 2019. But, It doesn’t show web launch button. And I can’t do auto copy function with the code.

    • RaMMicHaeL says:

      Hi,

      GitHub contains the latest version of Textify. Make sure that you configure the settings correctly for the web launch buttons to show up. You can install Textify separately, and then copy the configuration to the instance that you’re developing.

      • HYUNJIN says:

        Thank you for your fast! reply.

        I copied basic configuration to modifyed software by more setting.

        But it did not work. Can you give me some explanation more in detail on settings?.

        There are Three folders (asm, res, wow64ext).
        And I can find two solution (naked64~.sln, textify.sln)

        How can I make setup file of modified one on textify_v1.8.2 visual studio directory?

        • RaMMicHaeL says:
          • Clone the repository.
          • Open Textify.sln.
          • Compile the project.
          • Run/debug Textify.
          • Click on “More settings” (if you get an error message, click Ignore).
          • Paste the settings from a fresh Textify installation and click OK.
          • It should look like this. Copy over the icons if you want.
  13. HYUNJIN says:

    I build it. It is on my release folder of vs 2019.

    But, the executable file shows like this.

    https://imgur.com/JQlvPQN

    I am not sure where to fix.

    • RaMMicHaeL says:

      I’m not sure why it doesn’t work for you.
      You can try debugging the following functions:

      • UserConfig.cpp – UserConfig::LoadFromIniFile – check that the config is loaded near the end of the function.
      • TextDlg.cpp – CTextDlg::InitWebAppButtons – see whether the buttons are being added to the dialog.
      • HYUNJIN says:

        I t runs when textify.exe is with Icons folder on same directory.

        I want to make these codes automatically copy some text on clipboard to excel file.

        Where to modify?

  14. Shafiq says:

    it just copy the title of software or title of a web page

    • RaMMicHaeL says:

      About the browser – if you’re using Chrome or another Chromium-based browser, see the “Textify and Google Chrome” section at the top of this page.

      About software – Textify relies on UI Automation. Unfortunately, not all text can be grabbed this way, depending the way the target program is implemented. Which program doesn’t allow you to copy text other than the title?

  15. debie says:

    One problem I have with the latest version (not sure if earlier versions had this problem) is when a context menu is open.

    Say a context menu is open on File Explorer. When you activate Textify with its keyboard shorcut (not mouse shortcut, which I don’t use), the Textify window opens, but it doesn’t take focus, so Ctrl+C doesn’t work etc… Which is fine by me, as I have auto_copy_selection=1, but the more salient problem is that it isn’t possible to close the Textify window. It doesn’t close when I press Esc like it normally does (that closes the context menu instead), and it doesn’t close when I click another window or scroll in another window either. It just remains open, on top of all windows, forever. It’s not possible to Alt+Tab to it and press Esc either, as the Textify window does not appear as an Alt+Tabbable window. The only way to close it is using the mouse to click on the Textify window to actually activate it; then the usual methods of closing it works (either pressing Esc or just clicking/scrolling somewhere else).

    • RaMMicHaeL says:

      I’m aware of this, and it’s been like this since the first version of Textify. Stealing focus from a context menu doesn’t work by regular means, and I remember trying to come up with a solution for this but failing to find a good one.

      It can be annoying, but at least it works. As you said, you can click on it and then close it. You can also activate it in another location and then close it (pros: it gains focus, cons: it will copy a different text), or you can place your mouse on the unfocused window and use the mouse/keyboard shortcut.

      • debie says:

        Thank you for the answer! I actually like that it doesn’t steal focus from the context menu and cause it to close; it allows me to copy multiple items from the context menu easily, and I can then paste them using Win+V or another clipboard manager. (That’s not the case in other context menus, e.g. Edge/Vivaldi or Office; I guess they use non-standard menus.)

        I just disliked having to move my mouse (or rather, my imprecise touchpad) to its exact location to close it — normally I use keyboard as much as possible. Somehow I missed the other workarounds you mentioned, I now started using them. Thank you for the extremely useful tool!

  16. Erwin says:

    Hello
    What a great tool i love it. But.
    I like to copy all the text from different program windows, they have no API and no options to write their results in text files …
    There is some information about the labels, text boxes, buttons, and radio buttons that I need to read and review.
    I tried to write a program to read in VB6 for 3 months.

    I can read my own VB6 programs, all objects on it have handles, but these external test programs only have one handle and with Winspy I cannot understand how I can find the contents / handles of all including Objects.

    With your program it works flawlessly with all labels, buttons and text fields, that’s awesome.

    Can you extend the program to the entire program window?
    Or editable Option of this?

    It doesn’t have to be nicely formatted, full text is enough, I have to look for individual values ​​that are specifications.
    so o look for an specific IP-Adress or Language like “German” and so on

    Is there a trick or tip for me to develop it myself in VB6?
    I interrestet also to understand Things in C and compile it for some freeware-Tools if they are, no problem. I understand many things ans will lern C od above Languages als JAVA and so on…

    Can you help me please?
    Thanks in advance Erwin

    • RaMMicHaeL says:

      Hi Erwin,

      Textify uses the Windows UI Automation API. I’m not sure about VB6, but I’ve used Windows’ inspect.exe tool for simple tasks, and I also used Python’s pywinauto library for more advanced automation tasks.

      Regarding adding full text extraction to Textify, that’s not possible at this time. You might want to take a look at this tip, perhaps you’ll find it helpful.

  17. tuska says:

    Hi,
    Textify cuts off the text after 4 096 characters.
    Can this limit be increased?

    Regards,
    Karl

    • RaMMicHaeL says:

      Hi Karl,

      The limit is imposed by the target program, not Textify. See the discussion here: https://rammichael.com/textify/comment-page-3#comment-8942

      Quoting the relevant part:

      Q:

      Is there any ‘number of characters’ limit to this? Currently I see a maximum of 4100 characters copied to windows clipboard. What if I have to copy an entire web-page having about 15000 characters? Can this functionality be added? or Is it possible to modify the source code?

      A:

      Not in Textify. Textify uses the UI Automation API, and usually the target application, which provides text via this API, limits the length. For example, you can try and see that Notepad has a different limit than Chrome.

  18. tuska says:

    Hi Michael,

    Thanks for the prompt feedback – I should have known that (unfortunately I found this information too late).

    You might be interested to know that I tried to do a little summary some time ago.

    Please see here:
    https://www.ghisler.ch/board/viewtopic.php?p=392869#p392869
    Tool “Textify” – Summary (english)

    Great tool! In use almost every day 🙂

    Regards,
    Karl

  19. JK says:

    If I download it, Windows automatically removes it. Maybe OS system recognize it has a virus.

  20. Nathan says:

    Great prog. What is the syntax for running a program from a button?

    I am having problems with paths with spaces, eg.

    F:\Documents\qBittorrent standalone for Textify button.exe

    This however works:

    F:\Documents\TextifyButton.exe

    I can’t fix by enclosing path in “”. Is there a way to have paths with spaces?

    • RaMMicHaeL says:

      Due to the format of the ini file, you need to use quotes twice. For example:
      command=""F:\Documents\qBittorrent standalone for Textify button.exe""
      Or for a command with arguments:
      command=""F:\Documents\qBittorrent standalone for Textify button.exe" argument1 argument2 "argument3 with a space""

  21. John says:

    Hello RaMMicHaeL,

    thanks for the recent update of Textify to version 1.8.3.

    It runs perfectly on Windows 7 SP1.

    Unfortunately it does not run properly on Windows XP SP3 (running in VM VirtualBox) like the previous version 1.8.2.

    When starting Textify I get this error. After that the programs starts up and seems to work so far.

    Title: Textify keyboard hotkey initialization error
    Error message: The following error has occurred during the initialization of Textify:Invalid attributes.

    Would it be possible to fix that?

    • RaMMicHaeL says:

      Hi John,

      Right, I unintentionally used a flag that’s unsupported on Windows Vista and older. It’s surprising that somebody is still using Windows XP for anything. I’ll fix that in the next version. For now, as a quick fix you can patch Textify.exe with a hex editor at offset 2FD8 (or 12248 in decimal) from value 40 to 0.

  22. John says:

    Thanks, I patched the file and it works.

    I don’t use Windows XP in a productive way, more as hobby and I like programs that work on Window 7 and XP as well (there are still numerous programs that work).

  23. LJ says:

    Greetings, thanks for the tool, but i’m wondering how do the advanced settings work?

    I have this in my “More settings” config:

    ; Mouse and keyboard key numbers can be found here:
    ; https://docs.microsoft.com/en-us/windows/win32/inputdev/virtual-key-codes

    ; [mouse]
    ; key=4
    ; ctrl=0
    ; alt=0
    ; shift=1

    [keyboard]
    key=6A
    ctrl=0
    alt=1
    shift=0

    but the mouse still works, and I can’t trigger Textify with: multiply key + alt, as defined in the config

    Thanks

  24. Hello! I have the following button:

    [web_button_1]
    icon=icons\google.ico
    command=popup-firefox!https://www.google.com/search?q=%s
    width=1200
    height=600

    Is it possible to make Textify open the search page in a new tab (if Firefox is already open), rather than spawning a new Firefox instance (Window)? Thanks for this awesome program!

    • RaMMicHaeL says:

      Hi,

      Specifying:
      command=popup-firefox!https://www.google.com/search?q=%s
      is equivalent to specifying:
      command=firefox.exe -width 1200 -height 600 -new-window "https://www.google.com/search?q=%s"

      For a new tab, you can just specify:
      command=firefox.exe "https://www.google.com/search?q=%s"

      If Firefox is your default browser, you can just specify the URL:
      command=https://www.google.com/search?q=%s

  25. One last thing (please)!

    Is there a way to make Textify only search for selected text (highlighted text) in the capture window? Thank you.

  26. When I activate Textify over the Firefox tab for this webpage, the popup has “Textify – RaMMicHaeL’s Blog” highlighted. When I click the Google button, it has no problem finding this page in its results.

    However if the text in the popup has a lot more additional text, Google may not be able to find this page because it is looking for ALL of the text in the popup box. In this case, I want to highlight just “Textify – RaMMicHaeL’s Blog” while de-selecting the rest of the text in the popup box, then have Textify pass the highlighted text only as the search term I want Google to search for.

  27. OK, weird. It seems to be working now. Thank you!

Leave a Reply