1

Тема: AHK:Чтение txt и открытие файла из строки.

Здравствуйте.
Буду очень признателен тому, кто подскажет куском кода (либо даст информацию), как реализовать следующее:

Есть txt, в котором одна из строк отмечена знаком ">"

1095.xxx 0078.xxx
1030.xxx>0047.xxx


Необходим поиск строки со знаком ">"
Замена знака ">" на "_"
и последующий поиск в заданной директории получившегося файла, с дальнейшим открытием в программе.
(где .xxx - расширение файла)
Открытие в окно программы я уже сам как-нибудь, мне бы главное разобраться с поиском и заменой.
В самом txt изменения вносить не стоит, так как текстовик обрабатывает еще один js

файлы в директории вот такого вида
1030_0047 (*psd)

2

Re: AHK:Чтение txt и открытие файла из строки.

Информация несколько противоречивая. Если в "1030.xxx>0047.xxx" заменить ">" на "_", получится "1030.xxx_0047.xxx", а не "1030_0047".

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

3

Re: AHK:Чтение txt и открытие файла из строки.

Простейший вариант (если > действительно только в одной строке):


Path = D:\Temp\file.txt

Loop, Read, %Path%
{
    IfInString, A_LoopReadLine, >
    {
        StringReplace, FileName, A_LoopReadLine, >, _
        Break
    }
}

MsgBox, %FileName%

4

Re: AHK:Чтение txt и открытие файла из строки.

teadrinker:
формат файла по умолчанию не виден. в директории он как 1030_0047( но мы то знаем что он psd)

Ymp:

Я читаю строку, заменяю, а дальше что? Изменения будут в самом txt (мне этого не нужно) Другой скрипт использует этот  txt.

Мне необходимо открыть файл, который отмечен ">" в txt

5

Re: AHK:Чтение txt и открытие файла из строки.

Открытие в окно программы я уже сам как-нибудь

Изменения не будут в самом txt, изменения будут в переменной FileName

6 (изменено: Maxfashko, 2012-12-03 19:01:01)

Re: AHK:Чтение txt и открытие файла из строки.

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

7

Re: AHK:Чтение txt и открытие файла из строки.

В примере замените
Msgbox %filename% на Run %filename%

8

Re: AHK:Чтение txt и открытие файла из строки.

Не совсем так. Нужно

Run "путь\к\исполняемому\файлу\программы.exe" "%filename%"
Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

9

Re: AHK:Чтение txt и открытие файла из строки.

В случае, если расширение файла привязано к существующему приложению — файл будет открыт «как из проводника windows»

10

Re: AHK:Чтение txt и открытие файла из строки.

Ну, мы же не знаем, привязано, или нет. Мой вариант сработает в любом случае.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

11

Re: AHK:Чтение txt и открытие файла из строки.

Точно

12 (изменено: Maxfashko, 2012-12-03 20:19:16)

Re: AHK:Чтение txt и открытие файла из строки.

Как ни странно не работает:(
Программы не открывают файла.
Происходит подгрузка как будто выполняется скрипт, и все.
Либо нужно установить директорию, в котором будет производиться поиск???

13

Re: AHK:Чтение txt и открытие файла из строки.

Напиши код, как он выглядит у тебя.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

14 (изменено: Maxfashko, 2012-12-03 20:37:21)

Re: AHK:Чтение txt и открытие файла из строки.

либо так

F1::
Path = D:\1.txt

Loop, Read, %Path%
{
    IfInString, A_LoopReadLine, >
    {
        StringReplace, FileName, A_LoopReadLine, >, _
        Break
    }
}

Run, %FileName%

тогда ошибка "не удаётся найти указанный файл"

либо так

F1::
Path = D:\1.txt

Loop, Read, %Path%
{
    IfInString, A_LoopReadLine, >
    {
        StringReplace, FileName, A_LoopReadLine, >, _
        Break
    }
}

Run, C:\Program Files\Adobe\Adobe Photoshop CS5 (64 Bit)\Photoshop.exe, %FileName%

тут не происходит ничего кроме активации окна ps
файл назван в txt 123>123
в директории 123_123

15 (изменено: teadrinker, 2012-12-03 20:47:08)

Re: AHK:Чтение txt и открытие файла из строки.

Path = D:\1.txt

Loop, Read, %Path%
{
    IfInString, A_LoopReadLine, >
    {
        StringReplace, FileName, A_LoopReadLine, >, _
        Break
    }
}

MsgBox, %FileName%

Такой код что выдаёт?

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

16

Re: AHK:Чтение txt и открытие файла из строки.

то же, что во втором примере. активирует ps и все

17

Re: AHK:Чтение txt и открытие файла из строки.

Он ничего не может активировать. Смотри внимательно, там не Run, а MsgBox. Вот я и спрашиваю, какое сообщение он выдаёт.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

18

Re: AHK:Чтение txt и открытие файла из строки.

Если менять программы, тоже самое

19 (изменено: Maxfashko, 2012-12-03 21:02:36)

Re: AHK:Чтение txt и открытие файла из строки.

123_123

20

Re: AHK:Чтение txt и открытие файла из строки.

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

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

21

Re: AHK:Чтение txt и открытие файла из строки.

См сообщение вверху

22

Re: AHK:Чтение txt и открытие файла из строки.

Maxfashko пишет:

123_123

Так, уже лучше. Теперь будем соображать. Это мы знаем, что файл .psd. А компьютер не знает, что мы под этими цифрами имеем в виду именно файл 123_123.psd. Соответственно, к полученному тексту нужно добавить расширение:

FileName .= ".psd"

Потом, когда мы отдаём команду Run, если скрипт не находится в той же папке, где лежат эти файлы, нужно ещё указать расположение файла, который мы хотим запустить, т. е. приписать к нему путь.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

23

Re: AHK:Чтение txt и открытие файла из строки.

Спасибо огромное teadrinker!
Работает.

Вернусь немного назад. Если не сложно, как можно обойти лишнее в имени файла?
поясняю:
Как я писал, в txt  у меня строки вида:

2022.psd 123.jpg
1112.psd 124.jpg
2033.psd>234.jpg

с этим файлом работает Ps посредством js
читает строку открывает psd-> открывает jpg, ставит знак что сейчас выполняется именно эта строка. сохраняет
как 2033_234 (psd)
Теперь то мне и нужно открыть этот файл в другой программе.

Но в строке "имя" стоит _.psd и _.jpg .

Как избавиться от лишних символов?

Заранее премного благодарен за помощь и терпение.

24

Re: AHK:Чтение txt и открытие файла из строки.

StringReplace

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

25 (изменено: serzh82saratov, 2012-12-03 21:55:20)

Re: AHK:Чтение txt и открытие файла из строки.

Вам нужно из

2022.psd 123.jpg
1112.psd 124.jpg
2033.psd>234.jpg

Получить 234.jpg???
Или как?

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

26

Re: AHK:Чтение txt и открытие файла из строки.

Мне нужно из 2022.psd 123.jpg
Получить 2022_123*расширение

27

Re: AHK:Чтение txt и открытие файла из строки.

Maxfashko пишет:

Мне нужно из 2022.psd 123.jpg
Получить 2022_123*расширение

Какое расширение??? что-то вы загадками говорите.
есть переменная:

переменная =
(
2022.psd 123.jpg
1112.psd 124.jpg
2033.psd>234.jpg
)

так и говорите на её примере.
если надо получить:
2033_234.jpg
и всегда вырезать только ".psd>"
то

 StringReplace, FileName, A_LoopReadLine, .psd>, _
По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

28

Re: AHK:Чтение txt и открытие файла из строки.

Сорри, засмотрелся на ">"


FileName = 2022.psd 123.jpg
StringReplace, FileName, FileName, .psd%A_Space%, _
MsgBox, %FileName%
По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

29 (изменено: Maxfashko, 2012-12-03 22:48:40)

Re: AHK:Чтение txt и открытие файла из строки.

Нет, удалять придется не только psd.  Ниже код

В общем ужасно выглядит, но работает.

F1::
Path = D:\1.txt

Loop, Read, %Path%
{
    IfInString, A_LoopReadLine, >
    {
        StringReplace, FileName, A_LoopReadLine, >, _
        Break
    }
}
Loop
{
       Stringreplace,FileName,FileName,`.jpg,,UseErrorLevel
    if ErrorLevel = 0 ; Более замен не требуется.
        break
}
Loop
{
       Stringreplace,FileName,FileName,`.psd,,UseErrorLevel
    if ErrorLevel = 0 ; Более замен не требуется.
        break
}
Loop
{
       Stringreplace,FileName,FileName,`.png,,UseErrorLevel
    if ErrorLevel = 0 ; Более замен не требуется.
        break
}

У меня в одном цикле это не размещалось.
После того как добавил

 Stringreplace,FileName,FileName,`.psd,`jpg,UseErrorLevel

снова стало не работать

Есть способ как это скомпоновать?

30 (изменено: serzh82saratov, 2012-12-03 22:53:04)

Re: AHK:Чтение txt и открытие файла из строки.

Так всё что вам нужно это на выходе в переменой FileName иметь:

2033_234

???

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

31

Re: AHK:Чтение txt и открытие файла из строки.

Да

32

Re: AHK:Чтение txt и открытие файла из строки.

Maxfashko пишет:

У меня в одном цикле это не размещалось.
После того как добавил

 Stringreplace,FileName,FileName,`.psd,`jpg,UseErrorLevel

снова стало не работать

Есть способ как это скомпоновать?

Ничего не понятно...
Вы можете просто показать на примере что должно быть на выходе, вот есть текст

2022.psd 123.jpg
1112.psd 124.jpg
2033.psd>234.jpg

хочу чтоб так было:

1234
5678
По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

33

Re: AHK:Чтение txt и открытие файла из строки.

Path = D:\1.txt

Loop, Read, %Path%
{
    IfInString, A_LoopReadLine, >
    {
         Stringreplace,FileName,A_LoopReadLine,`.psd>, _
         Stringreplace,FileName,FileName, .jpg
        Break
    }
}

MsgBox, %FileName%
По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

34

Re: AHK:Чтение txt и открытие файла из строки.

serzh82saratov
Куда понятнее то?=)
Есть три цикла, которые удаляют из переменной лишние символы.
Почему три? на разные случаи жизни:)
Мне нужен один цикл который будет в себе вмещать удаление всех трех ".psd" ".jpg" ".png"
Код я уже предоставил. см. выше.
переменная FileName = 2022.psd>1112.jpg
из нее выйдет после трех циклов вот это
2022_1112

35 (изменено: serzh82saratov, 2012-12-03 23:33:51)

Re: AHK:Чтение txt и открытие файла из строки.

ну и чего вам в посте 33 нехватает?
этого
Stringreplace,FileName,FileName, .png

Вы сказали из

2022.psd 123.jpg
1112.psd 124.jpg
2033.psd>234.jpg

получить

2033_234

-----------------------

FileName = 2022.psd>1112.jpg
         Stringreplace,FileName,FileName, .psd>, _
         Stringreplace,FileName,FileName, .jpg
         Stringreplace,FileName,FileName, .png 
MsgBox, %FileName%

или лучше

FileName = 2022.psd>1112.jpg
Stringreplace,FileName,FileName, .psd>, _
MsgBox, % RegExReplace(FileName, ".jpg|.png")

------------------------
И зачем 3 цикла? Если нужна ОДНА строка???
Loop, Read, %Path% - просто находит подстроку с символом ">", далее для замены в ней символов циклы ненужны.
Если в подстроке надо заменить все (т.е. несколько) символы- например ".jpg" то добавляйте ALL


FileName = 1112.jpg-1112.jpg-1112.jpg
Stringreplace,FileName,FileName, .jpg,, ALL
MsgBox, %FileName%
По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

36

Re: AHK:Чтение txt и открытие файла из строки.

Теперь все понятно.
Спасибо всем.

37 (изменено: serzh82saratov, 2012-12-04 01:27:43)

Re: AHK:Чтение txt и открытие файла из строки.

Ну если понятно, то хорошо. Вот код чуть получше. Расширения можете добавлять в ".jpg|.png|.psd" через "|"


F1::
Path = D:\1.txt
Loop, Read, %Path%
{
    IfInString, A_LoopReadLine, >
    {
     Stringreplace,FileName,A_LoopReadLine, >, _
     FileName := RegExReplace(FileName, ".jpg|.png.|.psd")
        Break
    }
}
MsgBox, %FileName%

или ещё проще в "трёх" строках, вместо трёх циклов
Для поиска и возврата одной строки с простейшим условием, цикл чтения ненужен


F1::
FileRead, FileName, D:\1.txt
;--------------------------
RegExMatch(FileName, "m).*>.*", FileName)
Stringreplace,FileName,FileName, >, _
FileName := RegExReplace(FileName, ".jpg|.png|.psd")
;--------------------------
MsgBox, %FileName%

А вот говорить "Куда понятнее то?=)" вместо того чтоб объяснить в том виде, в котором вам предлагает человек который вам же хочет помочь...

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

38 (изменено: Maxfashko, 2012-12-04 09:41:03)

Re: AHK:Чтение txt и открытие файла из строки.

А вот говорить "Куда понятнее то?=)" вместо того чтоб объяснить в том виде, в котором вам предлагает человек который вам же хочет помочь...

Прошу прощения.

Друзья, столкнулся с очередной проблемой по этой теме.
Описанный выше код хорошо будет работать везде, кроме одной программы. (специфическая программа "Вариограф")
дело в том, что если запустить такой код, она всегда будет запускаться в новом окне программы, несмотря что открыто старое.
настроек типа "не запускать более одной копии программы" там естественно нет.

пример

Path = D:\work\Script VAR\1.txt
Loop, Read, %Path%
{
    IfInString, A_LoopReadLine, >
    {
     Stringreplace,FileName,A_LoopReadLine, >, _
     FileName := RegExReplace(FileName, ".jpg|.png.|.psd")
        Break
    }
}
FileName .=".psd"
ileName = D:\work\Script VAR\готовые\%FileName%

{ifWinExist, Вариограф ; поиск окна "vg"

{
WinActivate ; активация окна
run, C:\Program Files (x86)\Variograph 4.6.44\vg.exe, %FileName%
}

else ; или
{
Run, C:\Program Files (x86)\Variograph 4.6.44\vg.exe ; запуск vg
WinWait, C:\Program Files (x86)\Variograph 4.6.44\vg.exe; ожидание появления окна "vg"
WinActivate ; активация окна

  }
}

39

Re: AHK:Чтение txt и открытие файла из строки.

По идее, запускаемая копия должна проверять наличие уже существующего процесса и, если он есть, посылать ему сообщение с именем файла, а сама завершаться. Старая копия должна ловить это сообщение и открывать файл в себе. Как можно скриптом заставить их это делать, не представляю. По-моему, дохлый номер. Разве что меню открытия файла вызывать и вставлять туда его имя.

40

Re: AHK:Чтение txt и открытие файла из строки.

Maxfashko пишет:

Описанный выше код хорошо будет работать везде, кроме одной программы. (специфическая программа "Вариограф")
дело в том, что если запустить такой код, она всегда будет запускаться в новом окне, несмотря что открыто старое.
настроек типа "не запускать более одной копии программы" там естественно нет.

Код будет работать везде, где из текстовой переменной нужно получить нужное.

Здесь вообще неясно что вы делаете. Если окно есть вы его зачем-то активируете зная что запустится другая копия. И что совсем не ясно если окна нет то просто запуск без параметра (файла)???


{ifWinExist, Вариограф ; поиск окна "vg"

{
WinActivate ; активация окна
run, C:\Program Files (x86)\Variograph 4.6.44\vg.exe, %FileName%
}

else ; или
{
Run, C:\Program Files (x86)\Variograph 4.6.44\vg.exe ; запуск vg
WinWait, C:\Program Files (x86)\Variograph 4.6.44\vg.exe; ожидание появления окна "vg"
WinActivate ; активация окна

  }
}
По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

41 (изменено: serzh82saratov, 2012-12-04 10:04:52)

Re: AHK:Чтение txt и открытие файла из строки.

YMP пишет:

По идее, запускаемая копия должна проверять наличие уже существующего процесса и, если он есть, посылать ему сообщение с именем файла, а сама завершаться. Старая копия должна ловить это сообщение и открывать файл в себе. Как можно скриптом заставить их это делать, не представляю. По-моему, дохлый номер. Разве что меню открытия файла вызывать и вставлять туда его имя.

Не понятно что за программа, может там просто в EDIT забить имя файла можно...
Для начала думаю можно сначала закрыть старый экземпляр, и запустить новый с параметром. Попробуйте так:

FileRead, FileName, D:\work\Script VAR\1.txt
RegExMatch(FileName, "m`a).*>.*", FileName)
Stringreplace,FileName,FileName, >, _
FileName := RegExReplace(FileName, ".jpg|.png|.psd")
Process, Exist, vg.exe
WinClose, ahk_pid %ErrorLevel%
Run, C:\Program Files (x86)\Variograph 4.6.44\vg.exe "%FileName%.psd"
По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

42

Re: AHK:Чтение txt и открытие файла из строки.

Процесс не закрывается, появляется снова в новом.

43

Re: AHK:Чтение txt и открытие файла из строки.

YMP пишет:

Разве что меню открытия файла вызывать и вставлять туда его имя.

Это интереснее. Это сложно реализовать?

44 (изменено: serzh82saratov, 2012-12-04 10:20:15)

Re: AHK:Чтение txt и открытие файла из строки.

при запущенной программе этот код что в сообщении пишет, 0 или 4-х знач. число?

Process, Exist, vg.exe
MsgBox %ErrorLevel%
По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

45 (изменено: serzh82saratov, 2012-12-04 10:28:07)

Re: AHK:Чтение txt и открытие файла из строки.

Maxfashko пишет:
YMP пишет:

Разве что меню открытия файла вызывать и вставлять туда его имя.

Это интереснее. Это сложно реализовать?

Как вы кнопками и мышкой это делаете, так же и скриптом имитировать нажатия кнопок, движения мыши в крайнем случае. Если через AU3_SPY получить имя контрола в который вставлять путь файла, то можно посимпатяшнее реализовать.
Ещё получить имя родительского окна.

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

46

Re: AHK:Чтение txt и открытие файла из строки.

Программа открывает файлы либо через окно, либо перетащи и брось
http://imglink.ru/thumbnails/04-12-12/71632b37d373185264268e356b899808.jpg
Pulover's Macro Creator выдал такое
к примеру вот его ahk_id 0x970b28 (того окна, где производится выбор файлов)
в окне выдал control: SysListView321

Самое интересное, что если на файле кликнуть два раза, он не откроется, а сначала появится в правой части окна. И только после этого его можно открыть.

У меня еще была идея использовать drag and drop.

47

Re: AHK:Чтение txt и открытие файла из строки.

serzh82saratov пишет:

при запущенной программе этот код что в сообщении пишет, 0 или 4-х знач. число?

Process, Exist, vg.exe
MsgBox %ErrorLevel%

Выдал 776

48

Re: AHK:Чтение txt и открытие файла из строки.

Maxfashko пишет:
serzh82saratov пишет:

при запущенной программе этот код что в сообщении пишет, 0 или 4-х знач. число?

Process, Exist, vg.exe
MsgBox %ErrorLevel%

Выдал 776

вместо MsgBox %ErrorLevel% напиши
WinClose, ahk_pid %ErrorLevel% или WinKill, ahk_pid %ErrorLevel%
должно закрывать

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

49

Re: AHK:Чтение txt и открытие файла из строки.

serzh82saratov пишет:
Maxfashko пишет:
serzh82saratov пишет:

при запущенной программе этот код что в сообщении пишет, 0 или 4-х знач. число?

Process, Exist, vg.exe
MsgBox %ErrorLevel%

Выдал 776

вместо MsgBox %ErrorLevel% напиши
WinClose, ahk_pid %ErrorLevel% или WinKill, ahk_pid %ErrorLevel%
должно закрывать

Не закрывает.

50

Re: AHK:Чтение txt и открытие файла из строки.

Если drag and drop есть значит можно с помощью SendMessage реализовать.
Тут старшие товарищи нужны, самому интересно, поищу.

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

51

Re: AHK:Чтение txt и открытие файла из строки.

Maxfashko пишет:

Не закрывает.

Ну тогда процесс убивай
Process, Close, vg.exe

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

52 (изменено: Maxfashko, 2012-12-04 11:19:56)

Re: AHK:Чтение txt и открытие файла из строки.

Только, мне не это нужно
Проблема не в том что открывается 100500 окон, а в том, что в первом стоят настройки, как мне нужно.
Новое окно - новые уствновки
+тратится время на открытие программы, это не быстро

А способ помог, да. старое закрыл новое открыл

53 (изменено: serzh82saratov, 2012-12-04 11:25:02)

Re: AHK:Чтение txt и открытие файла из строки.

Для начала просто впечатывай текст в поле имя файла.
И напиши какой WinTitle окна программы.

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

54

Re: AHK:Чтение txt и открытие файла из строки.

Пробовал так=)
Еще кстати один трабл.
Если вписать имя, его не открыть таким образом.
Только тупым тыком на файле 2 раза


title у него:
Выбор исходных изображений
ahk_class #32770

55

Re: AHK:Чтение txt и открытие файла из строки.

title главного окна, а не выбора файлов

перед именем надо дописывать путь к папке

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

56

Re: AHK:Чтение txt и открытие файла из строки.

главное окно, - это "Вариограф"

57 (изменено: serzh82saratov, 2012-12-04 12:46:46)

Re: AHK:Чтение txt и открытие файла из строки.

serzh82saratov пишет:

Если drag and drop есть значит можно с помощью SendMessage реализовать.
Тут старшие товарищи нужны, самому интересно, поищу.

Я не нашёл решение http://www.autohotkey.com/board/topic/4 … lications/

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

58

Re: AHK:Чтение txt и открытие файла из строки.

Значит сейчас это невозможно

59 (изменено: serzh82saratov, 2012-12-04 14:07:59)

Re: AHK:Чтение txt и открытие файла из строки.

Maxfashko пишет:

Значит сейчас это невозможно

невозможно через SendMessage.
----
запускаете AU3_Spy.exe из папки  AutoHotkey
Скрините
1 На фоне главного окна
2 На фоне окна выбора файла
3 При фокусе ввода в поле имя файла

пробуете ввести в поле имя файла полное имя файла и нажать ентер, и отписываетесь
Ещё непонятно путь к папке "готовые"  постоянный?

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

60 (изменено: Maxfashko, 2012-12-04 14:16:46)

Re: AHK:Чтение txt и открытие файла из строки.

Главное окно

>>>>>>>>>>( Window Title & Class )<<<<<<<<<<<
Вариограф
ahk_class Afx:00410000:8:00010003:00000000:048809A5

>>>>>>>>>>>>( Mouse Position )<<<<<<<<<<<<<
On Screen:    1034, 31  (less often used)
In Active Window:    1038, 7

Окно открытия файла

>>>>>>>>>>( Window Title & Class )<<<<<<<<<<<
Выбор исходных изображений
ahk_class #32770

>>>>>>>>>>>>( Mouse Position )<<<<<<<<<<<<<
On Screen:    960, 333  (less often used)
In Active Window:    391, 13

Окно ввода текста

>>>>>>>>>>( Window Title & Class )<<<<<<<<<<<
Выбор исходных изображений
ahk_class #32770

>>>>>>>>>>>>( Mouse Position )<<<<<<<<<<<<<
On Screen:    829, 680  (less often used)
In Active Window:    260, 360

>>>>>>>>>( Now Under Mouse Cursor )<<<<<<<<
ClassNN:    Edit1
Text:    

Да, папка постоянна

61 (изменено: serzh82saratov, 2012-12-04 14:17:28)

Re: AHK:Чтение txt и открытие файла из строки.

пробуете ввести в поле имя файла полное имя файла и нажать ентер, и отписываетесь
Где?

Окно открытия файла по какой кнопке открывается, ктрл+О?

Да, папка постоянна
Адрес?

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

62

Re: AHK:Чтение txt и открытие файла из строки.

Вводить безуспешно. По-всякому

открыть окно  ^N

адрес папки
D:\work\Script VAR\готовые\

63

Re: AHK:Чтение txt и открытие файла из строки.

serzh82saratov пишет:

Я не нашёл решение http://www.autohotkey.com/board/topic/4 … lications/

DropFiles(ByRef fileList, windowTitle := "", ctrl := "", x := 0, y := 0, NCA := 0)
{
    offset := 20
    VarSetCapacity(dropFiles, StrLen(fileList) + offset, 0)
    pDP := &dropFiles

    loop, parse, fileList, `n, `r
        StrPut(A_LoopField, pDP + offset, StrLen(A_LoopField), "CP0")
        , offset += StrLen(A_LoopField) + 4
        , NumPut(0, pDP + offset - 4, "UInt")

    NumPut(0, pDP + offset, "UInt")
    NumPut(20, pDP + 0, "UInt")
    NumPut(x, pDP + 4, "UInt")
    NumPut(y, pDP + 8, "UInt")
    NumPut(NCA, pDP + 12, "UInt")
    NumPut(0, pDP + 16, "UInt")

    nSize := offset + 4
    hDrop := DllCall("GlobalAlloc", "UInt", 0x42, "UInt", nSize, "Ptr")
    pData := DllCall("GlobalLock", "Ptr", hDrop, "Ptr")
    DllCall("RtlMoveMemory", "Ptr", pData, "Ptr", pDP, "UInt", nSize)
    DllCall("GlobalUnlock", "Ptr", hDrop)

    PostMessage, 0x233, hDrop, 0, %ctrl%, %windowTitle%
}

64

Re: AHK:Чтение txt и открытие файла из строки.

creature.ws пишет:
serzh82saratov пишет:

Я не нашёл решение http://www.autohotkey.com/board/topic/4 … lications/

DropFiles(ByRef fileList, windowTitle := "", ctrl := "", x := 0, y := 0, NCA := 0)
{
    offset := 20
    VarSetCapacity(dropFiles, StrLen(fileList) + offset, 0)
    pDP := &dropFiles

    loop, parse, fileList, `n, `r
        StrPut(A_LoopField, pDP + offset, StrLen(A_LoopField), "CP0")
        , offset += StrLen(A_LoopField) + 4
        , NumPut(0, pDP + offset - 4, "UInt")

    NumPut(0, pDP + offset, "UInt")
    NumPut(20, pDP + 0, "UInt")
    NumPut(x, pDP + 4, "UInt")
    NumPut(y, pDP + 8, "UInt")
    NumPut(NCA, pDP + 12, "UInt")
    NumPut(0, pDP + 16, "UInt")

    nSize := offset + 4
    hDrop := DllCall("GlobalAlloc", "UInt", 0x42, "UInt", nSize, "Ptr")
    pData := DllCall("GlobalLock", "Ptr", hDrop, "Ptr")
    DllCall("RtlMoveMemory", "Ptr", pData, "Ptr", pDP, "UInt", nSize)
    DllCall("GlobalUnlock", "Ptr", hDrop)

    PostMessage, 0x233, hDrop, 0, %ctrl%, %windowTitle%
}

Это как на китайском=)

65 (изменено: serzh82saratov, 2012-12-05 01:47:43)

Re: AHK:Чтение txt и открытие файла из строки.

creature.ws
КРУТО!!!
А в чём трабла была, если не трудно...

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

66 (изменено: creature.ws, 2012-12-04 14:40:53)

Re: AHK:Чтение txt и открытие файла из строки.

Видимо в неправильно сформированной структуре dropFiles.
Процедура, приведенная выше, срисована кажется из кода teadrinker'а.

Граждане, а зачем вы полностью цитируете предыдущее сообщение?

67

Re: AHK:Чтение txt и открытие файла из строки.

Направьте мозг в нужный поток=)
Как это использовать в моём случае?

68 (изменено: serzh82saratov, 2012-12-05 01:46:31)

Re: AHK:Чтение txt и открытие файла из строки.

creature.ws

Граждане, а зачем вы полностью цитируете предыдущее сообщение?

Да кто нас знает, места много

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

69 (изменено: serzh82saratov, 2012-12-04 14:54:05)

Re: AHK:Чтение txt и открытие файла из строки.

creature.ws
А что можно лишнего убрать?

DropFiles(ByRef fileList, windowTitle := "", ctrl := "", x := 0, y := 0, NCA := 0)
на
DropFiles(ByRef fileList, windowTitle )

и это удалять или оно может понадобится?
    NumPut(x, pDP + 4, "UInt")
    NumPut(y, pDP + 8, "UInt")
    NumPut(NCA, pDP + 12, "UInt")

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

70 (изменено: Maxfashko, 2012-12-04 14:54:04)

Re: AHK:Чтение txt и открытие файла из строки.

вот тут маленькая поправочка не получиться всегда обращаться к классу. Он всегда меняется, когда программа открывается в другом окне
DropFiles( "D:\work\Script VAR\готовые\" FileName ".psd", "ahk_class Afx:00410000:8:00010003:00000000:048809A5" )

сейчас вот он стал Вариограф
ahk_class Afx:00410000:8:00010003:00000000:0E8D0AA3

71

Re: AHK:Чтение txt и открытие файла из строки.

DropFiles( "D:\work\Script VAR\готовые\" FileName ".psd", "Вариограф" )

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

72

Re: AHK:Чтение txt и открытие файла из строки.

ТОВАРИЩИ! СВЕРШИЛОСЬ

Не знаю как Вас благодарить, всех, кто мне помог!)

Спасибо!

73

Re: AHK:Чтение txt и открытие файла из строки.

Спасибо creature.ws за код, очень пригодится!

Оно бы может и без этого свершилось, но только через *опу

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

74

Re: AHK:Чтение txt и открытие файла из строки.

creature.ws пишет:

Граждане, а зачем вы полностью цитируете предыдущее сообщение?

Всецело поддерживаю замечание.

75

Re: AHK:Чтение txt и открытие файла из строки.

Читать и правда оч. сложно такое.
Поправил посты.
Прошу прощения.

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

76 (изменено: Uniors, 2012-12-06 07:38:45)

Re: AHK:Чтение txt и открытие файла из строки.

Столкнулся с похожей проблемой, необходимо каждую секунду проверять текстовый документ на наличие цифр (1,3,7,9) , если не найдено то запомнить текущую строку для последующего поиска со следующей строки (искать только в новом тексте) если найдено, то gosub, xxx(1,3,7,9)

FileSelectFile, SelectedFile, 3, log,Открыть файл, Текстовые файлы (*.txt)
if SelectedFile =
    MsgBox, Лог файл не найден.
else
Loop, Read, %SelectedFile%
{
    IfInString, A_LoopReadLine, 1
    {
gosub, xxx1
        Break
    }
}
return

xxx1:
SendInput, 1
return

После активации метки "ххх1" в лог будет записано "1", при следующей проверке скрипт должен пропустить эту строку

77 (изменено: serzh82saratov, 2013-03-08 03:28:05)

Re: AHK:Чтение txt и открытие файла из строки.

Uniors пишет:

Столкнулся с похожей проблемой, необходимо каждую секунду проверять текстовый документ на наличие цифр (1,3,7,9) , если не найдено то запомнить текущую строку для последующего поиска со следующей строки (искать только в новом тексте) если найдено, то gosub, xxx(1,3,7,9) ......................


SelectedFile = %A_ScriptDir%\Лог.txt
loop 
{
    Sleep 1000
    IfNotExist, %SelectedFile%
    {
        MsgBox, Лог файл не найден.
        Continue
    }
    FileRead, File, %SelectedFile%
    Pos := RegExMatch(File, "1|3|7|9", match, Len) , Len := StrLen(File)+1
    if !Pos
        Continue
    gosub, xxx_%match%
}

xxx_1:
    MsgBox xxx_1
    return
xxx_3:
    MsgBox xxx_3
    return
xxx_7:
    MsgBox xxx_7
    return
xxx_9:
    MsgBox xxx_9
    return
Uniors пишет:

...................... После активации метки "ххх1" в лог будет записано "1", при следующей проверке скрипт должен пропустить эту строку

Не понятно в какой лог и как записывать?

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

78 (изменено: serzh82saratov, 2013-02-13 17:45:55)

Re: AHK:Чтение txt и открытие файла из строки.

И если за секунду\цикл появилось несколько совпадений, нужно обработать каждое, или первое появившееся (как в примере выше), а остальные игнорировать?

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui