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 (593.16 kB, changelog)
Latest version: v1.10.4

Source code

https://github.com/m417z/Textify

Demonstration

Textify v1.6 Translation Demo

Translations

If you’d like to translate Textify to your language, please refer to this comment.

Posted in Releases, Software by Michael (Ramen Software) on March 5th, 2016.
Tags:

807 Responses to “Textify”

  1. David says:

    Hey,
    What an awesome tool. Simple and to the point.
    Are you planning to include any other donation options? I have never used Paypal before. I would give it a try later sometime.

    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?
    When pressing the hot key combination, a pop up menu appears. Although I enabled auto-copy option through the ini file, but is it possible to hide the pop-up window during the copy operation or an option to enable this in the ini file?
    How do we set this up to allow the text to be saved automatically in pre-numbered files or give an option to enter a file name.

    I would be looking forward to your reply.
    Cheers

    • Hi David,

      Are you planning to include any other donation options?

      Thank you for considering a donation, but no, not at this time. I have PayPal and Bitcoin, which I believe are the most popular options to make a donation.

      Is there any ‘number of characters’ limit to this?

      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.

      is it possible to hide the pop-up window during the copy operation or an option to enable this in the ini file

      No, there’s no such option.

      How do we set this up to allow the text to be saved automatically in pre-numbered files or give an option to enter a file name.

      This is also not possible with Textify.

      Perhaps this tip will help you. If you drag text from Ditto into a folder, it writes the text into text files. Hope that helps.

  2. Fabrice says:

    Hi Michael,

    We found this amazing software at the office one year ago, it was the moment of my life (yeah really). But since we have Office 2013 (with new VC++ redistribuable package maybe), about a few months, Textify doesn’t work anymore, only in a few places, before it worked everywhere !

    Do you know about this issue ?

    Thanks,

  3. Stamimail says:

    Do you think about adding OCR?

  4. Sarah says:

    Will this work with iPad Pro devices? I don’t have a mouse and was hoping there might be an alternative command for us mobile users?

  5. Sepaweh says:

    Can U make a portable version of this excellent program?please

  6. Zane Stein says:

    Can you make a Mac version?

    • Textify is designed for Windows, using Windows accessibility APIs. It cannot be just ported to Mac, most/all of the code needs to be re-implemented. I have no experience in Mac development, so don’t count on me for this.

  7. Luke Byrne says:

    Fantastic software!
    I’ve been using it to help in language learning, and it as been tremendous.

    However, I’ve been having a hell of a time trying to get the source code to compile. Constant errors surrounding many of the includes. Was this software written on an older version of windows? And is there any advice you could give me in getting it to compile?

    • Luke Byrne says:

      Scratch that.
      I managed to get it to build. Had to enable XP support in Visual Studio, and add the WTL 10 include files.

      Thanks again for the software.

  8. Luke Byrne says:

    I’ve found a bug.
    With a standard install everything works fine.
    However, with a portable install google translate stops working.

    To understand why, I used Advanced Installer with a virtual machine running Windows XP 32bit. Advanced Installer took a capture of the system before and after installation of standard Textify, to determine the changes made by the installer. I figured there was some change being made in the standard version, but not the portable version, that allowed google translate to work.

    https://imgur.com/a/95pwSnJ

    To verify the output I then used Advanced Installer to generate a .msi file based on its analysis, and installed textify from that.
    But google translate wont work! It’s bizarre.
    The .msi I generated should have the exact same functionality as the original textify_setup.exe but it doesn’t. It has the same bug as in the portable version.

    Very strange.

    • Hi Luke,

      Looks like Advanced Installer missed the important entry. The non-portable installer of Textify adds Textify.exe to the FEATURE_BROWSER_EMULATION registry branch to allow it to use the latest version of the IE control. Without it, the IE control uses the IE7 rendering engine, which is very very old. See here for more details.

      You can import this registry file to add Textify.exe to the FEATURE_BROWSER_EMULATION registry branch, just like the non-portable installer does.

  9. Every student ever says:

    this is so usefull for making summaries to study to thanks alot dude love it

  10. Corey D. says:

    What a useful app. Thanks!

  11. Corey D. says:

    An autostart option for this command would be nice, maybe an option to hide the window when the app launches also. I’ll use NirCmd to achieve this for now =)

    • If you’re using the setup wizard, it should set Textify to run at startup (unless you uncheck the relevant checkbox). If you prefer to add Textify to startup manually, you can use the -hidewnd command line switch to launch Textify with a hidden window.

  12. ebrahim says:

    hi
    textify not complete with win10
    With some apps

      • ebrahim says:

        my application in win7 compelet with textify
        but in win10 not work

      • ebrahim says:

        information in inspect

        How found: Mouse move (417,751)
        hwnd=0x00000000000100FC 64bit class=”MSTaskListWClass” style=0x56000000 ex=0x0
        Name: “CONSOL – 1 running window”
        ControlType: UIA_ButtonControlTypeId (0xC350)
        LocalizedControlType: “button”
        BoundingRectangle: {l:399 t:728 r:448 b:768}
        IsEnabled: true
        IsOffscreen: false
        IsKeyboardFocusable: false
        HasKeyboardFocus: false
        AccessKey: “”
        ProcessId: 4364
        RuntimeId: [2A.100FC.4.80000001.100FC.FFFFFFFC.9]
        AutomationId: “{7C5A40EF-A0FB-4BFC-874A-C0F2E0B9FA8E}\Rahyab Rayaneh Gostar\CONSOL\CONSOL.exe”
        ProviderDescription: “[pid:4364,providerId:0x0 Annotation:Microsoft: Annotation Proxy (unmanaged:UIAutomationCore.DLL); Main(parent link):Microsoft: MSAA Proxy (unmanaged:UIAutomationCore.DLL)]”
        IsPassword: false
        ItemStatus: “”
        HelpText: “”
        LegacyIAccessible.ChildId: 9
        LegacyIAccessible.DefaultAction: “Press”
        LegacyIAccessible.Help: “”
        LegacyIAccessible.KeyboardShortcut: “”
        LegacyIAccessible.Name: “CONSOL – 1 running window”
        LegacyIAccessible.Role: push button (0x2B)
        LegacyIAccessible.State: pressed,hot tracked,has popup (0x40000088)
        LegacyIAccessible.Value: “”
        IsAnnotationPatternAvailable: false
        IsDragPatternAvailable: false
        IsDockPatternAvailable: false
        IsDropTargetPatternAvailable: false
        IsExpandCollapsePatternAvailable: false
        IsGridItemPatternAvailable: false
        IsGridPatternAvailable: false
        IsInvokePatternAvailable: true
        IsItemContainerPatternAvailable: false
        IsLegacyIAccessiblePatternAvailable: true
        IsMultipleViewPatternAvailable: false
        IsObjectModelPatternAvailable: false
        IsRangeValuePatternAvailable: false
        IsScrollItemPatternAvailable: false
        IsScrollPatternAvailable: false
        IsSelectionItemPatternAvailable: false
        IsSelectionPatternAvailable: false
        IsSpreadsheetItemPatternAvailable: false
        IsSpreadsheetPatternAvailable: false
        IsStylesPatternAvailable: false
        IsSynchronizedInputPatternAvailable: false
        IsTableItemPatternAvailable: false
        IsTablePatternAvailable: false
        IsTextChildPatternAvailable: false
        IsTextEditPatternAvailable: false
        IsTextPatternAvailable: false
        IsTextPattern2Available: false
        IsTogglePatternAvailable: false
        IsTransformPatternAvailable: false
        IsTransform2PatternAvailable: false
        IsValuePatternAvailable: false
        IsVirtualizedItemPatternAvailable: false
        IsWindowPatternAvailable: false
        FirstChild: [null]
        LastChild: [null]
        Next: “Calculator” button
        Previous: “Excel 2016” button
        Other Props: Object has no additional properties
        Children: Container has no children
        Ancestors: “Running applications” tool bar
        “Running applications” pane
        “” pane
        “Taskbar” pane
        “Desktop 1” pane
        [ No Parent ]

      • ebrahim says:

        but by click in menu in inspect information is

        How found: Mouse move (382,33)

        hwnd=0x0000000000010438 ??bit class=”WindowsForms10.Window.8.app.0.2804c64_r6_ad1″ style=0x56000000 ex=0x10000

        Cannot get object from point:
        [Error: FromPoint: hr=0xFFFFFFFF80070005 – Access is denied.]

  13. ebrahim says:

    hi
    for translat auto to persian
    who edit ini file
    https://translate.google.com/m/translate#auto/en/%s ???

    please for new version notification in textify

  14. hzhbest says:

    Hi,
    I want to know how to use the “[keyboard]” section in the .ini file?
    Because is seems nothing response when I press the key after I changed the number to the keycode I want following the keycode list.

    • Hi,
      Did you restart Textify after editing the .ini file? Please post what you you tried, and I’ll try it on my computer to see if it works.

      • ttf says:

        Hi,
        Currently I use key=1 in ini to “disable” the hotkey.
        But is there an exact/correct way for it?

        And I have some suggestions:
        Please add a Pin button in the windows. (Or/and a shortcut key to pin the window.) I often need to keep the window(s) open and switch between other apps. (And hope the window can be moved when pinned.)
        Remember the current size and position of the popup.

        Thank you.

        • Hi,

          Currently I use key=1 in ini to “disable” the hotkey.
          But is there an exact/correct way for it?

          With the current version there’s no way to disable the hotkey. I intentionally made the default shortcut Ctrl+Shif+Alt+T, so that there will be a low chance for it clashing with an existing shortcut, and low chance for activating it by accident. You can just keep it and not use it.

          Please add a Pin button in the windows.

          Are you referring to the window with the buttons? (screenshot)
          Or the website popup window?

          If it’s the former: I’ll keep the suggestion in mind. Note that the window is already movable with the empty space at the bottom near the buttons.

          • ttf says:

            I use many shortcut keys (including Ctrl+Shift+Alt+T) in my favorite apps. So I’d rather disable the hotkey in Textify, since modifier-click is fine and enough for me.

            Are you referring to the window with the buttons?
            Or the website popup window?

            I mean all of them. Currently either of them will close itself when unfocused.

            Note that the window is already movable with the empty space at the bottom near the buttons.

            Thanks for telling me this. Considerate design!

            P.S.
            Textify is unable to grab the lists in Process Hacker (though PH provides the way to copy them): wj32.org/processhacker/

            • I’d rather disable the hotkey in Textify

              I’ll look at implementing it for the next version.

              Currently either of them will close itself when unfocused.

              That’s true for the built in web popup, but not for the Chrome/Firefox popup introduced in Textify v1.8.

              Textify is unable to grab the lists in Process Hacker

              Does it show a different text, or does it not appear at all? Perhaps it’s because Process Hacker runs as administrator?

              • ttf says:

                –app= is just what I want!
                Thank you.

                Does it show a different text, or does it not appear at all? Perhaps it’s because Process Hacker runs as administrator?

                Textify gets the window title instead when it failed on the control.
                Seems in Process Hacker it can grab everything except the lists.
                It also failed on a few controls in other apps.
                I compared with GetWindowText. They behave same.
                While HyperSnap (with TextSnap feature in it) can grab what the two cannot.
                All the apps mentioned run as administrator.

                • It also failed on a few controls in other apps.

                  Textify, unlike most other apps of this kind, relies on UI Automation. this approach can have advantages (e.g. I don’t think other tools can do this) and disadvantages (there are cases in which Textify is not the best tool for the job).

                  There’s a tool from Microsoft called Inspect which shows automation-related information. It can be downloaded here. You can compare Textify and Inspect to make sure it’s not a bug in Textify.

                  • ttf says:

                    Thank you for the info.
                    Textify is so handy, and satisfying in most cases.

                    Note that the window is already movable with the empty space at the bottom near the buttons.

                    Some suggestions about the empty space:
                    1) Keep a square (=button-sized) empty space for moving when the window is small.
                    2) Change the mouse cursor (to the “Move” one according to the user’s cursor scheme) when the mouse is hovering on the empty space.

            • I use many shortcut keys (including Ctrl+Shift+Alt+T) in my favorite apps. So I’d rather disable the hotkey in Textify, since modifier-click is fine and enough for me.

              I forgot to update – starting with v1.8.3, you can set key to 0 to disable the keyboard shortcut.

  15. Bryan says:

    Hey great tool! The issue I am running into with it is that on the program called Zenmap it will only copy the title bar ‘Zenmap’ but none of the actual data that the program displays such as the IP address. Any thoughts? (https://nmap.org/dist/nmap-7.70-setup.exe) is the download for Zenmap which is part of the nmap program.

  16. Emma says:

    Any chance you could write a 64bit version please?
    Textify is a great tool 🙂

  17. Jeff G says:

    This is a fantastic app that has made my being able to troubleshoot and document a great deal easier. Thank you for creating it!

  18. boardtc says:

    The first time I tried it, it would not select the text just the window title: https://pasteboard.co/I7EDRGU.png

  19. ted says:

    (sorry, very bad english)

    Thank you VERY much for Textify, one of the most helpfull tools I know !

    I think, there is a little error:
    If I copy the text of a DialogBox, then all ‘&’ are not in the copy.
    Perhaps there are more characters, they are ignored.

    I hope, you can understand, what I want to say.

  20. ted says:

    A program shows as Messagebox.
    The content is: “cmd /c echo. & echo hello”
    Then I copy the content with your Textify.
    In the clipboard is: “cmd /c echo. echo hello”
    The ampersand ‘&’ is missing.

    • Works for me, right here on your comment. It also works with a regular message box. Perhaps you have a program which provides incorrect accessibility text. There’s a tool from Microsoft called Inspect which shows automation-related information. It can be downloaded here. Compare Textify’s output with Inspec’s. If Inspec also misses the ‘&’ symbol, then there’s nothing Textify can do.

      • ted says:

        Thank you. Can you give me a 32-bit version of inspect?

          • ted says:

            Thank you for inspect32.

            Please use a fixed-font for the following infos:

            ' VBScript:  TestAmpersandInMessageBox.VBS

            MSGBOX "aaa   &   bbb   &   ccc   &   ddd   &   eee"
            ' Dialog:   'aaa   &   bbb   &   ccc   &   ddd   &   eee'
            ' Textify:  'aaa      bbb   &   ccc   &   ddd   &   eee'
            ' Inspect:  'aaa      bbb   &   ccc   &   ddd   &   eee'    ( = Name )

            MSGBOX "aaa" & vbCrLf & "   &   bbb   &   ccc" & vbCrLf & "   &   ddd   &   eee"
            ' Dialog:  'aaa'
            '          '   &   bbb   &   ccc'
            '          '   &   ddd   &   eee'

            ' Textify:  'aaa'
                        '      bbb   &   ccc'
                        '   &   ddd   &   eee'
            ' Inspect:  'aaa'
            '           '      bbb   &   ccc'
            '           '   &   ddd   &   eee'

            ' PowerBasic:  TestAmpersandInMessageBox.BAS
            FUNCTION PBMAIN
            '  SAME problem.
               MSGBOX "aaa   &   bbb   &   ccc   &   ddd   &   eee"
               MSGBOX "aaa" & $CRLF & "   &   bbb   &   ccc" & $CRLF & "   &   ddd   &   eee"
            END FUNCTION

            -> the FIRST ampersand was ignored. (I try it with “Fixedsys” and “Microsoft Sans Serif” for Dialogboxes in Win7x32german)

            inspect also ignores it, this means, textify cannot do anything. One ‎unsatisfactory solution:  I must copy the content of Messageboxes with CTRL-C.

  21. Denis says:

    Hi. Good program. I have a suggestion, Make an optional selection on top of all Windows.

    • Hi Denis,
      I didn’t quite understand the suggestion. You can ask in Russian 🙂

      • Denis says:

        Нужно сделать окно программы поверх всех окон.

        • Какое окно? Это? Или это?

          • Denis says:

            Какое окно? Это? Или это?

            Конечно же вот это!
            https://rammichael.com/wp-content/uploads/2016/03/Textify.png

            • ОК, а зачем? Есть разные программы которые позволяют это делать для любого окна, не только Textify. Да и в случае Textify главное окно не особенное и вообще не должно часто открываться. Не вижу смысла эту функцию встраивать в Textify.

              • Denis says:

                ОК, а зачем? Есть разные программы которые позволяют это делать для любого окна, не только Textify. Да и в случае Textify главное окно не особенное и вообще не должно часто открываться. Не вижу смысла эту функцию встраивать в Textify.

                Моё дело предложить…
                Хотелось бы только заметить, что я предлагаю реально полезную функцию для утилиты, но вы упорно пытаетесь привинтить ей то, что там не нужно. Отвечу вам вашими же словами: для перевода есть другие хорошие программы, а конкретно QTranslate. Очень жаль, что вы отказываетесь прислушаться к совету.

                • AntonyMan says:

                  Indeed, “it’s a shame that you refuse to heed the advice.”
                  Google products are very difficult to use, and mostly NOT-trusted. Internet explorer and bing are the same shit.

                  So I tried with no luck to make custom pop-up buttons like “ImTranslator”(extension) and watefox(bowser based chromium-firefox).

                  ImTranslator
                  moz-extension://cabaf830-6f07-45fa-9029-94d8e042e323/content/html/popup/translation-back.html?text=&stop=

                  How to (can I?) add ImTranslator in pop up buttons?

  22. sean says:

    thank you for making this simple program. I recommend my coworker to use this program, and they happy about using this program by using this program we can reduce one work.

  23. Phil Daniels says:

    Textify doesn’t seem to work on menu drop-down items. Is that fixable – I use ctrl+alt+middle click.

    Cheers Phil D

  24. Phil Daniels says:

    Thanks, that works in most instances – except not quite where I actually want it. I will have to ask the developer of that program

  25. Lyndon says:

    The data I want to copy is in a table in an app. At the moment I appear to be only able to copy one cell. Is it possible to extend the selection to more than one cell?

    • No, it’s not possible with Textify at this time. Depending on the way the app is implemented, perhaps a tool such as SysExporter could be a better choice for the job.
      Alternatively, if the table is not very large, you can use this tip to quickly copy multiple columns.

  26. Peter Pannupizza says:

    Hello RaMMicHaeL

    I just like to thank you for this little gem! It is often helpful daily life, and now I found here that with Chrome-based browsers ‘Global accessibility Mode’ enabled Textify is even more handy tool have to be available.

    Is there any reason why that ‘Global accessibility Mode’ is not enabled by default ? Is it secure to use with daily browsing?

    • I just like to thank you for this little gem!

      You’re welcome 🙂

      Is there any reason why that ‘Global accessibility Mode’ is not enabled by default ?

      My guess would be one of the following: performance or resistance to automation (or both).

      Performance – most users don’t need this feature, so perhaps Chrome developers didn’t want them to pay the slight performance penalty for it.

      Resistance to automation – accessibility can allow other programs to interact with the browser, and it can be done by malicious actors as well (e.g. a tool that fills a PayPal form for you to send money to an attacker). Of course, if an attacker can do that, he already took over the computer, and has other options to achieve the same goal. At best, it can make it more difficult to misuse the browser. But since it’s off by default, it’s not likely for malicious actors to rely on it, so in any case I don’t think there’s a security risk here.

  27. Eheng says:

    Hello, I’d like to thank you very much for letting me see such amazing software. China

  28. staryy925 says:

    I want to know how to let it work on chrome . I did follow you said , but not change . I still can’t get a right selectable view of the text . It shows ” Chrome Legacy Window ” .

  29. Mark says:

    What a GREAT tool! I just found this and absolutely love it. Textify elegantly fixes a glaring gap in OS functionality.

    I only have one question. I installed the portable version and added a shortcut to the startup folder to get it to run every time. I set the shortcut to run minimized but I’d prefer to have it run in the tray. I just popped in here and searched this page for ‘tray’ or ‘minimize’ and didn’t find it so I thought I’d post.

    Thanks again for making this!

  30. Nomad says:

    Версия 1.8 на XP:

    “Порядковый номер 345 не найден в библиотеке DLL COMCTL32.dll”

    Просто замечательное исключение
    Что же это за функция такая ‘ordinal 345’
    В предыдущей 1.7 такого не было

  31. Peter Pannupizza says:

    Sadly Google search button (or any other) does not work any more. It start to open some popup window, not my default browser. Back to 1.7. 🙁

  32. Norbert says:

    GDATA kills it always into Qarantaine ! why this ? It says it’s a behavioral infection! Although i told it, to ignore the file and the directory.
    Any hint to stop that? Oherwise it’s not applicable for me. But i like it!
    Best regards Norbert

    • I don’t see a detection of GDATA on VirusTotal. It was probably a false positive detection, and perhaps it’s already removed. A new version of Textify is just released, and it might be falsely detected just because it’s not a well known file.

      By the way, Textify is open source, so you can just build it yourself if you prefer.

  33. Manon says:

    Textify 1.8

    On Windows XP SP3 32 bits french
    error message

    L’ordinal est introuvable dans bibliothèque de liaisons dynamique COMCTL32.dll

  34. Peter Pannupizza says:

    Any chance to get some option to convert some specific characters to somethin else? There could be some text file (in Textify folder) where these are specified something like this:

    character to be converted (some a separating character or string) character to be converted

    |=-

    So for example “|” is replaced to “-” before the input is given as a parameter to the command.

    This is just a wish, I understand if you don’t see the need for one or not time to do it. 🙂 I ask this, because my scripts do not like some special characters like “|” (and “%s” is not option because it encodes all special characters like space and so on).

    • Why not quote the argument? For example:
      translate.bat -from en -to fr "%cs"
      %cs strips all quote characters, so it’s safe to use in this case.

      Textify is open source, so if you need more customization, you can implement it in the source code and build your own version of Textify.

      • Peter Pannupizza says:

        I already use “%cs” (tried without too). Problem is “|” inside text, for example, not quotes. But I just asked. Apologies. Case closed.

  35. 6666 says:

    Why can’t I copy and paste infinitely? Can only copy half at a time, can you break the copy limit? ? ? This copy is incomplete and stupid! The copy is incomplete! Only the beginning!

    • If you’re talking about the amount of characters Textify can grab, 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.

      • 6666 says:

        Hello, may I ask if the next version update can break the software copy limit? The text in the software can’t be copied completely, only half of the text is very bad! I hope the update program breaks through any software copy restrictions! This is a very good tool! Don’t waste it!

  36. 6666 says:

    thankyou! you are best man.

    🙂 i very so much love your tools .

  37. 1111 says:

    tools very good, but it can’t get photoshop and huodini software UI text .

  38. Ruy says:

    First, a huge thanks for developing this tool, it is simply awesome.

    I do want to ask your attention to a little incident I discovered while using version 1.8 in Windows 10 Enterprise 1709 x64.

    A strange hidden inisible character is captured by Textify when copying. I have been using Textify for a while. This does not happen in version 1.5 (Windows 7).

    The only way I’ve found so far to visibly see this character is from Command Prompt.

    Please check the following video where I demonstrate the issue.

    https://www.youtube.com/watch?v=47flHgY5SiQ

    Thanks!

    Ruy

    • Hi Ruy,
      I’m familiar with this behavior. It’s not an issue of Textify, that’s the exact text that is being set by the explorer breadcrumbs control. The invisible character is the Unicode left-to-right mark.
      I agree that it can be annoying (I usually just remember to remove it), but it’s not clear whether it’s a problem that needs to be solved by Textify, and if so, how. After all, there might be other cases where the user wants the exact text, including any control characters.

      • Ruy says:

        Thanks so much for the prompt reply.

        Follow up question: Being that this is another of Windows 10 long list of annoyances, could Textify issue some kind of warning when this LTR mark is detected? I mean, it is really invisible and it would cause all kinds of headaches… Unfortunately, I find myself retrieving items from the File Explorer breadcrumb very often, and this had become a problem real quick. I hate to request this of you, you have already done so much for us all! If it’s not doable, no worries.

        • could Textify issue some kind of warning when this LTR mark is detected?

          I’d like to keep the UI to the minimum.

          Perhaps a good solution is adding an option to strip invisible characters. Looks like there are only five such characters:

          U+200B    Zero-Width Space       ​      "​"
          U+200C    Zero Width Non-Joiner  ‌      "‌"
          U+200D    Zero Width Joiner      ‍      "‍"
          U+200E    Left-To-Right Mark     ‎      "‎"
          U+200F    Right-To-Left Mark     ‏      "‏"
          

          Source:
          https://stackoverflow.com/a/21797208

          • Ruy says:

            RaMMicHaeL, if you are able to code that in and have all those useless characters removed from the output, that would be the ultimate solution!!! Wow, so excited right now 🙂

            • Check out version 1.8.1 🙂
              To enable the new option, add the unicode_spaces_to_ascii=1 option to the [config] section of the configuration (“More settings” button).

              • Ruy says:

                Outstanding! I can confirm that the LTR marks previously seen in the output string are no longer there. Thanks so much!

                Expanding on this, there are still other zero-width characters being picked up from other sources. These sources may not be Windows’ native features, but the job of Textify in those cases is still a very important job.

                For example, as a Classic Shell user, I am getting characters U+202A and U+202C from the File Explorer status bar when I use Textify to acquire the property information from a JPG file (as seen on a video I posted before).

                The topic of zero-width characters may affect many users going forward. Having the ability to add those characters to the configuration so they may be stripped every time Textify sees them would be ideal.

                I envision it would look something like this in the Textify.ini file (the comments optional, of course, but important for neatness):

                [unicode_characters_replacement]
                U+202A ; Left-to-Right Embedding (LRE)
                U+202C ; Pop Directional Formatting (PDF)

                Any thoughts?

                • there are still other zero-width characters being picked up from other sources

                  I’ll add more of those. Here’s a list I can use:
                  https://www.compart.com/en/unicode/category/Cf

                  Having the ability to add those characters to the configuration so they may be stripped every time Textify sees them would be ideal.

                  I think it’s an overkill to add this kind of configuration at this point.

                  • Ruy says:

                    RaMMicHaeL, thanks once again for following up and updating the program. I am looking forward to the new and improved versions that will follow.

                    Quote: “I think it’s an overkill to add this kind of configuration at this point.”

                    I respectfully disagree for the following reasons:

                    The very essence of Textify is to capture text that was not meant to be captured in the first place.
                    Therefore, users who use Textify are most likely advanced users who are engaged in documenting something or solving some problem.
                    There are countless scenarios worldwide (I am thinking languages and character-sets all across the world) where users will encounter these characters while using Textify and this will affect their experience very negatively, regardless if they are aware of the existence of such characters or not.
                    Even when these users are aware of the problem, they will have to rely on you to make the changes and release the next version of Textify. This would be impractical and a tremendous burden for all involved.

                    Of course, I respect your position and the only thing I focus on is the gratitude I have for you for having done so much for us all by creating this wonderful program and sharing it with the world free of charge.

                    I will continue following closely the development of Textify.

                    Thanks so much!

                    -Ruy

                    • U+202A ; Left-to-Right Embedding (LRE)
                      U+202C ; Pop Directional Formatting (PDF)

                      I’ve added these, and a couple of other control characters, to the list of characters to be removed. Update to the latest version and try it out.

                      I respectfully disagree

                      It’s OK, I’ll keep your suggestions in mind. If I ever go in this direction of making things flexible, I can go even further and provide regex search/replace rules. Then one can do, for example:
                      [regex_config]
                      search1=\u00A0|\u2000
                      replace1=" "
                      search2=\u202A|\u202C
                      replace2=""
                      search3=Color
                      replace3=Colour

                    • Ruy says:

                      All of that information is wonderful. Thanks again so much for continuing making this great software even greater!

                    • Ruy says:

                      By the way, excellent online tool here to identify zero-width and other special characters hidden in a string:

                      https://csharpindepth.com/Articles/Unicode

                    • Ruy says:

                      Tested out version 1.8.2 and it is definitely taking care of all the zero-width characters I was finding in Windows 10 File Explorer breadcrumb and status bar (both, Windows-native and those added by Classic Shell). The resulting text now appear to be clean from those annoying characters. If I encounter something else I will report it here. — Thanks so much! — Ruy

  39. Ruy says:

    UPDATE: The problematic behavior we have been discussing here is also seen in other areas of Windows 10 File Explorer, not only in the breadcrumb.

    I discovered it again in the status bar of the File Explorer (bottom bar where some file properties are displayed when a file is selected, for example Type, Size, Date modified, etc.)

    Damn Microsoft, everything has to be a battle with you!

    • I don’t see it. For example, it’s all spaces here, and no invisible characters as far as I see: https://i.imgur.com/936GieX.png

      • Ruy says:

        RaMMicHaeL, I think it starts happening when more details about the files are being shown by the File Explorer. I am not 100% sure how, but my PC shows these details about files. I have used your tool to capture these details as I document the properties of these files. Never saw these characters in Windows 7, but as you pointed out, Windows 10 now adds them and they really get in the way.

        Here is a small video I created demonstrating the situation.

        https://www.youtube.com/watch?v=gY8W27ZhkB4

        Once again, thanks so much for taking the time to look into this situation! – Ruy

        • As far as I know, this status bar is not a part of Windows. Perhaps you’re using a tool called OldNewExplorer? See here, search for “Status Bar” on the page.

          • Ruy says:

            Hello RaMMicHaeL, yes, you’re right. It was Classic Shell that shows those details in Windows 10 File Explorer. Thanks for clarifying that.

            I think the case remains strong. Anytime zero-width characters are found by Textify, they should be removed.

            Could there be a section in the configuration file of Textify where the user can add any character that he/she wishes to be excluded from the text-capture operation?

  40. Hi,

    Thanks for your dev efforts. Really an awesome program. But why is it that, soon after restarting or rebooting the system, TexTify, set up to start with the OS, inadvertently and unrequestedly opens the user default browser, apparently for forcing the user to visit a URL I don’t currently remember which one it is, since I stopped using the program on account of this? Weird…

    And please also note that a few antivirus programs over at virustotal.com report Textify executable and its modules has harmful code inside them… Well, at least that was the case of its previous 1.81 version.

    Regards.

    • Hi Eugenius,

      soon after restarting or rebooting the system, TexTify, set up to start with the OS, inadvertently and unrequestedly opens the user default browser, apparently for forcing the user to visit a URL

      It shouldn’t do that. Why do you think it’s Textify?

      a few antivirus programs over at virustotal.com report Textify executable and its modules has harmful code inside them

      These are false positives. See also my comments here.

  41. Peter says:

    In this msgbox window:

    https://accounts.google.com/o/oauth2/auth?redirect_uri=http%3A%2F%2Flocalhostresponse_type=code&client_id=513776191582-5ncn9n03t8antakj32hheqpf74q4mg0d.apps.googleusercontent.com&scope=https%3A%2F%2Fwww%2Egoogleapis%2Ecom%2Fauth%2Fdrive https%3A%2F%2Fwww%2Egoogleapis%2Ecom%2Fauth%2Fdocuments https%3A%2F%2Fwww%2Egoogleapis%2Ecom%2Fauth%2Fdocuments%2Ereadonly https%3A%2F%2Fwww%2Egoogleapis%2Ecom%2Fauth%2Fdrive%2Efile https%3A%2F%2Fwww%2Egoogleapis%2Ecom%2Fauth%2Fdocuments%2Ereadonly https%3A%2F%2Fwww%2Egoogleapis%2Ecom%2Fauth%2Fdrive%2Ereadonly&access_type=offline&include_granted_scopes=true&state=state_parameter_passthrough_value&clientSecret=Vll3gaxJdvRIDsr30lmRGNaj&approval_prompt=force

    The program ate the “&” sign in the line: redirect_uri = http% 3A% 2F% 2Flocalhostresponse_type = code & client_id = 513776191582-

    should be like this: redirect_uri = http% 3A% 2F% 2Flocalhost & response_type = code & client_id = 513776191582-

    I think this is somehow related to the size of the window when copying text. He is decreasing.

  42. ttf says:

    Hello again,

    Is it possible to make Textify work in the Task Manager of Chrome?

  43. Stamimail says:

    Hi,
    Do you think it will be difficult to add a support for “tooltip capture”:
    To add a hotkey to capture the text of the current tooltip (when tooltip is displayed).

    • Hi,
      As far as I know, formally there’s no such thing as “the current tooltip”, any program can decide to display as many tooltips as it wants at any time. Integrating it into the flow of Textify is problematic, too, you can’t hover over a tooltip. Keyboard shortcut is problematic, too, since tooltips usually go away when a key is pressed.
      One can perhaps create a tool that, when launched, waits for a couple of seconds and then looks for all tooltips and grabs their texts. Or that just constantly monitors for tooltips and grabs their text.

      • Stamimail says:

        Keyboard shortcut is problematic, too, since tooltips usually go away when a key is pressed.

        I’m not sure it’s true. Not according to my tests.

        Maybe each app uses its custom tooltip mechanism.
        I think it will worth to check if it’s possible to add such a support only for the tooltips of Windows, and common browsers.

        Tooltips are normally pops up where the cursor is. Maybe this fact can give you something.

        • Depends on the program and the key that is pressed I guess.

          In any case, I know there’s an app that does exactly that – ToolTips Harvester. One small issue is that it doesn’t work on Windows 10 for some reason, and needs to be recompiled. I think the fix should be easy, so you might want to try and convince the author to release a fixed version.

  44. ZX says:

    Taking any bug reports? It trips on some content, possibly embedded spec char. Also it “misses the actual field” – it’s complicated :-).

    Repro: go into taskschd.msc, look into Actions tab with “Start a program” and a long command line – try to grab it 🙂

    The one I need had (in Textify):

    Start a program
    Details: %windir%\System32\reg.exe add hklm\SOFTWARE\Lenovo\SystemUpdatePlugin\scheduler

    and the whole string (that got cut was:
    add hklm\SOFTWARE\Lenovo\SystemUpdatePlugin\scheduler /v start /t reg_dword /d 1 /f /reg:32

    However, notice the ler[ ]/v <– 2 “spaces” – maybe one was a space-looking special char that tripped Textify

    Clicking Properties and then Edit on Action tab lets you access the whole string.

    These rows might be good to poke into for another reason – it acts out as it it’s a single field but it’s not – drag the divider between Action and Details and you’ll see that the Action part of the row gets shortened when you drag it too much to the left (the proof that it it a separate object).

    But things get more interesting (read weird 🙂 I wne to the upper panel (Name, Status, Triggers) and Textify got the “whole text”:

    LenovoSystemUpdatePlugin_WeeklyTask
    Status: Disabled, Triggers: At 15:56 every Monday of every week, starting 1/1/2000, Next Run Time: 4/13/2020 15:56:42, Last Run Time: 11/30/1999 00:00:00, Last Run Result: The task has not yet run. (0x41303), Author: Lenovo, Created: 1/1/2000 15:56:42

    => This is NOT THE ACTUAL content by any stretch of imagination (and I clicked at the “Triggers”) cell => some code was intercepting and almost doing .ToString() equiv before Textify got to it. That thing above is clearly pretty-printed.

    OK, found another one that you might have on your box:

    Microsoft / Windows / AppxDeploymentClient

    Textify “received”:
    Start a program
    Details: %windir%\system32\rundll32.exe %windir%\system32\AppxDeploymentClient.dll,AppxP

    Full param string was:
    %windir%\system32\AppxDeploymentClient.dll,AppxPreStageCleanupRunTask

    What’s important here: the cut was not on a space-like char but on a normal char (there could still be an embedded spec char) and it was at a different length (proof that it’s not a length problem).

    One guess – there is a containing or overlay-ed object on top of actual cells in a row – it absorbs the UI-event (or has a method that gets called by event processing). In either case it would be interesting to see if you have enough local info to try to penetrate through it (you’d have to detect/find underlying objects and then either directly locate and fetch the one under the mouse pointer or replay the click event.

    • Taking any bug reports?

      Sure, thanks for the feedback.

      Textify uses the UI Accessibility API, and displays what it gets. The target program can implement it however it wants, including truncating the text and doing ToString-like formatting.

      To verify that it’s not a Textify bug, you can use Microsoft’s inspect tool that displays UI Accessibility. It can be downloaded here.

      Other issues that are caused by a target program’s UI Accessibility implementation and cannot be fixed by Textify (while still using the UI Accessibility API):

  45. ZX says:

    OK, got that aspect, but can you check which weird char(s) end up tripping Textify and then keep a list/table of chars to scrub them instead of “thinking” that it’s the end of a string ? Can be particularly messy if Unicode (or even worse UTF8) is involved.

    The “Inspector” doesn’t trip at all. The string is intact (and copyable) from it’s UI. When in “watch cursor” mode it lands straight on the string, when in “watch focus” it lands on the list item (one level up) and the string is still intact.

    • The “Inspector” doesn’t trip at all.

      I looked at it. Looks like it works properly with UI Automation, but the same problem can be seen if you choose MSAA (Microsoft Active Accessibility), which is what Textify uses. UI Automation is a newer API, so perhaps it’s better to use it, but I think there were other problems with it. That’s the first time I see a case in which MSAA is problematic and UI Automation isn’t. I’m not sure it’s worth changing the used API just for this. And again, I suspect it’s actually a bug of Task Scheduler in the way it provides the accessibility text, at least for MSAA clients.

    • By the way,

      instead of “thinking” that it’s the end of a string

      As far as I can see, this problem is not related to what you’re describing, but there was another case with invisible Unicode characters that you might be interested in, see here.

  46. xpcxpc says:

    Textify applet does a good job. Each time you click to copy, there is only one line of text. How to select and copy all 200 lines of text at the bottom of the window? Each line of text may be a child window, and a text is the parent window. I want to copy all the child window text under the parent window.

  47. Norbert Esch says:

    20200410_Virustotal upload replies:
    Antiy-AVL: Trojan/Win32.Detplock;
    BitDefenderTheta: Gen:NN.ZexaF.34104.ru0@aiZKdXc
    Cyren : W32/Trojan.IEHU-5511
    Rising : Malware.Heuristic!ET#93% (RDMK:cmR
    GDATA still removes it to Quarantaine even though i sayed it soud not sca or remove it.How to stop it and why those others show such a behaviour?

    • The detections are false positives, and unfortunately it’s not something I control. I can try and contact the companies, but it’s time consuming, and happens again and again with new versions I release. You can contact the companies yourself and get a clarification, usually the detection is removed after it’s being checked.

      How to stop it

      Unfortunately I don’t have an answer for this. I suggest you to contact the antivirus company and ask them about it.

  48. Zulqarnain says:

    Sir ! How can we increas character limits ,it does not select all the text in window .

    • 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.

  49. zulqarnain sabir says:

    i gave a problem with using textify.I want to copy text from window here is the link to screenshot of that window https://bit.ly/2XAB7jI .

    The window consists of 300-400 lines,but textify copies around 120 lines.Is there a way i can only select lines that i need to copy.

    Waiting for your reply !

  50. Sim Scherer says:

    Your program is great but leaves me out.

    I have an IDE box, TEXTIFY only identifies the header, not the text. This text is unreadable, I need to know WHAT font it is, so that I can reinstall it. My font is possibly corrupted. Do you have anything that can identify the font?

    • TEXTIFY only identifies the header, not the text

      Textify relies on UI Automation. Unfortunately, not all text can be grabbed this way, depending the way the target program is implemented. There’s a tool from Microsoft called Inspect which shows automation-related information. It can be downloaded here. You can compare Textify and Inspect to make sure it’s not a bug in Textify.

      Do you have anything that can identify the font?

      I’m not familiar with a tool that can help with this, sorry.

Leave a Reply