Вверх ↑
Этот топик читают: Гость
Ответов: 11
Рейтинг: 0
#1: 2020-05-19 00:59:06 ЛС | профиль | цитата
Здравствуйте, уважаемые форумчане.
Продолжая работать над своим проектом, наткнулся на очередную преграду:
Используя компоненты "File Path" и "WinExec" пытаюсь открыть месторасположение музыкального трека из плейлиста.
Все работает, и папку, где находится файл, открывает. Но очень хотелось бы, чтобы еще и выделяло этот файл. Ведь в папке их много и на поиски без выделения уходит много времени.

То есть задача в том, чтобы при открытии местоположения файла, программа еще и выделяла его (как будто его выделили с помощью мыши)

Буду благодарен за ответы и идеи...
карма: 0

0
vip
#1.1контекстная реклама от партнеров
Ответов: 2059
Рейтинг: 131
#2: 2020-05-19 08:56:52 ЛС | профиль | цитата
Lelekanet, Двойной клик запускает файл.
Поиск в папке сделан на mp3
Add(MainForm,13425340,154,84)
{
Width=679
Height=577
}
Add(FileSearch,4018737,357,168)
{
Ext="*.mp3"
link(onSearch,7681868:doAdd,[])
}
Add(ShellBrowser,1668021,574,168)
{
Left=345
Top=30
Width=330
Height=525
DefaultDir="c:\"
Style=2
ShellSort=0
ShowUpDir=0
AutoDblClicks=0
}
Add(ListBox,7681868,435,168)
{
Top=30
Width=336
Height=519
Font=[Tahoma,9,0,8388608,204]
Name="lista"
Hint=" "
HintManager=""
DataType=1
Point(doHint)
Point(String)
Point(onKeyDown)
Point(onDblClick)
Point(Value)
Point(Index)
Point(onMouseDown)
Point(onMouseMove)
Point(doSelect)
Point(MouseY)
Point(MouseX)
Point(PHandle)
Point(onMouseEnter)
Point(Width)
link(onClick,1668021:doSetfile,[])
}
Add(Button,14456529,224,168)
{
Left=10
Top=5
link(onClick,13418480:doBrowse,[])
}
Add(Browse,13418480,287,168)
{
link(onBrowse,4018737:doSearch,[])
}

https://yadi.sk/d/mJ-WLTZRteGJvQ
https://yadi.sk/d/y_1Pq0fSAD-hKg

Редактировалось 1 раз(а), последний 2020-05-19 09:12:43
карма: 6

0
Ответов: 11
Рейтинг: 0
#3: 2020-05-19 09:35:16 ЛС | профиль | цитата
Спасибо. Но это немного не то.
Для примера:

Add(MainForm,13425340,329,168)
{
Width=273
Height=438
}
Add(FilePartElm,7389442,413,168)
{
@Color=5614335
Mode=0
Point(Part)
link(onPart,36387:doExec,[])
link(FileName,5448776:String,[])
}
Add(WinExec,36387,490,168)
{
@Color=5614335
FileName="explorer.exe"
}
Add(ListBox,5448776,392,91)
{
Left=5
Top=5
Width=245
Height=380
Align=5
Point(String)
Point(onDblClick)
link(onDblClick,7389442:doPart,[(436,111)(436,149)(401,149)(401,174)])
}
Add(Button,14386141,287,91)
{
Width=255
Align=2
Caption="Открыть файл"
link(onClick,13098719:doExecute,[])
}
Add(ODialog,13098719,336,91)
{
link(onExecute,5448776:doAdd,[])
}


Только нужно, чтобы не просто открывало месторасположение файла, а еще и выделяло тот файл, который выбран в списке.

Редактировалось 1 раз(а), последний 2020-05-19 09:38:26
карма: 0

0
Ответов: 2059
Рейтинг: 131
#4: 2020-05-19 10:07:46 ЛС | профиль | цитата
Твоя схема ничего не объясняет!
В таблице, при выборе файла, и так происходит выделение в таблице.
Вангую, что тебе нужно выделять файлы в проводнике, или в Total Commander.
Тогда так и надо говорить! Все зкстрасенсы на карантине!
В этом случае надо дёргать методы COM-объектов.
Только нужно, чтобы не просто открывало месторасположение файла, а еще и выделяло тот файл, который выбран в списке.

На схеме не показано, где показывается расположение файла? В таблице?

Редактировалось 4 раз(а), последний 2020-05-19 10:17:17
карма: 6

0
Ответов: 11
Рейтинг: 0
#5: 2020-05-19 10:46:37 ЛС | профиль | цитата
Прошу прощения, что невнятно написал.
Итак, есть плеер, в котором есть таблицы со списками музыкальных треков.
Иногда есть потребность найти файл из плеера в проводнике.
С помощью "File Path" и "WinExec" получается открыть только саму папку, в которой, кроме файла из плеера, еще куча файлов.
Задача - чтобы при открытии расположения файла (в проводнике), выделяло также и сам файл (чтобы не искать его вручную)

Еще раз прошу прощения за плохое описание проблемы.
карма: 0

0
Главный модератор
Ответов: 2997
Рейтинг: 395
#6: 2020-05-19 11:02:24 ЛС | профиль | цитата
Послать в проводник сообщения нажатия клавиш с именем файла. В теории проводник должен будет выделить файл и сделать видимым.
карма: 6
Дорогу осилит идущий. Install/Update HiAsm.NET
0
Ответов: 2059
Рейтинг: 131
#7: 2020-05-19 11:04:03 ЛС | профиль | цитата
1. Наверное схема должна быть такой:
Add(MainForm,13425340,343,133)
{
Width=273
Height=438
}
Add(WinExec,36387,504,133)
{
@Color=5614335
link(FileName,5448776:String,[(510,117)(433,117)])
}
Add(ListBox,5448776,406,56)
{
Left=5
Top=5
Width=245
Height=380
Align=5
Point(String)
Point(onDblClick)
link(onDblClick,36387:doShellExec,[(471,76)(471,146)])
}
Add(Button,14386141,301,56)
{
Width=255
Align=2
Caption="Открыть файл"
link(onClick,13098719:doExecute,[])
}
Add(ODialog,13098719,350,56)
{
link(onExecute,5448776:doAdd,[])
}

2. Нужно копаться в методах COM-объектов проводника, или Total Commander для выделения, или как Nic предложил.
Сейчас у тебя с запуском explorer.exe получается масло масляное.

Редактировалось 1 раз(а), последний 2020-05-19 11:07:16
карма: 6

0
Ответов: 18
Рейтинг: 20
#8: 2020-05-19 21:03:30 ЛС | профиль | цитата
Если правильно понял нужно как то так?

Add(MainForm,2953706,119,126)
{
}
Add(StrCat,7329375,287,147)
{
@Color=4784127
Str1="Explorer /Select ,"
link(onStrCat,81349:doExec,[])
}
Add(DropFile,2012563,231,147)
{
link(onDropFile,7329375:doStrCat,[])
}
Add(WinExec,81349,350,147)
{
@Color=5635840
}
карма: 1

0
Ответов: 11
Рейтинг: 0
#9: 2020-05-19 23:10:37 ЛС | профиль | цитата
Flapiotun писал(а):
Если правильно понял нужно как то так?


Add(MainForm,2953706,119,126)
{
}
Add(StrCat,7329375,287,147)
{
@Color=4784127
Str1="Explorer /Select ,"
link(onStrCat,81349:doExec,[])
}
Add(DropFile,2012563,231,147)
{
link(onDropFile,7329375:doStrCat,[])
}
Add(WinExec,81349,350,147)
{
@Color=5635840
}




Огромное спасибо! Это как раз то, что нужно.
Еще раз убедился, что конструктор - дело хорошее, но знание языков программирования значительно расширяет его возможности.

Спасибо всем, кто откликнулся!
карма: 0

0
Ответов: 1924
Рейтинг: 172
#10: 2020-09-19 00:26:30 ЛС | профиль | цитата
Тоже потребовалось выделить файл в проводнике. Но способ от Flapiotun запускает новый процесс explorer.exe, а это ни к чему. Поэтому состряпал способ посложнее, зато без лишних explorer'ов:
https://forum.hiasm.com/topic/67791.

Редактировалось 2 раз(а), последний 2020-09-19 17:39:14
карма: 9
0
10
Сообщение
...
Прикрепленные файлы
(файлы не залиты)