Переход к Рабочему столу при старте Windows 8

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

Переход к Рабочему столу при старте Windows 8

Сообщение Yuliya » 01 май 2014, 23:06

Как известно, Windows 8 с интерфейсом Metro запускается в плиточном представлении нового меню "Пуск". Это не всегда удобно, так как даже запуск обычного полноэкранного приложения может быть скрыт этим меню. В настоящее время актуален вопрос: как перейти к привычному Рабочему столу?
Для beta-версий системы предлагалось несколько способов решения этой проблемы, и почти все они учтены (и, соответственно, заблокированы) разработчиками в финальном релизе. Однако есть ряд приложений, запуск которых обязательно сопровождается предварительным переходом к Рабочему столу. Например, запуск Командной строки, закреплённой на Стартовом экране, использование сочетания Win+R для команды "Выполнить". К числу таких приложений относится и сам Проводник Windows (explorer.exe).
Пример простейшего пакетного файла, помещаемого в Автозапуск, и решающего поставленную задачу, выглядит так:
REM --- Start of file ---
: Открыть окно Проводника с местоположением по умолчанию
explorer.exe
: Запустить приложение (здесь: Internet Explorer в полноэкранном режиме и открытым сайтом http://seo-doka.ru)
start "IE" "C:\Program Files\Internet Explorer\iexplore.exe" -k http://seo-doka.ru
REM --- End of file
Кстати, чтобы открыть папку "Автозапуск" текущего пользователя, необходимо набрать в командной строке explorer shell:startup.
Чуть более сложный вариант (JScript, для использования сохранить в файл с расширением .wsf):
// --- Start of file ---
<job id="IE">

<runtime>
<description>Sript shows Desktop (Windows 8) and can start Internet Explorer.</description>
<named
name = "IEcmd"
helpstring = "Arguments that will be given to iexplore.exe
value = Arguments. Line must be double quotted"
type = "string"
required = true
/>
<example>
Examples:
script.wsf /IE: /IEcmd:"-k -private http://seo-doka.ru"</example>
</runtime>

<script language="JScript">

function tryToShowDesktop() {
// Opens a Windows Explorer's special folder and closes all of its windows
WScript.Echo("Try to show Desktop: 1) open a window -> 2) close it.");
WScript.Echo("\t1) Open \"" + wshShell.SpecialFolders("MyDocuments") + "\".");
try {
wshShell.Run("C:\\Windows\\Explorer.exe " + wshShell.SpecialFolders("MyDocuments"), 1, true); // Runs Windows Explorer, opens MyDocuments folder, halts until app is running
WScript.Sleep(3000); // Wait until started
} catch(e) {
WScript("Error while starting Explorer.exe: " + e.message);
WScript.Quit();
}
WScript.Echo("\t2) Close all Windows Exlprorer's windows.");
try {
objShellWindows = objShell.Windows();
if (objShellWindows == null) {
WScript.Echo("Error while creating an instance of Shell.Windows.");
WScript.Quit();
}
} catch (e) {
WScript.Echo("Error while creating an instance of Shell.Windows: " + e.message);
WScript.Quit();
}
WScript.Echo("\tWindows' count: " + objShellWindows.Count);
for (var w = 0; w < objShellWindows.Count; ++w)
if (objShellWindows.Item(w) != null) {
WScript.Echo("\t\tTry to close \"" + objShellWindows.Item(w).LocationName + "\" window.");
try {
objShellWindows.Item(w).Quit();
} catch(e) {
WScript.Echo("Error while closing \"" + objShellWindows.Item(w).LocationName + "\" window: " + e.message);
WScript.Echo("\tTry to resume...");
}
}
}

function startIE(cmd) {
// Starts IE if it is not running
WScript.Echo("Try to start iexplore.exe.");
try {
var objWMIService = GetObject("winmgmts:\\\\.\\root\\CIMV2");
WScript.Echo("\tWMI Service object for enumeration of running processes is created.");
var colProcs = objWMIService.ExecQuery("SELECT * FROM Win32_Process WHERE Name='iexplore.exe'");
if (colProcs.Count > 0)
WScript.Echo("\tiexplore.exe is already running. Found " + colProcs.Count + " instance(s) of iexplore.exe.");
else {
// Try to run
WScript.Echo("\iexplore.exe is not running. Try to run...");
wshShell.CurrentDirectory = "C:\\Program Files\\Internet Explorer";
WScript.Echo("\t\tCurrent directory is set to \"" + "C:\\Program Files\\Internet Explorer" + "\".");
wshShell.Run("\"" + "C:\\Program Files\\Internet Explorer\\iexplore.exe\"" + " " + cmd, 1, false); // Runs the IE, activates a window, returns immediately
WScript.Echo("\t\iexplore.exe" + " " + cmd + " is started.");
}
} catch(e) {
WScript.Echo("Error while starting of iexplore.exe: " + e.message);
WScript.Quit();
}
}

// *********************** Start of script ***********************
// Test script arguments and show usage info
var argsNamed = WScript.Arguments.Named;
if (!argsNamed.Exists("IEcmd")) {
WScript.Arguments.ShowUsage();
WScript.Quit();
} else if (argsNamed("IEcmd") == "") {
WScript.Arguments.ShowUsage();
WScript.Quit();
}

// Create needed objects
wshShell = WScript.CreateObject("WScript.Shell");
if (wshShell == null) {
WScript.Echo("Error while creating an instance of WScript.Shell.");
WScript.Quit();
}

var cmd = argsNamed("IEcmd");
startIE(cmd);

</script>
</job>
// --- End of file ---
Запускать лучше с явным указанием консольного интерпретатора (чтобы сообщения не выводились по отдельности): cscript script.wsf /IEcmd:"-k -private http://seo-doka.ru". Запуск скрипта без параметров отобразит справку по использованию.
Yuliya
Чайник
 
Сообщений: 6
Зарегистрирован: 30 апр 2014, 21:38

Вернуться в Программы, приложения, утилиты

Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2