1

Тема: AHK: For_loop_Gui

Добрый день! Подскажите, пож-та, как получить изначальный путь (A_LoopFileFullPath)


Folder := % A_Desktop "\Test\" TimeString 

Array_folder := [] 
Loop, Files, % Folder "\*", DR
{
   if A_LoopFileAttrib not contains H
           Array_folder.Push(A_LoopFileFullPath)
}

Gui, +ToolWindow  +AlwaysOnTop 
Gui, Font, s15 italic

for index, element in Array_folder 
  Gui, Add, Button, gGetName, % RegExReplace(element, ".+\\(.+)\.*.{0}", "$1")

Gui, Show, , ***
return  
    
GetName:
GuiControlGet, var,, % A_GuiControl
Gui,destroy
MsgBox % var 
return

2

Re: AHK: For_loop_Gui

Непонятно, в чём сложность. Они же у вас в массиве, или я не понял вопроса?

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

3 (изменено: inseption86, 2022-01-15 17:29:14)

Re: AHK: For_loop_Gui

teadrinker
Да, в массиве, а в Гуи - название конечной папки. Как получить полный путь, помимо нажатой кнопки (имя конечной папки)

4

Re: AHK: For_loop_Gui

Убрать RegEx?

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

5 (изменено: inseption86, 2022-01-15 18:31:36)

Re: AHK: For_loop_Gui

teadrinker

Post's attachments

2022-01-15_173057.png 49.9 kb, file has never been downloaded. 

You don't have the permssions to download the attachments of this post.

6

Re: AHK: For_loop_Gui

В смысле, получилось?

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

7

Re: AHK: For_loop_Gui

teadrinker
Полный путь в Gui - некрасиво)

8

Re: AHK: For_loop_Gui

А как вы хотели?

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

9 (изменено: inseption86, 2022-01-15 18:58:55)

Re: AHK: For_loop_Gui

teadrinker
На данный момкент в скрипте - как слева на скрине, но так как первоначальная папка содержит подкаталоги и все эти папки отображаются в гуи, то хотел бы узнать их полный путь для дальнейших условий.

10

Re: AHK: For_loop_Gui

Так из массива и узнайте.

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

11

Re: AHK: For_loop_Gui

teadrinker
Никак не соображу, как получить A_LoopFileFullPath нажатой кнопки.

12

Re: AHK: For_loop_Gui

Я не соображу, какого именно поведения вы хотите добиться.

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

13

Re: AHK: For_loop_Gui

Наверно, это имели в виду:

Folder := A_Desktop "\Test\" TimeString 

Array_folder := [] 
Loop, Files, % Folder "\*", D
{
   if A_LoopFileAttrib not contains H
      Array_folder.Push(A_LoopFileFullPath)
}

Gui, +ToolWindow  +AlwaysOnTop 
Gui, Font, s15 italic

arr := []
for index, element in Array_folder {
   Gui, Add, Button, gGetName hwndhButton%A_Index%, % RegExReplace(element, ".+\\(.+)\.*.{0}", "$1")
   arr[hButton%A_Index%] := element
}

Gui, Show, , ***
return  
    
GetName(hwnd) {
   global arr
   Gui, %A_Gui%:+OwnDialogs
   MsgBox, % arr[hwnd]
}
Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

14

Re: AHK: For_loop_Gui

teadrinker
Да, спасибо!!


Person_Array := {}
for index, element in Array_folder 
{
    file_name := RegExReplace(element, ".+\\(.+)\.*.{0}", "$1")
    Person_Array[File_name] := element 

    Gui, Add, Button, gGetName x+100 y10, % file_name
}
Gui, Show, , ***
return  
       
GetName:
GuiControlGet, var,, % A_GuiControl
gui,destroy

msgbox, % Person_Array[var] "_" var

15

Re: AHK: For_loop_Gui

Теоретически, называть ключи именами папок неправильно. У вас там при переборе применяется рекурсия в подпапки, так что ничего не мешает названиям папок повторяться.

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