FindText - Capture screen image into text and then find it
-
- Posts: 1
- Joined: 01 Jan 2020, 15:07
Re: FindText - Capture screen image into text and then find it
Hi feiyue, thanks for this! I apologize for this simple question. I've spent hours and cannot seem to figure it out. How do I use a portion of your function to determine whether a text string is on the screen? I just need to simply determine if the text "Enter" is shown anywhere on screen. If (FindText(...) = yes), then enter some text in a field on the screen; else return. Thanks for help on this!
-
- Posts: 6
- Joined: 19 Jan 2020, 00:49
Re: FindText - Capture screen image into text and then find it
I tried something similar to that and this one gave me the same errorfeiyue wrote: ↑19 Jan 2020, 05:40@ahk nooblie I think you can do this:Code: Select all
#MaxThreadsPerHotKey 3 #NoEnv SetDefaultMouseSpeed, 0 F2:: Toggle := !Toggle Loop { Text1:="|<>*160$58.D6k20A0001WP080k000ABU0U30000U6lmMDVltm0P9f0n8a8c1hUs34WMWU6q3UAHxXz3PM90l86869gWa34WMWD6lm8AFtVu" if (ok:=FindText(818,625,973,730, 0, 0, Text1)) CoordMode, Mouse X:=ok.1.1, Y:=ok.1.2, w:=ok.1.3, h:=ok.1.4 Random, i, 0, w Random, j, 0, h Click, % X+i, % Y+j Text2:="|<>*182$59.Tzzzzzzzzx0000000006000000000A000000000M000000000k3y0000001U6A00400k30AA00801U60MMswtszUA0lX9AWNa0M1y4P10mA0k3ATnmDYM1U6AE1Yn8k30A8nl9aFU60MMwwRwVUA000000000M000000000k000000001U0000000030000000005zzzzzzzzzo" if (ok:=FindText(810,548,958,607, 0, 0, Text2)) CoordMode, Mouse X:=ok.1.1, Y:=ok.1.2, w:=ok.1.3, h:=ok.1.4 Random, i, 0, w Random, j, 0, h Click, % X+i, % Y+j If (!Toggle) Break } Return
- Attachments
-
- Annotation 2020-01-19 131654.png (17.22 KiB) Viewed 5627 times
Re: FindText - Capture screen image into text and then find it
Correct it:
Code: Select all
#MaxThreadsPerHotKey 3
#NoEnv
SetDefaultMouseSpeed, 0
#Include <FindText>
F2::
Toggle := !Toggle
Loop
{
Text1:="|<>*160$58.D6k20A0001WP080k000ABU0U30000U6lmMDVltm0P9f0n8a8c1hUs34WMWU6q3UAHxXz3PM90l86869gWa34WMWD6lm8AFtVu"
if (ok:=FindText(818,625,973,730, 0, 0, Text1))
CoordMode, Mouse
X:=ok.1.1, Y:=ok.1.2, w:=ok.1.3, h:=ok.1.4
Random, i, 0, w-1
Random, j, 0, h-1
MouseClick,, X+i, Y+j
Text2:="|<>*182$59.Tzzzzzzzzx0000000006000000000A000000000M000000000k3y0000001U6A00400k30AA00801U60MMswtszUA0lX9AWNa0M1y4P10mA0k3ATnmDYM1U6AE1Yn8k30A8nl9aFU60MMwwRwVUA000000000M000000000k000000001U0000000030000000005zzzzzzzzzo"
if (ok:=FindText(810,548,958,607, 0, 0, Text2))
CoordMode, Mouse
X:=ok.1.1, Y:=ok.1.2, w:=ok.1.3, h:=ok.1.4
Random, i, 0, w-1
Random, j, 0, h-1
MouseClick,, X+i, Y+j
If (!Toggle)
Break
}
Return
-
- Posts: 6
- Joined: 19 Jan 2020, 00:49
Re: FindText - Capture screen image into text and then find it
Xiexie my friend.feiyue wrote: ↑19 Jan 2020, 21:37Correct it:Code: Select all
#MaxThreadsPerHotKey 3 #NoEnv SetDefaultMouseSpeed, 0 #Include <FindText> F2:: Toggle := !Toggle Loop { Text1:="|<>*160$58.D6k20A0001WP080k000ABU0U30000U6lmMDVltm0P9f0n8a8c1hUs34WMWU6q3UAHxXz3PM90l86869gWa34WMWD6lm8AFtVu" if (ok:=FindText(818,625,973,730, 0, 0, Text1)) CoordMode, Mouse X:=ok.1.1, Y:=ok.1.2, w:=ok.1.3, h:=ok.1.4 Random, i, 0, w-1 Random, j, 0, h-1 MouseClick,, X+i, Y+j Text2:="|<>*182$59.Tzzzzzzzzx0000000006000000000A000000000M000000000k3y0000001U6A00400k30AA00801U60MMswtszUA0lX9AWNa0M1y4P10mA0k3ATnmDYM1U6AE1Yn8k30A8nl9aFU60MMwwRwVUA000000000M000000000k000000001U0000000030000000005zzzzzzzzzo" if (ok:=FindText(810,548,958,607, 0, 0, Text2)) CoordMode, Mouse X:=ok.1.1, Y:=ok.1.2, w:=ok.1.3, h:=ok.1.4 Random, i, 0, w-1 Random, j, 0, h-1 MouseClick,, X+i, Y+j If (!Toggle) Break } Return
-
- Posts: 2
- Joined: 24 Jan 2020, 03:15
Re: FindText - Capture screen image into text and then find it
hello
im new here and just started using ahk and learning its language
can anyone please learn me how to use this script?
i puted the script in a ahk file and added this code :
F2::
FindText( 0, 0, 1000, 1000, 0.1, 0.1, text, ScreenShot:=1
, FindAll:=1, JoinText:=0, offsetX:=20, offsetY:=10 )
return
where should i copy my text to search
how should i know what happend?
my need = i need to detect the error's in a registration page like this :
Аккаунт с таким именем уже существует
and its in red color
thanks
im new here and just started using ahk and learning its language
can anyone please learn me how to use this script?
i puted the script in a ahk file and added this code :
F2::
FindText( 0, 0, 1000, 1000, 0.1, 0.1, text, ScreenShot:=1
, FindAll:=1, JoinText:=0, offsetX:=20, offsetY:=10 )
return
where should i copy my text to search
how should i know what happend?
my need = i need to detect the error's in a registration page like this :
Аккаунт с таким именем уже существует
and its in red color
thanks
-
- Posts: 45
- Joined: 02 Jul 2019, 11:34
Re: FindText - Capture screen image into text and then find it
This weekend I spent some time learning how to use classes in AHK, and I have come up with a tool designed for FindText that I thought I should share.
PanelManager
Insert and test
-
- Posts: 90
- Joined: 22 Jul 2016, 16:28
Re: FindText - Capture screen image into text and then find it
I want to perform a findtext and do a msgbox with the total number of results found.
Example I have 100 items on my screen. I know how to use findtext to find the first item. I only need help to msgbox the total of itens found on the screen, could someone help? (My english is bad)
Example I have 100 items on my screen. I know how to use findtext to find the first item. I only need help to msgbox the total of itens found on the screen, could someone help? (My english is bad)
Re: FindText - Capture screen image into text and then find it
MsgBox, % ok.MaxIndex()
-
- Posts: 90
- Joined: 22 Jul 2016, 16:28
-
- Posts: 90
- Joined: 22 Jul 2016, 16:28
Re: FindText - Capture screen image into text and then find it
Found the issue! changed the maximum number to 1.000.000 in findtext source instead of 1024. 1024 is low when counting individual pixels total.
Re: FindText - Capture screen image into text and then find it
Hello. I first want to thank the author and other contributors to this thread. Thanks to you, I've been able to create one heck of a robust (compared to my original ImageSearch version) AHK script.
Last edited by OMGmarc on 06 Feb 2020, 20:41, edited 1 time in total.
Re: FindText - Capture screen image into text and then find it
Hello, thanks for a great script! However I am facing issues when using the "console" to capture the pattern on one particular PC all of a sudden.
I was able to open the script and capture the pattern of interest and then incorporate the code in my own script. But suddenly it stopped working on one particular machine without any apparent reason. This PC has been running as a headless system entirely disconnected from Internet and other user interference for the last few months. It was working entirely fine before this. It is a win 10 machine.
What happens now is that when I open the FindText script to capture the pattern, the system doesn't react to right clicks and I am unable to capture the pattern or do anything with the right click. The only way to close the script is to use the task manager.
I also seem to be unable to use Click commands in scripts so might be an underlying issue at work.. Anyways, your feedback would be most appreciated.
I was able to open the script and capture the pattern of interest and then incorporate the code in my own script. But suddenly it stopped working on one particular machine without any apparent reason. This PC has been running as a headless system entirely disconnected from Internet and other user interference for the last few months. It was working entirely fine before this. It is a win 10 machine.
What happens now is that when I open the FindText script to capture the pattern, the system doesn't react to right clicks and I am unable to capture the pattern or do anything with the right click. The only way to close the script is to use the task manager.
I also seem to be unable to use Click commands in scripts so might be an underlying issue at work.. Anyways, your feedback would be most appreciated.
Re: FindText - Capture screen image into text and then find it
Just a small update from me: although I couldn't get right click to work, I was able to use Ctrl button to capture the pattern instead. Still trying to figure out why it stopped working, though...
-
- Posts: 45
- Joined: 02 Jul 2019, 11:34
Re: FindText - Capture screen image into text and then find it
@Bearvius
Inside the GUI function, you can add a line to reset the hotkey "conditions" maybe you have changed them?
inside the capture section you can put this line near the top, and it may fix your issue. Maybe you have put other conditional hotkeys into your script and it is affecting this library. I had a similar issue myself when trying to use this library as part of a larger script. it should look like this
the section your looking for in the code starts with
Inside the GUI function, you can add a line to reset the hotkey "conditions" maybe you have changed them?
inside the capture section you can put this line near the top, and it may fix your issue. Maybe you have put other conditional hotkeys into your script and it is affecting this library. I had a similar issue myself when trying to use this library as part of a larger script. it should look like this
Code: Select all
;------------------------------
Hotkey, IfWinActive
Hotkey, $*RButton, ft_RButton_Off, On
Code: Select all
if (cmd="Capture") or (cmd="CaptureS")
Re: FindText - Capture screen image into text and then find it
I started experimenting with this group of functions and really like it. I wish it was a class so as not to add so many functions to the global scope but I'll worry about fixing that later.
I have a question that I wasn't able to answer from the docs. Many searches end up looking like:
0000000000000000000______0
00000000000000000000______
000000000000000000000000__
000000000000000000000000__
00000000000000000000000___
I have a question that I wasn't able to answer from the docs. Many searches end up looking like:
0000000000000000000______0
00000000000000000000______
000000000000000000000000__
000000000000000000000000__
00000000000000000000000___
- is there a way to wildcard some or part of the graphic?
- Is there somewhere I can read more about GrayDiff, Color, ColorPos, ColorDiff?
-
- Posts: 6
- Joined: 12 Feb 2020, 19:14
Re: FindText - Capture screen image into text and then find it
Hello,
Does it possible to find text from hBitmap directly?
thanks!
Does it possible to find text from hBitmap directly?
thanks!
- tobsto occupied
- Posts: 186
- Joined: 20 Feb 2020, 09:34
- Contact:
Re: FindText - Capture screen image into text and then find it
ok , got a real problem as of lately over here thats been bugging the hell out of my noob mind, ive been tinkering with a script to autolaunch my games that use game launchers , which have buttons like > Play< or > Launch Game<
this is what ive gotten to work with from chunjee>
and this is how ive modified it , both dont do shit>
these are my coords>
x>1655 z>881 w>530 h>357 for active window
and these are for the mouse position aka pointed on the play button> x>428 y>45 w>89 h>29
this is what ive gotten to work with from chunjee>
Code: Select all
#NoTrayIcon
#SingleInstance, force
SetBatchLines, -1
#Include node_modules
#Include graphicsearch.ahk\export.ahk
oGraphicSearch := new graphicsearch()
; ~~~ variables ~~~
; searchable graphics
launchGraphic := "|<launch>**25$63.k0DyD1lzs7y01ztwSDzUzk0zzDXlzyTy07XtwSDbnnk0wTDXlwyyS00TtwSD7rUk03zDXlsyw607ztwSD7bUk0zzDXlsyw607ttwSD7rUk1sDDXlsyw60D3twSD7nns3wzjblsyTzzrzwzyD7nzzyzrXzlsS7zznysDyC1UzU"
#p::
CoordMode, Mouse, Screen
result := oGraphicSearch.search(0, 0, A_ScreenWidth, A_ScreenHeight, 0, 0, launchGraphic)
if (result) {
; click all found images
for i, obj in result {
Click, obj.x, obj.y
sleep, 300
}
}
return
Code: Select all
#SingleInstance, force
SetBatchLines, -1
#Include node_modules
#Include graphicsearch.ahk\export.ahk
oGraphicSearch := new graphicsearch()
; ~ variables ~
; searchable graphics
launchGraphic := "|<Play>**25$63.k0DyD1lzs7y01ztwSDzUzk0zzDXlzyTy07XtwSDbnnk0wTDXlwyyS00TtwSD7rUk03zDXlsyw607ztwSD7bUk0zzDXlsyw607ttwSD7rUk1sDDXlsyw60D3twSD7nns3wzjblsyTzzrzwzyD7nzzyzrXzlsS7zznysDyC1UzU"
#p::
CoordMode, Mouse, Screen
result := oGraphicSearch.search(1655, 530, A_ScreenWidth, A_ScreenHeight, 881, 357, launchGraphic)
if (result) {
; click all found images
for i, obj in result {
Click, 428, 45
sleep, 300
}
}
return
x>1655 z>881 w>530 h>357 for active window
and these are for the mouse position aka pointed on the play button> x>428 y>45 w>89 h>29
-
- Posts: 45
- Joined: 02 Jul 2019, 11:34
Re: FindText - Capture screen image into text and then find it
You are using some kind of fork of the findtext library. That looks pretty interesting actually share where you got that class based version of this libtobsto occupied wrote: ↑20 Feb 2020, 09:41ok , got a real problem as of lately over here thats been bugging the hell out of my noob mind, ive been tinkering with a script to autolaunch my games that use game launchers , which have buttons like > Play< or > Launch Game<
this is what ive gotten to work with from chunjee>
these are my coords>
x>1655 z>881 w>530 h>357 for active window
and these are for the mouse position aka pointed on the play button> x>428 y>45 w>89 h>29
Edit: Did a little digging since I was interested. the Page was here
They did a pretty damn good job converting all of these functions into one class. I can use this to break up the search areas into different instances of the class
OK so to answer your question, It looks as though you are using the syntax of the class incorrectly. Once you have created the class object, you can use oGraphicSearch.Find("Standard Findtext parameters go here") which would replace the oGraphicSearch.search() you have. It looks like .search is actually added to this class specially, and it is a way for the script to use an object for its settings instead of a string of options as the input.
So you would create an object with the same structure as :
Code: Select all
static optionsObj := { "x1": 0
, "y1": 0
, "x2": A_ScreenWidth
, "y2": A_ScreenHeight
, "err0": 0
, "err1": 0
, "screenshot": 1
, "findall": 1
, "joinstring": 1
, "offsetx": 1
, "offsety": 1 }
It looks like he designed it so that you can omit the object completely to do a default search, or only include portions of the object to use default for the rest of the settings.
- tobsto occupied
- Posts: 186
- Joined: 20 Feb 2020, 09:34
- Contact:
Re: FindText - Capture screen image into text and then find it
well , im sorry , but i dont understand diddly , what am i supposed to do in order for it to work , how and what do i do with my coordinates and change what for it to search for different text or maybe even both , that way i just have to change coordinates but it searches for both ^Play^ and ^Launch Game^, sorry for being such a noob
Re: FindText - Capture screen image into text and then find it
Yes this is true. I will post more about the fork in the coming week once I can finalize and test things.thebbandit wrote: ↑20 Feb 2020, 15:15It looks like he designed it so that you can omit the object completely to do a default search, or only include portions of the object to use default for the rest of the settings.
This is one benefit, yup.thebbandit wrote: ↑20 Feb 2020, 15:15I can use this to break up the search areas into different instances of the class
For anyone curious, please keep an eye on https://chunjee.github.io/graphicsearch.ahk for documentation and features.
Return to “Scripts and Functions (v1)”
Who is online
Users browsing this forum: No registered users and 65 guests