PDA

Показать полную графическую версию : [решено] запуск "Свойства папки" из командной строки


kovdaev
13-01-2006, 21:34
rundll32 shell32, Control_RunDLL main.cpl @1 - открыть диалог "Свойства клавиатуры"

Как вызвать свойства папки?
Есть ли такая команда.

Blast
13-01-2006, 23:31
rundll32.exe shell32.dll,Options_RunDLL 0

kovdaev
14-01-2006, 10:06
Спасибо.

N1ckUs
22-01-2008, 06:49
Заранее извинияюсь, что так вовремя, но может ещё подскажете, возможно ли так же вызвать лиалог свойств определённой папки?

Vadikan
22-01-2008, 07:06
N1ckUs, возможно, получится с помощью AutoIt (http://oszone.net/3663) (тема (http://forum.oszone.net/thread-60616.html)) или vbs (http://www.activexperts.com/activmonitor/windowsmanagement/scripts/storage/folders/)/wsh. Но нужно конкретно ставить вопрос, а не просто теоретически.

N1ckUs
22-01-2008, 08:17
Ок. Скажите пожалуйста, какая функция rundll32.exe shell32.dll запущеная с параметром %1, где %1 - путь к папке или файлу, открывает окно диалога свойств объекта. Скрипты это другое.

N1ckUs
24-01-2008, 14:51
Мне просто хотелось бы запустить этот диалог с правами другого пользователя, но насколько я понял, этот диалог является частью хплорера и запускается соответственно с правами запустившего его.. Видимо никак.

Admiral
24-01-2008, 15:22
N1ckUs, можно такой диалог и от имени другого пользователя, но без использования консоли.
Через RunAs запускаем, ну например блокнот, и при выборе файлов можно смотреть свойства папок и файлов с правами запустившего блокнот (или любую другую прогу, у которой есть обзор выбора файлов).

Blast
24-01-2008, 20:05
N1ckUs, посмотрите здесь (http://forum.oszone.net/post-714340-6.html) - там о панели управления, но суть та же.

Admiral
24-01-2008, 20:54
Blast, всё таки при использовании блокнота завершения процесса не требуется. Не всегда удобно завершать процесс.
А вообще можно использовать чисто консольные проги для этих целей, одна из них cacls.exe (изменяет права на папку для указанных пользователей и групп).
Не менее известна и очень знакома пользователям Dos, Win 9x/ME attrib.exe (меняет параметры скрытый, чтение и т.д.).
А кто ни будь знает аналог *nix/ хBsd утилиты touch (работа со временем создания, изменения и может даже открытия)? В attrib.exe я не нашёл нужных пунктов, но ФАР через Ctrl+A решает вопрос. А есть что б прога отдельно в комплекте ОС Windows?

amel27
25-01-2008, 07:58
Мне просто хотелось бы запустить этот диалог с правами другого пользователя, но насколько я понял, этот диалог является частью хплорера и запускается соответственно с правами запустившего его.. »
через RunDll32 AFAIK нереально и чем скрипты не устраивают?... есть вариант для папок на VBS, но с окончанием работы скрипта закрывается и окно поэтому на AutoIT ИМХО сподручней (см. вложение - для файлов и папок)sDir = "C:\"

Set oShellApp = CreateObject("shell.application")
Set oFolder = oShellApp.Namespace(sDir)
Set oItem = oFolder.Self

oItem.InvokeVerbEx("Сво&йства")
WScript.Echo "Нажмите 'Ок' для окончания работы скрипта"

А есть что б прога отдельно в комплекте ОС Windows? »дык в комплекте или отдельно?... к примеру, есть порт того же touch для WIN

Admiral
25-01-2008, 21:15
дык в комплекте или отдельно?
В комплекте Виндовс и отдельно от фара :)
А чем руководствуется фар, своим встроенным подходом? Или какой то АПИ от ОС.

есть порт того же touch для WIN
Буду иметь ввиду. Значит где то есть исходник.

Buddha.g
15-06-2021, 20:56
Тема вроде решена, но рабочего решения я не нашел.
exe я даже не пытался запустить (стремно), а VBS не работает.
Я не спец в VBS, может там что-то подправить надо, но он натолкнул
меня на мысль сварганить что-то похожее в Powershell:

$path = "C:\Windows"
#$path = "C:\Windows\notepad.exe"
$shellAppObj = New-Object -ComObject Shell.Application
switch (Get-Item -Path $path) {
($_ -as [System.IO.DirectoryInfo]) {
Write-Host "Getting the properties of the folder `"$path`""
$fso = $shellAppObj.Namespace($_.FullName)
$fso.self.InvokeVerb("properties")
}
($_ -as [System.IO.FileInfo]) {
Write-Host "Getting the properties of the file `"$path`""
$fso = $shellAppObj.Namespace($_.DirectoryName)
$file = $fso.ParseName($_.PSChildName)
$file.InvokeVerb("Properties")
}
}
Работает как для папки, так и для файла.

Iska
15-06-2021, 22:40
а VBS не работает.
Я не спец в VBS, может там что-то подправить надо, »
Судя по тому, что у Вас работает идентичный же код на PowerShell — надо использовать название глагола на языке интерфейса Проводника — "Сво&йства" vs "Properties" (не забывая про пометку горячей клавиши, буде таковая наличествовать).

Buddha.g
16-06-2021, 00:04
Судя по тому, что у Вас работает идентичный же код на PowerShell — надо использовать название глагола на языке интерфейса Проводника — "Сво&йства" vs "Properties" (не забывая про пометку горячей клавиши, буде таковая наличествовать). »
Единственное, что объединяем эти 2 скрипта - это идея использования COM-объекта и на этом вся их "идентичность" заканчивается.Вот почему я уважаю Powershell, код на нем не зависит от языка системы.

Iska
16-06-2021, 22:06
Единственное, »
А ничего другого там и нет.

И да, коллега: флаг в руки, барабан на шею — и знакомиться с Canonical Verbs (https://docs.microsoft.com/en-us/windows/win32/shell/context#canonical-verbs), дабы не рассказывать сказки про «Powershell, код на нем не зависит от языка системы».

Buddha.g
23-07-2021, 01:13
надо использовать название глагола на языке интерфейса Проводника — "Сво&йства" vs "Properties" (не забывая про пометку горячей клавиши, буде таковая наличествовать). »

А ничего другого там и нет. »

Во-первых, код на Powershell, работает независимо от "языка интерфейса" проверял на английской и немецкой версиях Windows 10.
Во-вторых, код написан мной от первой до последней буквы заново, он другой, и работает, как для файла, так и для папки. Сказать "ничего другого там нем" - показать свои если не невежество, то уж точно завистливый, склочный характер.
В-третьих, я не пожадничал и поделился своим кодом целиком, как есть с сообществом. Пусть мелочь, но, возможно, поможет кому-нибудь и сэкономит время на поиски и пустые споры. А от Вас кроме бесполезного спора и хамства в этой теме "ничего другого" нет, к сожалению.




© OSzone.net 2001-2012