2010-07-13 11 views
6

Tôi là 3 tháng mới tham gia WPF và cố gắng xây dựng một ứng dụng khởi chạy cho vui (tên trình khởi chạy ứng dụng theo tên).C# - Process.Start một ứng dụng ClickOnce? URL nào?

Tôi dường như không thể khởi chạy các ứng dụng ClickOnce theo Tên quy trình.

Nói cách khác:

  • Process.Start ("Firefox"); // sẽ hoạt động
  • Process.Start ("MetroTwit"); // một ứng dụng ClickOnce - sẽ KHÔNG hoạt động

Tôi đã đọc rằng bạn nên gọi nó bằng URL? Nhưng bạn tìm ra URL của các ứng dụng nhấp chuột được cài đặt ở đâu?

Lý tưởng nhất là tôi muốn làm mới một danh sách các ứng dụng được cài đặt trên hệ thống người dùng (Program Files & ClickOnce & AIR khách hàng) mỗi phút hoặc lâu hơn và làm tìm kiếm mờ về loại vv

Trợ giúp đánh giá rất cao.

Trả lời

4

Có hai loại ứng dụng ClickOnce (được đặt khi xuất bản ứng dụng) những ứng dụng được cài đặt trên menu bắt đầu và những ứng dụng chỉ có thể chạy từ url web.

Ứng dụng được cài đặt trong trình đơn bắt đầu có thể được tìm thấy (đáng ngạc nhiên) trong thư mục trình đơn bắt đầu, chúng có loại phím tắt đặc biệt với phần mở rộng APPREF-MS.

Bạn có thể sử dụng Process.Start để chạy tệp APPREF-MS.

Ứng dụng được định cấu hình để chỉ chạy từ url web, tốt, bạn phải chạy chúng từ url web.

+0

Điều này thật tuyệt vời, tôi đã phân tích cú pháp các ứng dụng đã đăng ký "gỡ cài đặt" khác nhau trong sổ đăng ký ... Không thú vị ... Nhưng cách của bạn đơn giản hơn rất nhiều. Chỉ cần phân tích cú pháp nội dung của 2 menu bắt đầu (cục bộ/toàn cục), tìm các tệp .lnk và .appref-ms. Và tôi chỉ có thể Process.Start (@ "C: \ ... App.APPREF-MS") - Cảm ơn !! – keyle

3

Process.Start tương đương với Bắt đầu, Chạy .. sau đó nhập một số văn bản vào đó. Bạn phải nhập một tệp thực thi có thể được tìm thấy bằng biến môi trường PATH hoặc bạn có thể chỉ định URL trỏ đến tệp .application mà bạn muốn chạy. Ví dụ. http://publish.url.com/publish/myapp.application.

Hy vọng điều đó sẽ hữu ích!

+0

Vậy bạn tìm thấy url của ứng dụng nhấp chuột đã được cài đặt trong C# ở đâu? ta. – keyle

+1

URL là URL triển khai: theo như tôi biết không có cách nào để liệt kê danh sách các ứng dụng ClickOnce. Xem tại đây để biết một số cuộc thảo luận http://www.windowsdevelop.com/clickonce-setup--deployment-projects/how-can-i-get-a-list-of-clickonce-installed-programs-on-a-given- client-2342.shtml –

+0

Cảm ơn vì điều đó. Vì vậy, điều đó có nghĩa là không có cách nào tôi có thể xây dựng một launcher ứng dụng đáng tin cậy bao gồm các ứng dụng ClickOnce ... Mmm. – keyle

1

URL bạn đang tìm kiếm là URL được sử dụng để cài đặt. Vâng, nghe có vẻ kỳ lạ. ClickOnce là một chút lạ. Thật không may ClickOnce không cài đặt vào thư mục Program Files mà thay vào đó lại tự burries trong thư mục AppData của người dùng. Tùy thuộc vào việc bạn đã cài đặt qua web hay thông qua tùy chọn CD/DVD và sẽ xác định mức độ dễ dàng để giải quyết vấn đề này. Chúc may mắn!

+0

Bạn chỉ có thể nhận được URL cài đặt nếu ứng dụng là chỉ trực tuyến. – RobinDotNet

1

Để thêm vào câu trả lời của @ Kieren: lý do mà Process.Start("Firefox") hoạt động là Firefox tự cài đặt trong khóa HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\firefox.exe trong sổ đăng ký.

11

Bạn thậm chí không cần phân tích cú pháp thư mục bắt đầu. Vị trí của khởi động đó là ở đây:

shortcutName = 
    string.Concat(Environment.GetFolderPath(Environment.SpecialFolder.Programs), 
       "\\", publisher_name, "\\", product_name, ".appref-ms"); 

Nơi publisher_name và product_name được đặt trong hộp thoại Tùy chọn trong thuộc tính xuất bản.

+0

cũng được thực hiện và giải thích! – amok

+0

Tôi cũng đã thêm vào dấu ngoặc kép trước và sau; string.Concat ("\" ", Environment.GetFolderPath (....)," .appref-ms "," \ ""); – Ads

-2

Dưới đây là cách khởi chạy ứng dụng nhấp chuột và ứng dụng hoạt động mọi lúc.

System.Diagnostics.Process.Start("http://webinstalls.somecompany.com/LApproval/StartApproval.application");