Форум программистов, компьютерный форум, киберфорум
Pascal (Паскаль)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.71/7: Рейтинг темы: голосов - 7, средняя оценка - 4.71
 Аватар для svetarose23
0 / 0 / 0
Регистрация: 24.09.2017
Сообщений: 6

Поиск определенного текста на экране

24.09.2017, 20:28. Показов 1474. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток.
Я хочу попросить о помощи пользователей данного форума, т.к. мой уровень знаний для написания этого скрипта слишком мал.

Суть в следующем:
Мне нужен сценарий, который каждые 100 миллисекунд будет проверять, появилась ли фраза «umail» на экране, и если появится , то он мгновенно выполнит нажатие клавиши «Tab».

Надеюсь, что объяснила доходчиво Я буду очень благодарна тому, кто поможет с написанием сценария. В долгу не останусь!
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
24.09.2017, 20:28
Ответы с готовыми решениями:

Поиск определенного пикселя на экране
Здравствуйте. Я хочу найти определённый пиксель на экране. Я опробовал способ через opencv: сравнение шаблона со скриншотом монитора,...

Поиск определенного пикселя на экране
Всем привет. Пишу игрового бота. Дано: Есть часть экрана размером в 1080х871 Нужно: Найти в этой части экрана пиксель с RGB цветом 231...

Поиск на экране определенного оттенка цвета
Можно ли сделать так чтобы программа искала на мониторе определенный оттенок цвета, который будет дан ей и нажимала левой кнопкой мыши для...

9
Эксперт Pascal/Delphi
2388 / 1300 / 1492
Регистрация: 29.08.2014
Сообщений: 4,665
26.09.2017, 10:09
раз уровень мал, то и писать в принципе все равно на чем(писать не буду, т.к. очень на вредное ппо похоже)
алгоритм, как я вижу, следующий:
1. берем или C# или PascalABC.net и еще какую-нибудь бесплатную распозновалку (tessnet2)
2. каждые 100 мс делаем скриншот и скармливаем его распозновалке(сомневаюсь что в 100 мс уложится с распознованием )
3. получаем список строк/слов и в нем ищем знакомый текст если нашли то с помощью winapi отправляем нажатие клавиши Tab(кому тоже вопрос).
0
 Аватар для svetarose23
0 / 0 / 0
Регистрация: 24.09.2017
Сообщений: 6
26.09.2017, 12:36  [ТС]
дело в том, что он не просто мал, он вообще минимален...
а можно как-то осуществить данный скрипт, если он будет проверять каждые 100мс log файл в формате .txt и осуществлять нажатие клавиши?
только все это должно происходить в фоновом режиме
0
Эксперт Pascal/Delphi
2388 / 1300 / 1492
Регистрация: 29.08.2014
Сообщений: 4,665
26.09.2017, 16:31
на каком языке программирования это надо?
0
 Аватар для svetarose23
0 / 0 / 0
Регистрация: 24.09.2017
Сообщений: 6
26.09.2017, 16:38  [ТС]
да честно говоря сама в этом вообще не разбираюсь. я думаю на том, который будет самый быстрый по производительности
0
Модератор
10430 / 5718 / 3404
Регистрация: 17.08.2012
Сообщений: 17,394
29.09.2017, 21:14
Цитата Сообщение от svetarose23 Посмотреть сообщение
на том, который будет самый быстрый по производительности
Вы уверены, что Вам требуется программа на ассемблере? Переместить тему в ассемблерную ветку?

Добавлено через 3 часа 28 минут
Хотя...
0
Модератор
Эксперт по электронике
 Аватар для ФедосеевПавел
8659 / 4494 / 1669
Регистрация: 01.02.2015
Сообщений: 13,905
Записей в блоге: 12
29.09.2017, 23:15
Не надо в ассемблер.

Думаю, что топикстартер играет в какую-то игрушку с призами, которые получает тот, кто быстрее нажмёт появляющуюся виртуальную кнопку на экране.

А это на асме реализовать можно, но за 100 лет.
0
Модератор
10430 / 5718 / 3404
Регистрация: 17.08.2012
Сообщений: 17,394
29.09.2017, 23:23
ФедосеевПавел, может быть.

svetarose23, Вы пока что путаетесь в элементарных понятиях (к примеру, программа, скрипт и сценарий - далеко не одно и то же). И, полагаю, не вполне представляете, чего же Вы на самом деле желаете. К примеру, пусть будет программа с проверкой файла... Так, простой вопрос, навскидку: а что делать, если в файле появилось это самое umail? Отсылать <Tab> в какое-то окно при каждой проверке файла на вшивость? Каждые 100 мс? Да ладно!

Вот Вам для затравки пример в Lazarus (это среда программирования для Free Pascal):
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
unit Unit1;
 
{$mode objfpc}{$H+}
 
interface
 
uses
  Windows, Classes, SysUtils, Forms, Controls, Dialogs, ExtCtrls, Menus;
 
type
 
  { TForm1 }
 
  TForm1 = class(TForm)
    MenuItem1: TMenuItem;
    PopupMenu1: TPopupMenu;
    Timer1: TTimer;
    TrayIcon1: TTrayIcon;
    procedure FormActivate(Sender: TObject);
    procedure MenuItem1Click(Sender: TObject);
    procedure Timer1Timer(Sender: TObject);
  private
    { private declarations }
  public
    { public declarations }
  end;
 
var
  Form1: TForm1;
  Str: TStringList;
 
implementation
 
{$R *.lfm}
 
{ TForm1 }
 
 
//действия при старте программы
procedure TForm1.FormActivate(Sender: TObject);
begin
    Form1.Hide; //прячем форму
    Str := TStringList.Create; //создаём список строк
    TrayIcon1.Show; //показываем иконку в трее
    Timer1.Enabled := true //запускаем таймер
end;
 
//процедура для контекстного меню для иконки в трее
procedure TForm1.MenuItem1Click(Sender: TObject);
begin
  TrayIcon1.Hide; //скрываем иконку в трее
  Form1.Close //закрываем программу
end;
 
//процедура при срабатывании таймера
procedure TForm1.Timer1Timer(Sender: TObject);
var i: integer; //счётчик строк
begin
  if FileExists('d:\log.txt') //если файл существует,
    then Str.LoadFromFile('d:\log.txt') //то скопировать его в список строк
    else Exit; //иначе выйти из процедуры досрочно
  //...если не вышли из процедуры, то...
  for i := 0 to Str.Count - 1 do //сканируем строки
    if pos('umail', Str.Strings[i]) > 0 //если в строке есть целевое слово 'umail',
      then begin //то...
        //вместо нижеследующих  действий Вам нужно создать нужные Вам действия
        //например, по отсылке нажатия клавиши <Tab> в выбранное Вами окно
        Timer1.Enabled := false; //останавливаем таймер
        Str.Destroy; //уничтожаем список строк
        ShowMessage('UMAIL!'); //выводим сообщение
        Form1.Close //после реакции пользователя закрываем программу
      end
end;
 
end.
В design time не забудьте назначить интервал таймеру в 100 мс и иконку для трея. Если иконку для трея не назначить, программа будет почти невидима: в панели задач её не будет, а в трее без иконки программа будет весьма малозаметной. Чтобы от программы не несло за километр зловредом, скрывать программу в диспетчере задач я не стал. И не уговаривайте, коды зловредов на этом форуме публиковать запрещено.

Проект: Test.zip
0
 Аватар для svetarose23
0 / 0 / 0
Регистрация: 24.09.2017
Сообщений: 6
05.10.2017, 10:53  [ТС]
Только дошли руки испробовать ваш код, но видимо появляется какая-то ошибочка при билдинге в exe
Миниатюры
Поиск определенного текста на экране  
0
 Аватар для svetarose23
0 / 0 / 0
Регистрация: 24.09.2017
Сообщений: 6
05.10.2017, 11:12  [ТС]
05.10.2017 10:11 Смогла билднуть программу, но теперь бы еще понять, как добавить нажатие клавиши Tab
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
05.10.2017, 11:12
Помогаю со студенческими работами здесь

Поиск определенного текста в TextBox
Предположим у нас есть текстовое окно TextBox в нем мы записали куча текста и нам нужно найти определенный текст. то есть сделать команду...

Поиск и извлечение определенного числа из текста
Помогите кто сможет. Есть столбец с пояснениями, в нем по мимо текста есть номер отдела, вопрос в том как вытащить его в сосоднюю ячейку....

Поиск определённого текста в PDF-файле
Привет, Мне необходимо найти определенный текст в PDF-файле. Если текст найден, то должно выполняться некоторое действие. Я набросал...

Поиск по файлу определенного фрагмента текста
Добрый день. Столкнулся я со следующей проблемой и посему прошу совета у более опытных товарищей. Необходимо создать программу...

Поиск текста в ячейках определенного цвета
Добрый день, уважаемые программисты. Помогите решить вопрос. В книге находится несколько листов, некоторые ячейки которых...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru