Làm cách nào để chạy Ứng dụng Metro từ dòng lệnh trong Windows 8?


20

Tôi đang phát triển một hệ thống tự động hóa và một trong những tính năng của nó là chạy các ứng dụng từ dòng lệnh (ý tôi là, tự động không có sự can thiệp của con người).

Trên Windows 7 tôi có thể chạy mọi thứ tôi muốn từ một cuộc gọi dòng lệnh, có cách nào tương tự để làm tương tự với Windows 8 với các ứng dụng Metro được cài đặt trên nó không?


Trong Windows 8, có một dòng lệnh?
Ian Boyd

1
có, chỉ cần gõ cmd trên giao diện tàu điện ngầm và thực hiện nó.
Diogo

Bạn đang sử dụng VS?
soandos

2
FWIW, bạn có thể muốn tập trung vào Powershell thay thế. Gói AppX bao gồm một số lệnh ghép ngắn để quản lý ứng dụng Metro (xem Get-Help Appxchi tiết), mặc dù tôi không thể tìm thấy bất cứ điều gì để chạy chúng vào lúc này.
Indrek

1
Theo hiểu biết của tôi, bạn không thể chạy các ứng dụng Metro từ dòng lệnh. Tôi hy vọng ai đó biết một số hack / giải pháp.
Công ty Geek

Câu trả lời:


12

Vâng! Tôi tìm được một cách...

Dựa trên mã nguồn này ("Mở ứng dụng kiểu Metro từ ứng dụng máy tính để bàn"), tôi nhận ra rằng tôi có thể gọi các ứng dụng tàu điện ngầm giống như chúng ta thường chạy thủ công. Ý tôi là, nếu bạn nhấn Ctrl+ Escvà đi đến màn hình của tàu điện ngầm, bạn có thể chỉ cần nhập tên của ứng dụng tàu điện ngầm, chẳng hạn như "cửa hàng", nhấn Entervà đó là ứng dụng tàu điện ngầm đang chạy. Dựa trên điều này, tôi đã tạo một VBScript rất đơn giản để thực hiện chính xác các bước này một cách tự động:

Đặt objShell = WScript.CreateObject ("WScript.Shell")

objShell.SendKeys "^ {ESC}"

WScript.S ngủ 1000

objShell.SendKeys WScript.Argument.Item (0)

WScript.S ngủ 1000

objShell.SendKeys "{ENTER}"

Lưu cái này dưới dạng "metro.vbs" và gọi nó từ dòng lệnh với tên của ứng dụng metro trên đối số đầu tiên:

cửa hàng metro.vbs

Đó là nó, cách rất đơn giản và tối ưu.

PS: Tất cả các khoản tín dụng đã được trao cho AlKhuzaei , người dùng trang Codeplex, người đã tạo mã liên quan. Cảm ơn bạn.


Ah, tôi đã tự hỏi điều tương tự. Giải pháp thú vị. Vấn đề duy nhất là nếu bạn có hai chương trình có cùng tên, như cả phiên bản Metro và máy tính để bàn của Evernote được cài đặt. Mà được ra mắt với ở trên ?? Cần có một cách khác vì Visual Studio có thể khởi chạy ứng dụng bạn đang phát triển.
Jim McKeeth

Tôi nghĩ rằng vì ctrl + esc, nó sẽ chỉ mở ứng dụng metro ... Đó là thứ sẽ xóa bài kiểm tra.
Diogo

Không, chỉ cần thử nó. [Ctrl] + [Esc] giống như [Win] và cả hai chỉ hiển thị Menu Bắt đầu , cho phép khởi chạy bất kỳ chương trình nào ở đó - Metro và Desktop giống nhau.
Jim McKeeth

Vậy, Windows 8 làm gì khi hai ứng dụng metro và bàn có cùng tên ??? Nó trở thành trùng lặp trên giao diện tàu điện ngầm?
Diogo

Vâng, nó thực sự gây phiền nhiễu. Tôi đã gỡ cài đặt phiên bản Metro của Evernote vì lý do đó.
Jim McKeeth

6

Bài đăng blog và mã hỗ trợ sau đây cho bạn thấy cách thực hiện điều này với IApplicationActivationManager trong PowerShell.

Nhận danh sách các ứng dụng tàu điện ngầm và khởi chạy chúng trong Windows 8 bằng PowerShell «Tome's Land of IT

May mắn thay, tôi đã có thể tìm thấy một số mã trên Stack Overflow chỉ ra cách sử dụng mã này trong C # (bài đăng cũng liệt kê thông tin đăng ký mà tôi sẽ mô tả trong bài viết này). Sau một số điều chỉnh mã và cú pháp Add-Type, tôi đã có thể hiển thị chức năng tôi cần trong PowerShell. Sau đó, vấn đề chỉ là gói chức năng vào một cái gì đó tương tự như PowerShell.

Mã có thể được tìm thấy trên poshcode .


Chào mừng đến với Siêu người dùng, Tome! Chúng tôi muốn các câu trả lời được khép kín, do đó không phụ thuộc quá nhiều vào các nguồn lực bên ngoài. Tôi đã trích dẫn những phần có liên quan nhất trong bài đăng trên blog của bạn, nhưng bạn có thể chỉnh sửa nhiều hơn nữa, cũng liên quan đến việc giải quyết vấn đề chính xác của OP.
slhck

Thông tin rất mát mẻ, ở đây!
Ben Richards

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.