Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Microsoft Windows 2000/XP (http://forum.oszone.net/forumdisplay.php?f=6)
-   -   [решено] запуск "Свойства папки" из командной строки (http://forum.oszone.net/showthread.php?t=59346)

kovdaev 13-01-2006 21:34 392102

запуск "Свойства папки" из командной строки
 
rundll32 shell32, Control_RunDLL main.cpl @1 - открыть диалог "Свойства клавиатуры"

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

Blast 13-01-2006 23:31 392143

Код:

rundll32.exe shell32.dll,Options_RunDLL 0

kovdaev 14-01-2006 10:06 392242

Спасибо.

N1ckUs 22-01-2008 06:49 722607

Заранее извинияюсь, что так вовремя, но может ещё подскажете, возможно ли так же вызвать лиалог свойств определённой папки?

Vadikan 22-01-2008 07:06 722613

N1ckUs, возможно, получится с помощью AutoIt (тема) или vbs/wsh. Но нужно конкретно ставить вопрос, а не просто теоретически.

N1ckUs 22-01-2008 08:17 722634

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

N1ckUs 24-01-2008 14:51 724523

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

Admiral 24-01-2008 15:22 724549

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

Blast 24-01-2008 20:05 724780

N1ckUs, посмотрите здесь - там о панели управления, но суть та же.

Admiral 24-01-2008 20:54 724817

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

amel27 25-01-2008 07:58 725077

Вложений: 1
Цитата:

Цитата N1ckUs
Мне просто хотелось бы запустить этот диалог с правами другого пользователя, но насколько я понял, этот диалог является частью хплорера и запускается соответственно с правами запустившего его.. »

через RunDll32 AFAIK нереально и чем скрипты не устраивают?... есть вариант для папок на VBS, но с окончанием работы скрипта закрывается и окно поэтому на AutoIT ИМХО сподручней (см. вложение - для файлов и папок)
Код:

sDir = "C:\"

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

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

Цитата:

Цитата Admiral
А есть что б прога отдельно в комплекте ОС Windows? »

дык в комплекте или отдельно?... к примеру, есть порт того же touch для WIN

Admiral 25-01-2008 21:15 725580

Цитата:

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

Цитата:

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

Buddha.g 15-06-2021 20:56 2960347

Тема вроде решена, но рабочего решения я не нашел.
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 2960355

Цитата:

Цитата Buddha.g
а VBS не работает.
Я не спец в VBS, может там что-то подправить надо, »

Судя по тому, что у Вас работает идентичный же код на PowerShell — надо использовать название глагола на языке интерфейса Проводника — "Сво&йства" vs "Properties" (не забывая про пометку горячей клавиши, буде таковая наличествовать).

Buddha.g 16-06-2021 00:04 2960364

Цитата:

Цитата Iska
Судя по тому, что у Вас работает идентичный же код на PowerShell — надо использовать название глагола на языке интерфейса Проводника — "Сво&йства" vs "Properties" (не забывая про пометку горячей клавиши, буде таковая наличествовать). »

Единственное, что объединяем эти 2 скрипта - это идея использования COM-объекта и на этом вся их "идентичность" заканчивается.Вот почему я уважаю Powershell, код на нем не зависит от языка системы.

Iska 16-06-2021 22:06 2960439

Цитата:

Цитата Buddha.g
Единственное, »

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

И да, коллега: флаг в руки, барабан на шею — и знакомиться с Canonical Verbs, дабы не рассказывать сказки про «Powershell, код на нем не зависит от языка системы».

Buddha.g 23-07-2021 01:13 2962679

Цитата:

Цитата Iska
надо использовать название глагола на языке интерфейса Проводника — "Сво&йства" vs "Properties" (не забывая про пометку горячей клавиши, буде таковая наличествовать). »

Цитата:

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

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


Время: 17:18.

Время: 17:18.
© OSzone.net 2001-