Jak uruchomić aplikację Metro z wiersza polecenia w systemie Windows 8?

20

Tworzę system automatyzacji, a jedną z jego funkcji jest uruchamianie aplikacji z poziomu wiersza poleceń (to znaczy automatycznie bez interwencji człowieka).

W systemie Windows 7 mógłbym uruchomić wszystko, co chcę z wywołania z wiersza polecenia, istnieje jakiś podobny sposób, aby zrobić to samo z Windows 8 z zainstalowanymi na nim aplikacjami Metro?

Diogo
źródło
Czy w Windows 8 jest wiersz poleceń?
Ian Boyd
1
tak, po prostu wpisz cmd w interfejsie metra i uruchom go.
Diogo,
Czy używasz VS?
soandos
2
FWIW, możesz zamiast tego skupić się na PowerShell. Pakiet AppX zawiera kilka poleceń cmdlet do zarządzania aplikacjami Metro (zobacz Get-Help Appxszczegóły), choć w tej chwili nie mogłem znaleźć niczego do ich uruchomienia.
Indrek,
1
Z mojej wiedzy nie można uruchamiać aplikacji Metro z wiersza poleceń. Mam nadzieję, że ktoś zna jakieś hack / rozwiązania.
Corporate Geek

Odpowiedzi:

12

Tak! Znalazłem drogę...

Na podstawie tego kodu źródłowego („Otwórz aplikację Metro Style z aplikacji komputerowej”) zdałem sobie sprawę, że mogę wywoływać aplikacje metra tak, jak zwykle uruchamiamy ręcznie. To znaczy, jeśli naciśniesz Ctrl+ Esci przejdziesz do ekranu metra, możesz po prostu wpisać nazwę aplikacji metra, na przykład „sklep”, naciśnij, Enteri to wszystko, aplikacja metra jest uruchomiona. Na tej podstawie stworzyłem bardzo prosty skrypt VBScript do automatycznego wykonywania dokładnie tych kroków:

Ustaw objShell = WScript.CreateObject („WScript.Shell”)

objShell.SendKeys "^ {ESC}"

WScript.Sleep 1000

objShell.SendKeys WScript.Arguments.Item (0)

WScript.Sleep 1000

objShell.SendKeys "{ENTER}"

Zapisz to jako „metro.vbs” i wywołaj z wiersza poleceń z nazwą aplikacji metra przy pierwszym argumencie:

sklep metro.vbs

To jest bardzo prosty i zoptymalizowany sposób.

PS: Wszystkie kredyty zostały przekazane AlKhuzaei , użytkownikowi witryny Codeplex, który utworzył powiązany kod. Dziękuję Ci.

Diogo
źródło
Ach, zastanawiałem się nad tym samym. Ciekawe rozwiązanie Jedynym problemem jest to, że masz zainstalowane dwa programy o tej samej nazwie, na przykład zarówno wersja Metro, jak i wersja Evernote na komputery. Który uruchamia się z powyższym? Powinien istnieć inny sposób, ponieważ Visual Studio może uruchomić rozwijaną aplikację.
Jim McKeeth,
Myślę, że ponieważ ctrl + esc otworzy tylko aplikację metra ... To jest coś, co przeszedłoby test.
Diogo
Nie, właśnie spróbowałem. [Ctrl] + [Esc] to to samo, co [Win], i oba pokazują tylko menu Start , które pozwala uruchomić tam dowolny program - zarówno Metro, jak i Desktop.
Jim McKeeth,
Co więc robi system Windows 8, gdy dwie aplikacje metro i desk mają tę samą nazwę ??? Został zduplikowany na interfejsie metra?
Diogo
Tak, to naprawdę denerwujące. Właśnie z tego powodu odinstalowałem wersję Evernote Metro.
Jim McKeeth
6

Poniższy post na blogu i kod pomocniczy pokazują, jak to zrobić za pomocą IApplicationActivationManager w PowerShell.

Pobierz listę aplikacji metra i uruchom je w Windows 8 za pomocą PowerShell «Tome's Land of IT

Na szczęście udało mi się znaleźć kod na przepełnieniu stosu, który pokazał, jak tego używać w języku C # (post zawierał także informacje o rejestrze, które opiszę w tym artykule). Po kilku poprawkach kodu i składni Add-Type byłem w stanie udostępnić potrzebną mi funkcję w PowerShell. Potem wystarczyło tylko zawinąć funkcję w coś, co przypomina PowerShell.

Kod można znaleźć na poshcode .

Tom Tanasowski
źródło
Witamy w Super User, Tome! Chcielibyśmy, aby odpowiedzi były samodzielne, a zatem nie polegały zbytnio na zasobach zewnętrznych. Zacytowałem najważniejsze części Twojego posta na blogu, ale możesz swobodnie edytować więcej, również w odniesieniu do rozwiązania dokładnego problemu PO.
slhck
Bardzo fajna informacja tutaj!
Ben Richards,