Як запустити додаток Metro з командного рядка в Windows 8?


20

Я розробляю систему автоматизації, і однією з її особливостей є запуску програм з командного рядка (я маю на увазі, автоматично без втручання людини).

У Windows 7 я можу запустити все, що хочу, з виклику командного рядка, є якийсь подібний спосіб зробити те ж саме з Windows 8, також встановлені на ньому програми Metro?


У Windows 8, є чи з командного рядка?
Ян Бойд

1
так, просто введіть cmd на інтерфейс метро та виконайте його.
Діого

Ви використовуєте VS?
soandos

2
FWIW, ви можете замість цього зосередитись на Powershell. Пакет AppX включає кілька командлетів для керування програмами Metro (див. Get-Help AppxПодробиці), хоча наразі я не зміг знайти нічого для їх запуску.
Індрек

1
Наскільки мені відомо, ви не можете запускати програми Metro з командного рядка. Я сподіваюся, що хтось знає якісь хаки / рішення.
Корпоративний Geek

Відповіді:


12

Так! Я знайшов спосіб ...

На основі цього вихідного коду ("Відкрити додаток для стилю метро з програми для робочого столу") я зрозумів, що можу викликати програми метро так само, як ми зазвичай працюємо вручну. Я маю на увазі, якщо натиснути Ctrl+ Escі перейти до екрана метро, ​​ви можете просто набрати назву програми метро, ​​наприклад, наприклад, "магазин", натиснути, Enterі це все, програма метро працює. На підставі цього я створив дуже простий VBScript, щоб зробити саме ці кроки автоматично:

Встановити objShell = WScript.CreateObject ("WScript.Shell")

objShell.SendKeys "^ {ESC}"

WScript.Seep 1000

objShell.SendKeys WScript.Arguments.Item (0)

WScript.Seep 1000

objShell.SendKeys "{ENTER}"

Збережіть це як "metro.vbs" і зателефонуйте в командному рядку з назвою програми метро на першому аргументі:

магазин metro.vbs

Це все, дуже простий та оптимізований спосіб.

PS: Усі кредити надані AlKhuzaei , користувачеві сайту Codeplex, який створив відповідний код. Дякую.


Ах, мені було цікаво те саме. Цікаве рішення. Єдина проблема - якщо у вас встановлено дві програми з однаковим іменем, як, наприклад, Metro та настільні версії Evernote. Що запускається з вищевказаного ?? Має бути інший спосіб, оскільки Visual Studio може запустити додаток, який ви розробляєте.
Джим Маккіт

Я думаю, що оскільки ctrl + esc, він відкриє лише додаток метро ... Це те, що б не було тесту.
Діого

Ні, просто спробував. [Ctrl] + [Esc] такий же, як [Win], і обидва просто показують меню "Пуск" , що дозволяє запускати будь-яку програму там - Metro та Desktop.
Джим Маккіт

Отже, що робить Windows 8, коли метро та стіл двох програм мають одне ім’я ??? Це стало дублюватися в інтерфейсі метро?
Діого

Так, це насправді дратує. Я саме з цієї причини видалив версію метро Evernote.
Джим Маккіт

6

Наступний запис у блозі та допоміжний код показують, як це зробити за допомогою IApplicationActivationManager в PowerShell.

Отримайте список програм метро та запустіть їх у Windows 8 за допомогою PowerShell «Tome's Land of IT

На щастя, мені вдалося знайти якийсь код у Stack Overflow, який показав, як це використовувати в C # (у публікації також вказана інформація про реєстр, яку я опишу в цій статті). Після деякого налаштування коду та синтаксису Add-Type, я зміг розкрити потрібну мені функцію в PowerShell. Після цього було лише питання вкрутити функцію у щось, що нагадує PowerShell.

Код можна знайти на поштовому коді .


Ласкаво просимо до Супер Користувача, Томе! Ми хотіли б, щоб відповіді були самостійними, таким чином, не надто покладаючись на зовнішні ресурси. Я цитував найбільш релевантні частини вашої публікації в блозі, але ви можете редагувати набагато більше, також щодо вирішення точної проблеми ОП.
slhck

Дуже класна інформація, ось!
Бен Річардс

5

Я просто придумав інший спосіб зробити це і написав коротку статтю про нього за адресою http://www.itsjustwever.com/2012/10/28/launch-windows-8-metro-apps-from-a-desktop- ярлик або командний рядок /

Коротка версія: створити ярлик, який вказує на bingnews: // Ви можете бачити, чи робить він те, що ви хочете. Якщо так, то більше інструкцій отримувати імена на веб-сайті.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.