2012-03-12 49 views
5

Tôi đã cố sửa một phương pháp kiểm tra xem người dùng có cài đặt Skype trên máy tính của mình hay không. Này, tôi cố định/đưa ra:Kiểm tra xem Skype có được cài đặt

  1. Tôi có tài khoản Skype được cài đặt trên máy tính của tôi
  2. Tôi đã khắc phục một phương pháp mà vòng qua tất cả các chương trình cài đặt của tôi
  3. Phương pháp của tôi tìm thấy chương trình cài đặt của tôi nhưng nó có thể không tìm thấy skype mặc dù nó được cài đặt. Nhưng phương pháp của tôi tìm các chương trình khác nằm trong cùng một thư mục.

Có ai có ý tưởng nào về cách kiểm tra xem Skype có được cài đặt trên máy tính không?

Phương pháp tôi sử dụng là simillrar với trang này:

Method to loop through all installed programs

Trả lời

6

Chỉ cần sử dụng registry:

using Microsoft.Win32; 

    //Function uses Microsoft.Win32 to check registry value of 
    //HKEY_CURRENT_USERSoftwareSkypePhoneSkypePath and returns false if 
    //the key is null 
    private bool isSkypeUser() 
    { 
     RegistryKey skype = Registry.CurrentUser.OpenSubKey(@"SoftwareSkypePhone"); 

     if (skype != null && skype.GetValue("SkypePath") != null) 
     { 
      return true; 
     } 
     else 
     { 
      return false; 
     } 
    } 

http://brcline.com/blog/?tag=skype

EDIT:

Cách giải quyết dở dang là lặp qua các thư mục StartMenu để tìm lối tắt hoặc thư mục Skype. Bạn phải sử dụng liệt kê SpecialFolder sau:

var startMenuPath = Environment.GetFolderPath(Environment.SpecialFolder.CommonPrograms) 

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

+1

Điều này có thể hoạt động. Chỉ cần đảm bảo rằng giá trị đăng ký được xóa sau khi gỡ cài đặt. Nếu không, bạn có thể nhận được dương tính giả. –

+0

Tôi đã thử phương pháp đó nhưng phương pháp đó không hiệu quả đối với tôi .. Tôi đã thực sự biết tại sao ... @ssg Làm cách nào để kiểm tra xem giá trị đăng ký vẫn tồn tại? –

+1

Gỡ cài đặt Skype khỏi máy tính của bạn và xem liệu giá trị có được giữ lại hay bị xóa hay không. Nếu nó vẫn là phương pháp đó sẽ không hoạt động. Bạn có thể thử các khóa registry khác có liên quan đến Skype. Bạn có thể theo dõi hoạt động đăng ký bằng cách sử dụng ProcMon từ Sysinternals. –

Các vấn đề liên quan