Запуск программы вместо explorer

Укрощение строптивого «проводника» Windows

Запуск программы вместо explorer
Источник: PC Magazine/RE, №1/2001

Нейл Дж. Рубенкинг

Пользователи операционной системы Microsoft Windows (95, 98 и NT 4.0) нередко обращаются к файлам и папкам своих ПК с помощью программы Windows Explorer. Она запускается из меню Start (Пуск) или кнопкой “горячего” запуска на “рабочем столе” и обычно отображает в своем окне содержимое накопителя C:.

Читатели часто задают вопрос: как заставить программу “начинать” с другого накопителя или вообще отображать конкретную папку какого-то накопителя? Все эти задачи решаются с помощью специально предусмотренных для Windows Explorer ключей командной строки. Их можно использовать в командной части экранной “аббревиатуры” или окна MS-DOS и даже в командном файле.

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

Ключи командной строки Windows Explorer

Ключи команд для Windows Explorer представлены в таблице. Они позволяют выбирать тип отображения данных в окне Explorer, указывать папку, содержимое которой будет представлено в этом окне, а также файл или папку, которые будут при этом выделены, и, наконец, задавать границы окна программы Explorer.

Как известно, есть два различных способа отображения содержимого накопителя или папки “Проводником”. Если щелкнуть на папке правой клавишей мыши и выбрать в появившемся меню пункт Open (Открыть), содержимое этой папки будет выведено в однопанельном окне (рис. 1).

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

По умолчанию Explorer “повторно использует” окна такого типа: если интересующая вас папка уже присутствует в открытом окне Explorer, программа не будет открывать новое окно, а активизирует существующее; если же после щелчка на папке правой клавишей мыши выбрать пункт меню Explore (Исследовать), откроется окно, состоящее из двух панелей (рис. 2). Такой тип представления называется “исследовательским”. В левой панели выводится дерево папок, а в правой – подробная информация о каждом файле или папке, в том числе имя, размер, тип и дата последнего обновления. Если ни один из ключей /n и /e не применяется, Explorer отображает информацию в открытом представлении и повторно использует существующие окна. Ключ /n отменяет повторное использование окон, так что формируется новое окно в открытом режиме. Ключем /e выбирается “исследовательское” представление. В этом режиме повторное использование имеющихся окон программой Explorer исключается. Если заданы оба ключа, программа игнорирует ключ /e.

Ключи subobject и /select,subobject определяют содержимое окна Explorer при запуске программы. Если с целью открыть папку добавить ее имя к имени файла Explorer.exe в командной строке, это и есть применение ключа subobject.

Если перед полным именем файла или папки поместить ключ /select, Explorer открывает родительскую папку и выделяет имя указанного файла или папки.

Так, в результате выполнения команды explorer /e, /select, c:\windows\system в окне Explorer будет отображено содержимое папки c:\windows, при этом входящая в нее папка system будет выделена.

Ключ /root,object имеет широкие возможности, хотя используется реже, чем другие ключи. Корневой называется папка, расположенная на самом верхнем уровне дерева папок Explorer; это папка, не имеющая родительской (по умолчанию папка Desktop).

С помощью ключа /root пользователь может указать любой накопитель или папку в качестве корневых для программы Explorer.

Таким образом, можно добиться того, чтобы в окне Explorer был представлен только накопитель C:, исключив прямой доступ к виртуальным папкам типа Printers или Control Panel.

Ключи в работе

Начнем с нескольких экспериментов. Откроем окно MS-DOS, перейдем к интересующей нас папке и введем команду explorer /e,. (вводим внимательно: explorer, пробел, косая черта, e, запятая, точка). Одна точка в конце команды символизирует текущую папку.

После выполнения этой команды мы получим двухпанельное окно Explorer, отображающее содержимое этой папки. Лучше всего проводить эксперименты с ключами командной строки Explorer в окне MS-DOS. Подобрав нужную комбинацию, можно подготовить экранную “аббревиатуру” с этой командой или включить ее в уже имеющуюся.

Вот несколько комбинаций ключей, которые могут пригодиться любому из нас.

Explorer /e,/select,c:\

Эта команда открывает окно Explorer с двумя панелями, причем содержимое всех накопителей не выводится. Команда полезна тем, кто располагает несколькими дисками и часто обращается ко всем накопителям.

Explorer /e,d:\

Открывается двухпанельное окно Explorer, в котором представлено содержимое диска D:.

Explorer /e,/root,d:\data

Эта комбинация ключей открывает окно Explorer с двумя панелями, отображающее содержимое папки data на диске D:. Пользователь может обращаться только к этой папке или ее подпапкам.

Explorer /e,/root,d:\,d:\data

Открывается окно Explorer с двумя подокнами, в котором отображается содержимое папки data на диске D:. Пользователь может “перемещаться” только в пределах диска D:.

Для подготовки новой “аббревиатуры” с применением той или иной командной строки следует щелкнуть правой клавишей мыши на “рабочем столе” и во всплывающем меню выбрать пункты New (Создать), затем Shortcut (Ярлык). В диалоговом окне Create Shortcut вводится полный текст команды.

Если эта “аббревиатура” была только что сформирована в окне MS-DOS, можно ее скопировать и вставить в диалоговое окно. Далее нужно щелкнуть на кнопке Next и присвоить ярлыку имя, например Explorer rooted on D. Теперь после щелчка на кнопке Finish, на “рабочем столе” появится новый ярлык.

Чтобы переместить его в меню Start, нужно просто отбуксировать на кнопку Start. После этого ярлык окажется в главной части меню Start, над пунктом меню Programs. Чтобы перенести ярлык в меню Programs, нужно щелкнуть на кнопке Start правой клавишей мыши и выбрать пункт Explore.

Средствами Windows Explorer на экран будет выведено окно с ярлыками и папками, входящими в меню Start; осталось только перетащить ярлык в папку Programs или в одну из ее подпапок.

Чтобы изменить содержимое командной строки экранной аббревиатуры, следует щелкнуть на ней правой клавишей мыши и выбрать пункт меню Properties (Свойства). В появившемся диалоговом окне нужно выбрать закладку Shortcut и выделить поле Target (рис. 3).

В него-то и следует ввести новую командную строку. Если нужный ярлык помещен в меню Start, необходимо щелкнуть правой клавишей мыши на кнопке Start и выбрать пункт Explore во всплывающем меню.

Теперь рекомендуем перейти к папке, содержащей искомый ярлык, и изменить его в соответствии с приведенными выше инструкциями.

В каких случаях происходят сбои

Похоже, в отдельных конфигурациях ключ /select,subobject не работает. Родительская папка подобъекта subobject открывается в левой панели окна и подсвечивается в дереве папок, но ни один из пунктов списка файлов и папок явным образом не выделяется.

Но если нажать на клавишу Tab, чтобы ознакомиться с подробной информацией о файлах и папках, выяснится, что подобъект subobject все-таки выделен. В базе знаний Microsoft Knowledge Base описано несколько ситуаций, когда ключи действительно не работают.

Как отмечается в статье Q208114, “Windows Explorer/N Switch Does Not Open a New Window” (http://support.microsoft.com/support/kb/articles/Q208/1/14.asp), команда Explorer /n не отключает возможность повторного использования окон в средах Windows 98 и Windows 98 SE.

Корпорация Microsoft рекомендует применять вместо него ключ /e. В статье Q237494, “The Explorer Command Does Not Select the Correct File” (http://support.microsoft.com/support/kb/articles/Q237/4/94.asp) разъясняется, что в среде Windows 98 SE ключ /select в чистом виде, т. е.

без ключей /n или /e, не всегда приводит к выделению нужного файла, если содержащая его папка уже открыта. Впрочем, эти недостатки не столь существенны и проявляются не на всех системах.

Источник: http://www.interface.ru/home.asp?artId=3904

Загрузка моей программы перед загрузкой Explorer a

Запуск программы вместо explorer
 
Brand2000   (2003-05-29 01:46) [0]

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

ini в секции [boot] свою прогу (shell=BrandExpl.exe),при перезагрузке она появляется, но при нажатии кнопки (Start Windows) загружается проводник а не рабочий стол и меню пуска.

Как добится реализации загрузки рабочего стола и меню пуска

Обработка события кнопки OnClick:

ShellExecute(Handle, “open”, , nil, , SW_SHOWNORMAL)Прошу помочь кто чем сможет! Заранее спасибооооо……

 
ers   (2003-05-29 07:40) [1]

дА есть такая фича! Во-Первых: Если Explorer УжЕ загружен то автоматом загружается кокрас проводник. Во-Вторых: Нужно использовать для запуска Explorera на начальной загрузке функцией WinExec(); вон в 2000-ых виндах До запуска Explorer sHellExecute(); ВООЩЕ не работает 😉 Удачи!

 
ers   (2003-05-29 07:44) [2]

Получилось?

 
DVM   (2003-05-29 09:20) [3]

> вон в 2000-ых виндах До запуска Explorer sHellExecute(); > ВООЩЕ не работает 😉 Чушь! Прекрасно все работает! Shell32.dll подгрузить надо.

 
Юрий Зотов   (2003-05-29 10:27) [4]

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

 
DVM   (2003-05-29 10:55) [5]

Вообще то если оболочку правильно сделать, то проводник вообще не будет запускаться, даже если его запускать насильно после старта своей оболочки.

 
Novichek   (2003-05-29 12:50) [6]

Brand2000 есть один вариант: 1) пропиши в реестре блокировку рабочего стола

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer
(“NoDesktop”,1)

после загрузки виндовса рабочего стола и кнопки “пуск” ты больше не увидишь :)) 2) пропиши свою программу не в System.ini, а в обычной автозагрузке 3) как только она загрузится, убей explorer

postmessage(findwindow(nil, “program manager”), WM_quit,0,0);

таким образом ты закроешь доступ на все какие-либо комбинации горячих клавиш (кроме contr-alt-del) и, соответственно, защитишь комп от несанкционированного лазания по его файлам 4) после ввода правильного пароля, перед закрытием программы, запусти explorer

ShellExecute(0, nil,”explorer.exe”, nil,nil, SW_SHOWDEFAULT);

5) отсчитай 10-15 секунд и закрывай свою программу, задержка нужна чтобы explorer не загрузил ее 2-й раз, а не то получится замкнутый круг :)) 6) чуть незабыл – что бы твоя программа не загрузилась 2-й раз добавь это

procedure TForm1.FormCreate(Sender: TObject); var Wnd : hWnd; begin Wnd := GetWindow(Handle, gw_HWndFirst); WHILE Wnd 0 DO BEGIN IF (Wnd Application.

Handle) AND (GetWindow(Wnd, gw_Owner) = 0) THEN BEGIN GetWindowText (Wnd, buff, sizeof (buff )); IF StrPas (buff) = Application.

Title THEN BEGIN Halt; END; END; Wnd := GetWindow (Wnd, gw_hWndNext); END; postmessage(findwindow(nil, “program manager”), WM_quit,0,0); END;

 
Novichek   (2003-05-29 12:54) [7]

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

 
DVM   (2003-05-29 13:03) [8]

> Novichek © Дело в том, что есть такая функция: function SetShellWindow(hWnd: HWND): dword; stdcall; external “User32.dll” name “SetShellWindow”; Она сообщает системе, что указанное окно – оболочка. Такое в системе может быть только одно.

Когда запущен эксплорер данная функция не срабатывает. Когда данная функция применена к какому-либо окну в отсутствии эксплорера, то эксплорер потом запустить не удасться, пока существует это окно. Он просто не запускается.

Попутно данная функция двигает окно назад, так, что ниже него ни одно окно не может расположится. Этой функцией пользуется сам эксплорер. Вызов этой функции обязателен для своей оболочки.

Ну есть еще много мелочей, которые тоже должны быть выполнены, чтобы система действительно решила, что ваше окно – оболочка. P.S. С VCL окнами не срабатывает почему-то. Делал на API.

 
Novichek   (2003-05-29 13:28) [9]

насколько я знаю эта функция только для Win98, т.к. “User32.dll” в WinXP не работает, по крайней мере у меня на WinXP компилятор на этой строчке, всегда спотыкается.

 
DVM   (2003-05-29 14:51) [10]

> насколько я знаю эта функция только для Win98, т.к. “User32.dll” > в WinXP не работает, по крайней мере у меня на WinXP компилятор > на этой строчке, всегда спотыкается. нет

 
Novichek   (2003-05-29 15:25) [11]

извини я его с KERNEL32.DLL перепутал

 
Игорь Шевченко   (2003-05-29 16:19) [12]

Novichek © (29.05.03 13:28) Функция SetShellWindow находится в USER32.

DLL (и всегда там жила) Компилятор будет спотыкаться, так что ее надо загружать динамически, через GetProcAddress(GetModuleHandle(“USER32”), “SetShellWindow”); или объявлять, как function SetShellWindow (Wnd : HWND) : LongBool; stdcall; external “user32.

dll”; Что она делает: Регистрирует для указанного окна комбинацию клавиш Ctrl+Esc, связывает окно с рабочим столом и помещает его вниз в Z-order”е. Связь с рабочим столом нужна в том числе и для того, чтобы окно было всегда внизу Z-order. Объект окна также блокируется от разрушения функцией DestroyWindow.

 
Brand2000   (2003-05-30 08:18) [13]

Вообще моя задумка в другом (она реализована в XP(user name&pass).

> Во-Вторых: Нужно использовать для запуска Explorera на начальной > загрузке функцией WinExec(); вон в 2000-ых виндах До запуска > Explorer sHellExecute(); ВООЩЕ не работает 😉

1)Я так понял мне надо сделать обработчик click”a так:

WinExec(Handle, “open”, , nil, , SW_SHOWNORMAL)

дапустим это правильно…..но я хочу загружать прогу до загрузки Explorera (Hаверное надо делать boot прогу?)

Источник: http://delphimaster.net/view/4-10489

5 простых способов запуска программы в Windows 10 от имени другого пользователя

Запуск программы вместо explorer

Во всех поддерживаемых версиях Windows существует возможность запускать в текущей сессии программы от имени другого пользователя (Run As). Благодаря этому можно выполнить скрипт (.bat, .cmd, .vbs, .ps1), исполняемый .exe файл или запустить установку приложения (.msi, .cab) с полномочиями другого пользователя (привелигированного).

К примеру, благодаря возможности использовать функционал Run As можно в сессии пользователя с ограниченными правами запустить установку программы или открыть нужную MMC оснастку управления компьютером под административной учетйно записью.

Также возможность запуска программы «от имени» может быть полезна в ситуациях, когда приложение настроено под другим пользователем (и соответственно хранит свои настройке в чужом профиле, к которому у данного пользователя нет данных), а его нужно запустить с теми же настройками в сессии другого пользователя.

В Windows 10 есть несколько способов запустить процесс от имени другого пользователя.

Запуск программы от имени другого пользователя из Проводника (File Explorer)

Самый простой способ запустить приложение под другим пользователем – воспользоваться графическим интерфейсом Проводника Windows (File Explorer). Просто найдите нужно приложение (или ярлык), зажмите клавишу Shift и щелкните по нему правой кнопкой мыши. Выберите пункт контекстного меню «Запуск от имени другого пользователя» (Run as different user).

Примечание. Если пункт меню «Запуск от имени другого пользователя» отсутствует, см. следующий раздел.

5 простых способов запуска программы в Windows 10 от имени другого пользователя

В появившемся окне нужно будет указать имя и пароль пользователя, под чьей учетной записью нужно запустить приложение и нажать кнопку ОК.

Примечание. Если нужно указать доменного пользователя, используется один из следующий форматов имени: UserName@DomainName или DomainName\UserName

5 простых способов запуска программы в Windows 10 от имени другого пользователя

Важно. Запуск программы от имени другого пользователя возможен, если для него задан пароль. Использовать Run as для учетки с пустым паролем не получится.

5 простых способов запуска программы в Windows 10 от имени другого пользователя

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

Что делать, если отсутствует пункт «Запуск от имени другого пользователя»

В том случае, если у вас в контекстном меню отсутствует пункт Запуск от имени другого пользователя (Run as different user), откройте редактор групповых политик (gpedit.

msc) и убедитесь, что в разделе Конфигурация компьютера -> Административные шаблоны -> Компоненты Windows -> Пользовательский интерфейс учетных данных (Computer Configuration -> Administrative Templates -> Windows Components -> Credential User Interface) отключена (Не задана) политика Запрашивать достоверный путь для входа в учетную запись (Require trusted path for credential entry) .

5 простых способов запуска программы в Windows 10 от имени другого пользователя

Утилита Runas:как запустить приложение от имени другого пользователя из командной строки

Запустить программу или скрипт от имени другого пользователя можно и из командной строки или ярлыка приложения. Кроме того, этот способ предполагает возможность сохранения пароля пользователя, чтобы его не пришлось набирать каждый раз. Для этого можно воспользоваться консольной утилитой runas.exe.

Откройте командную строку (или окно Выполнить, нажав сочетание клавиш Win+R). Для запуска Блокнота под учетной записью admin выполните команду:

runas /user:admin “C:\Windowsotepad.exe”

5 простых способов запуска программы в Windows 10 от имени другого пользователя

В отрывшемся окне появится приглашение «Введите пароль для admin», где нужно набрать пароль пользователя и нажать Enter.

5 простых способов запуска программы в Windows 10 от имени другого пользователя

Совет. В том случае если имя пользователя содержит пробел, его нужно взять в кавычки.

При необходимости запуска программы под доменным пользователем нужно использовать формат имени UserName@DomainName или DomainName\UserName. Например, чтобы с помощью блокнота открыть текстовый файл от имени доменного пользователя, воспользуемся командой:

runas /user:corp\domain_admin “C:\Windowsotepad.exe C:\tmp\2871997×64.txt”

5 простых способов запуска программы в Windows 10 от имени другого пользователя

Введите пароль для corp\domain_admin:
Попытка запуска C:\Windowsotepad.exe C:\tmp\2871997×64.txt от имени пользователя “corp\domain_admin” …

Чтобы создать на рабочем столе ярлык для запуска программы под другим пользователем, просто создайте новый ярлык, в окне с адресом объекта которого укажите нужную команду с runas.

5 простых способов запуска программы в Windows 10 от имени другого пользователя

При запуске такого ярлыка будет запрашиваться пароль пользователя.

Чтобы сохранить вводимый пароль другого пользователя нужно воспользоваться ключом /savecred.

runas /user:admin /savecred “C:\Windowsotepad.exe”

После указания пароля он сохранится в диспетчере паролей Windows и при следующем запуске команды runas под этим же пользователем с ключом /savecred система автоматически воспользуешься сохраненным паролем, а не будет запрашивать его повторно.

5 простых способов запуска программы в Windows 10 от имени другого пользователя

Однако использование параметра /savecred не безопасно, т.к.

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

Кроме того, сохраненные пароли из Credential Manager можно легко украсть, поэтом лучше запретить использование сохраненных паролей (а тем более нельзя сохранять пароль привилегированной административной учетной записи).

Примечание. Кроме того, ключ /savecred не работает в Home редакциях Windows.

Запуск MMC оснасток от имени другого пользователя

В некоторых случаях от имени другого пользователя нужно запустить одну из управляющих оснасток Windows. К примеру, если под другим пользователем нужно запустить оснастку Active Directory Users and Computers, можно воспользоваться такой командой.

runas.exe /user:DOMAIN\USER “cmd /c start \”\” mmc %SystemRoot%\system32\dsa.msc”

Аналогичным образом можно запустить любую другую оснастку (главное знать ее имя).

Как добавить пункт «Запуск от имени..» программам в меню Пуск

По-умолчанию в Windows 10 у элементов меню Пуск (начального экрана) отсутствует возможность запуска приложений под другим пользователем.

Чтобы добавить контекстное меню «Запуск от имени другого пользователя» нужно включить политику Показывать команду «Запуск от имени другого пользователя» при запуске (Show “Run as different user” command on Start) в разделе редактора групповых политик (консоль gpedit.

msc) Конфигурация пользователя -> Административные шаблоны -> Меню Пуск и панель задач (User Configuration -> Administrative Templates ->Start Menu and Taskbar).

5 простых способов запуска программы в Windows 10 от имени другого пользователя

Либо, если редактор gpedit.msc отсутствует, создать в ветке реестра HKEY_CURRENT_USER\Software\Policies\
Microsoft\Windows\Explorer ключ типа DWORD с именем ShowRunasDifferentuserinStart и значением 1.

5 простых способов запуска программы в Windows 10 от имени другого пользователя

Осталось обновить политики (gpupdate /force) и убедиться, что у программ в меню Пуск появится новое контекстное меню Дополнительно ->Запуск от имени другого пользователя.

5 простых способов запуска программы в Windows 10 от имени другого пользователя

Источник: https://zen.yandex.ru/media/winitpro.ru/5-prostyh-sposobov-zapuska-programmy-v-windows-10-ot-imeni-drugogo-polzovatelia-5b128d4a799d9d12ee2f5489

Поделиться:
Нет комментариев

    Добавить комментарий

    Ваш e-mail не будет опубликован. Все поля обязательны для заполнения.