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 (505.66 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:

342 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

    • RaMMicHaeL says:

      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,

    • RaMMicHaeL says:

      Hi Fabrice,

      I can’t think of a reason for Office 2013 or a VC++ redistributable package to conflict with Textify. You can try comparing the functionality with Microsoft’s Inspect tool, and see if the issue is with Textify or with the system.

  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?

    • RaMMicHaeL says:

      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.

    • RaMMicHaeL says:

      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 =)

    • RaMMicHaeL says:

      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.

  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.

    • RaMMicHaeL says:

      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.

    • RaMMicHaeL says:

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

      • Denis says:

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

        • RaMMicHaeL says:

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

          • Denis says:

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

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

            • RaMMicHaeL says:

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

              • Denis says:

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

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

  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?

    • RaMMicHaeL says:

      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.

Leave a Reply