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
textify_setup.exe (593.16 kB, changelog)
Latest version: v1.10.4
Source code
https://github.com/m417z/Textify
Demonstration
Translations
If you’d like to translate Textify to your language, please refer to this comment.
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,
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.
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.
No, there’s no such option.
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.
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,
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.
Do you think about adding OCR?
This can be a nice addition to Textify, but I don’t plan to develop it. I might get back to this idea one day in the future.
I can guess there are some open-source programs like this
http://capture2text.sourceforge.net/
or ShareX
http://talk.dynalist.io/t/running-ocr-with-sharex-to-quickly-grab-external-data-into-dynalist/670
I haven’t the experience to tell what OCR engine is better.
Textify is open source too, so maybe somebody will integrate the feature 🙂
ShareX is an excellent tool, but I haven’t tried its OCR feature.
Greenshot works well for this and has a OCR Plugin, as does OneNote, both use MicroSoft’s MODI and will be activated once installed, see https://getgreenshot.org/faq/how-can-i-use-greenshot-for-ocr/
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?
Textify is a Windows-only program. I know that there’s a similar application for Android, perhaps there’s something similar for iOS, too.
Link to Android?
I’ve been using Universal Copy. Eventually I discovered fooView, which does this and much more – now I’m using it on a daily basis, it’s an awesome app.
Thanks for sharing.
Can U make a portable version of this excellent program?please
There’s such an option already. See my reply here:
http://rammichael.com/textify/comment-page-2#comment-7452
textify_setup.exe (505.66 kB, changelog)
(Portable version included)
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.
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?
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.
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.this is so usefull for making summaries to study to thanks alot dude love it
What a useful app. Thanks!
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.hi
textify not complete with win10
With some apps
Hi,
See my reply here:
http://rammichael.com/textify/comment-page-1#comment-7332
my application in win7 compelet with textify
but in win10 not work
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 ]
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.]
Here’s the error message. What’s the application? Does it run as administrator? Does running Textify/Inspect as administrator helps?
very tanks
tixtify compelet
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
Replace “en” with “fa”.
Maybe one day.
thanks
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.
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,
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.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.
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 mean all of them. Currently either of them will close itself when unfocused.
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’ll look at implementing it for the next version.
That’s true for the built in web popup, but not for the Chrome/Firefox popup introduced in Textify v1.8.
Does it show a different text, or does it not appear at all? Perhaps it’s because Process Hacker runs as administrator?
–app= is just what I want!
Thank you.
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.
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.
Thank you for the info.
Textify is so handy, and satisfying in most cases.
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 forgot to update – starting with v1.8.3, you can set
key
to 0 to disable the keyboard shortcut.Thank you for telling me this.
How about adding a comment in the ini file?
Good idea, done. It also didn’t completely work in v1.8.3, should be fixed now with v1.8.7.
In v1.8.7, the “More Settings” window shows text as system ANSI, therefore Unicode characters saved in the ini file are displayed as garbled.
v1.8.6 and v1.8.3 were OK.
Actually, it should be the other way around. Unicode wasn’t supported so well, and now it is. The ini file should be saved with the UTF-16 encoding.
If you’re editing the ini file from the app, it should just work. If you’re editing the file directly, make sure to set the UTF-16 encoding or just save the file once in Textify.
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.
Hi,
Please see my reply here:
http://rammichael.com/textify/comment-page-1#comment-7332
Any chance you could write a 64bit version please?
Textify is a great tool 🙂
It can be done, but I see no visible advantage in doing it. The downside is that I’ll have two versions to maintain, distribute and manage.
True 🙂 I use it regularly, thanks for a great little tool.
Thanks for the other issue too. Emms xx
This is a fantastic app that has made my being able to troubleshoot and document a great deal easier. Thank you for creating it!
The first time I tried it, it would not select the text just the window title: https://pasteboard.co/I7EDRGU.png
It depends on the program and its support for the UI Automation API. See my reply here.
(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.
I didn’t understand, sorry. Can you make a screenshot or provide a video recording which demonstrates the issue?
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.
Thank you. Can you give me a 32-bit version of inspect?
Here you go.
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.
Mulit-Spaces was converted to 1 space. 🙁
It’s tricky to make WordPress format such a block of code, especially since I have a markdown plugin, but I think I fixed it.
You’re right, it happens with a standard message box. I tried your VBScript as well as a plain WinAPI call. It looks like a flaw of Windows. I’m afraid that there’s no way to fix it on Textify’s end.
Ok, I understand.
Nevertheless, thank you very much for this real great tool !
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 🙂
Нужно сделать окно программы поверх всех окон.
Какое окно? Это? Или это?
Конечно же вот это!
https://rammichael.com/wp-content/uploads/2016/03/Textify.png
ОК, а зачем? Есть разные программы которые позволяют это делать для любого окна, не только Textify. Да и в случае Textify главное окно не особенное и вообще не должно часто открываться. Не вижу смысла эту функцию встраивать в Textify.
Моё дело предложить…
Хотелось бы только заметить, что я предлагаю реально полезную функцию для утилиты, но вы упорно пытаетесь привинтить ей то, что там не нужно. Отвечу вам вашими же словами: для перевода есть другие хорошие программы, а конкретно QTranslate. Очень жаль, что вы отказываетесь прислушаться к совету.
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?
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.
Textify doesn’t seem to work on menu drop-down items. Is that fixable – I use ctrl+alt+middle click.
Cheers Phil D
Hi Phil,
The Alt key causes menus to go away, so one option is to change the hotkey. For example, the default shift+middle click should work.
Thanks, that works in most instances – except not quite where I actually want it. I will have to ask the developer of that program
Figured out a way around where it didn’t work – it’s a bit obscure so I won’t bore you with the details.
There’s one thing I wish Textify had: a copy button alongside Translate, Wiki P etc – I know I can hit Ctrl+C, but my hand is on the mouse… 🙂
Thanks again
scratch that, danged if I know why hadn’t discovered there was a context menu with Copy
You can also configure Textify so that it will auto-copy selected text. There’s an option for it in the ini file.
Oh, wow that’s fantastic – all I ever do is copy the text.
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.
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?
You’re welcome 🙂
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.
Thank you for your reply and information about Global accessibility Mode.
Hello, I’d like to thank you very much for letting me see such amazing software. China
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 ” .
Sorry, but don’t have any other tips, except for making sure that you did exactly as the post says. It should work, it works for me and for all other users so far.
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!
Check out my comment here.
You’re welcome, I’m glad that you like it 🙂
Версия 1.8 на XP:
“Порядковый номер 345 не найден в библиотеке DLL COMCTL32.dll”
Просто замечательное исключение
Что же это за функция такая ‘ordinal 345’
В предыдущей 1.7 такого не было
Привет из 2001-го (или максимум 2014-го)!
Вот исправленная версия:
https://drive.google.com/open?id=1ECDiRx5TmqNjIapoS6IXdQ4qyqG6N6jE
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. 🙁
First of all, you don’t have to go back to 1.7, you can configure 1.8 to act exactly like 1.7 did by modifying the settings.
What’s your default browser? Textify checks whether it’s Chrome or Firefox, and in this case, uses chrome.exe or firefox.exe with relevant command line parameters as described here.
I use Vivaldi. 1.7 opens to new tab without editing nothing, just like I want 🙂
Open “More settings” and remove the “popup-web!” prefix in each web button section (screenshot).
Thank you for your help, now 1.8 behave just like I like.
I’ll add now some own searches and some .bat scripts.
Thank you again this program. 🙂
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.
Textify 1.8
On Windows XP SP3 32 bits french
error message
L’ordinal est introuvable dans bibliothèque de liaisons dynamique COMCTL32.dll
Hello from 2001 (or at most from 2014)!
Here’s a fixed version:
https://drive.google.com/open?id=1ECDiRx5TmqNjIapoS6IXdQ4qyqG6N6jE
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.
I already use “%cs” (tried without too). Problem is “|” inside text, for example, not quotes. But I just asked. Apologies. Case closed.
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:
A:
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!
It’s up to the target program, Textify is not responsible for the limit and cannot remove it. Depending on the target program, you might want to try an alternative approach such as using SysExporter.
thankyou! you are best man.
🙂 i very so much love your tools .
tools very good, but it can’t get photoshop and huodini software UI text .
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.
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.
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:
Source:
https://stackoverflow.com/a/21797208
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).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?
I’ll add more of those. Here’s a list I can use:
https://www.compart.com/en/unicode/category/Cf
I think it’s an overkill to add this kind of configuration at this point.
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
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.
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
All of that information is wonderful. Thanks again so much for continuing making this great software even greater!
By the way, excellent online tool here to identify zero-width and other special characters hidden in a string:
https://csharpindepth.com/Articles/Unicode
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
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
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.
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?
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,
It shouldn’t do that. Why do you think it’s Textify?
These are false positives. See also my comments here.
Eugenius, I am using 1.8.1 at the moment (and before that all the previous versions). My current OS is Windows 10 Enterprise 1709 x64. The behavior you describe I have never seen before, definitely not caused by Textify in my machine or several testing virtual machines.
If another program/process is causing this problem, there are a few places in your system worth investigating. The following article is good starting point in that topic:
https://www.howtogeek.com/173347/beginner-geek-everything-you-need-to-know-about-disabling-startup-programs-on-windows/
Thanks,
Ruy
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.
It’s a known issue. See the discussion here.
As a workaround, you can use Ctrl+C to copy the message box contents.
Well, then this bug cannot be fixed.
Cannot be fixed by Textify. It’s clearly a bug in Windows, so it can be fixed by Microsoft.
Ok, but does Textify skip any characters anymore?
Textify doesn’t remove any characters by default. There’s an option to remove invisible Unicode characters, but it’s not enabled by default, and it’s not relevant to the issue anyway.
Hello again,
Is it possible to make Textify work in the Task Manager of Chrome?
Hi,
Not really, the same answer from the previous time applies:
https://rammichael.com/textify/comment-page-3#comment-11006
If proper accessibility support will be added to the Chrome Task Manager, Textify will work with it. You can report an issue to the Chrome/Chromium team about it.
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.
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.
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.
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):
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.
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,
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.
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.
That’s not possible with Textify. You can try this tip as a workaround, which can make manual copying easier, but it still would be quite tedious for 200 items.
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.
Unfortunately I don’t have an answer for this. I suggest you to contact the antivirus company and ask them about it.
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:
A:
I found something other that works perfectly
Hello Zulqarnain,
Could you share with us the solution you found?
Thanks
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 !
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 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.
I’m not familiar with a tool that can help with this, sorry.