void RegisterUriHandler()
{
try {
if ((int)UserAppRegistryKey.GetValue("UrlRegAsked", 0) == 0) {
UserAppRegistryKey.SetValue("UrlRegAsked", 1);
RegistryKey keyClasses = Registry.CurrentUser.OpenSubKey("Software").OpenSubKey("Classes", true);
string toMe = string.Format("\"{0}\" %1", Assembly.GetCallingAssembly().Location);
var subKey = keyClasses.OpenSubKey("bitcoin");
if (subKey == null) {
keyClasses.CreateSubKey("bitcoin").CreateSubKey("shell").CreateSubKey("open").CreateSubKey("command").SetValue(null, toMe);
} else {
var keyCommand = subKey.OpenSubKey("shell").OpenSubKey("open").OpenSubKey("command");
string path = (string)keyCommand.GetValue(null, "");
if (path != toMe) {
if (MessageBox.Show("Register Bitcoin URI for this Application", "Coin", MessageBoxButton.YesNo, MessageBoxImage.Question) == MessageBoxResult.Yes)
keyCommand.SetValue(null, toMe);
}
}
}
} catch (Exception) {
}
}