Что нового

Как выделить файл в проводнике

rolatipov

Новичок
Сообщения
25
Репутация
0
Каким образом можно выделить(подсветить) файл(папку) в уже запущенном окне Windows Explorer?
 

Zaramot

I ♥ AutoIt
Сообщения
1 160
Репутация
659
Так:
Код:
ControlListView('[ACTIVE]', '', 'SysListView321', 'Select', 1, 2)

или так (выделить всё):
Код:
ControlListView('[ACTIVE]', '', 'SysListView321', 'SelectAll')
 
Автор
R

rolatipov

Новичок
Сообщения
25
Репутация
0
madmasles,zaramot спасибо что посмотрели.У меня как раз 7.В приведенном примере для функции _WinAPI_ShellOpenFolderAndSelectItems есть такая строчка:
Код:
$Path = RegRead('HKLM\SOFTWARE\AutoIt v3\AutoIt', 'InstallDir')
У меня нет такой строчки в реестре,поскольку я имею portable версию AutoIt(сделал привязку в ручную).Могу ли я использовать полнофункционально возможности AutoIt имея portable версию?
 
Автор
R

rolatipov

Новичок
Сообщения
25
Репутация
0
madmasles
Например вот:
Код:
_WinAPI_ShellOpenFolderAndSelectItems("C:\Program Files")

Выдает ошибку
 

Zaramot

I ♥ AutoIt
Сообщения
1 160
Репутация
659
rolatipov, попробуйте так:
Код:
#Include <File.au3>
#Include <WinAPIEx.au3>

$Path = 'C:\Program Files\'
$List = _FileListToArray($Path, '*.exe', 1)
If IsArray($List) Then
    _WinAPI_ShellOpenFolderAndSelectItems($Path, $List, 1)
EndIf
 

VladUs

Скриптер
Сообщения
621
Репутация
181
Можно так попробывать

Код:
Run(@ComSpec & " /c " & 'explorer  /select, c:\windows\system', "", @SW_HIDE)

Команда открывает папку c:\windows и выделяет в ней папку system'
 

madmasles

Модератор
Глобальный модератор
Сообщения
7 790
Репутация
2 319
rolatipov [?]
А так:
Код:
#Include <WinAPIEx.au3>

$sPath = @ScriptDir ;папка, которую будем открывать
$sFile = @ScriptName ;имя файла, который будем выделять
Dim $aList[1] = [$sFile] ;массив с файлом

MsgBox(64, 'Info', 'Папка: ' & $sPath & @LF & 'Файл: ' & $aList[0])
_WinAPI_ShellOpenFolderAndSelectItems($sPath, $aList, 0)
 
Автор
R

rolatipov

Новичок
Сообщения
25
Репутация
0
Zaramot
Тот же результат.


Добавлено:
Сообщение автоматически объединено:

VladUs
Если окно Explorer уже открыто оно дублируется.Это несовсем то что нужно.Выделить в уже открытом окне,как бы послать левый клик файлу(папке).


Добавлено:
Сообщение автоматически объединено:

Что-то не выходит ничего.Зачем они в примере лезут в реестр?
 
Автор
R

rolatipov

Новичок
Сообщения
25
Репутация
0
Ура!Все разобрался.Помог скрипт:
Код:
#Include <WinAPIEx.au3>

$sPath = @ScriptDir ;папка, которую будем открывать
$sFile = @ScriptName ;имя файла, который будем выделять
Dim $aList[1] = [$sFile] ;массив с файлом

MsgBox(64, 'Info', 'Папка: ' & $sPath & @LF & 'Файл: ' & $aList[0])
_WinAPI_ShellOpenFolderAndSelectItems($sPath, $aList, 0)

madmasles 5+
Была допущена детская ошибка:скрипт либо нужно было запускать из той же директории где лежит WinAPIEx.au3,либо указать к нему путь(изменить первую строчку):
Код:
#Include <path\WinAPIEx.au3>

$sPath = @ScriptDir ;папка, которую будем открывать
$sFile = @ScriptName ;имя файла, который будем выделять
Dim $aList[1] = [$sFile] ;массив с файлом

MsgBox(64, 'Info', 'Папка: ' & $sPath & @LF & 'Файл: ' & $aList[0])
_WinAPI_ShellOpenFolderAndSelectItems($sPath, $aList, 0)

Действия:
Если окно с указанной дерикторией закрыто,то оно открывается и выделяется нужный файл(папка);
Если уже открыто-становится активным и выделяется нужный файл(при этом Explorer повторно не запускается);

То что и было нужно
 

Yashied

Модератор
Команда форума
Глобальный модератор
Сообщения
5 379
Репутация
2 713
Можно еще проще:

Код:
_WinAPI_ShellOpenFolderAndSelectItems(@ScriptFullPath)
 

zbz

Новичок
Сообщения
74
Репутация
1
rolatipov сказал(а):
Если окно с указанной дерикторией закрыто,то оно открывается и выделяется нужный файл(папка);
Это хорошо, а как сделать чтоб, выбрало несколько файлов в той же директории?
 

ra4o

AutoIT Гуру
Сообщения
1 121
Репутация
231
как сделать чтоб, выбрало несколько файлов в той же директории?
Так же , как Вам показал Yashied, в качестве имени файла передайте этой функции массив с нужными именами:
Код:
#include <WinAPIShellEx.au3>
Local $aMyFile[3]=['1.txt','2.txt','3.txt']
_WinAPI_ShellOpenFolderAndSelectItems(@ScriptDir,$aMyFile)
 
Верх