Visual Studio 2015 RCでは、メインウィンドウの右上にフィードバックスマイリーがありました。
残念ながら、それはVisual Studio 2015の最終リリースにはまだ残っています。
私はすべてのオプションと設定を検索しましたが、このスマイリーを隠す方法は見つかりませんでした。
私の質問:
オプションやその他(レジストリなど)をハッキングしてスマイリーを削除しますか?
2015年12月1日更新:
昨日 Visual StudioのUpdate 1がリリースされました 。
私はまだスマイリーを非表示にするオプションを見つけられませんでしたが、少なくともそれらはそれに気を取られにくいアイコンを提供しました:
編集:
Visual Studio 2015 Update 1 フィードバックアイコンを控えめな白黒のアイコンに変更しますので、これ以上スマイリーはありません!リリースノートには記載されていません。
元の答え:
OPの回答と同様に、このアイコンはこのレジストリキーで指定されます。
HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\14.0_Config\MainWindowFrameControls {F66FBC48-9AE4-41DC-B1AF-0D64F0F54A07}
キーを削除すると、Visual Studioによって再作成されますが、レジストリキーの "Package"値を無効にしてVisual Studioを再起動すると、スマイルアイコンが消えます。
ただし、Visual Studioの更新(SSDT、Resharperなど)をインストールすると、インストーラーによってパッケージの値が復元され、スマイリーが復活します。そこで、スマイリーが再表示されたときに実行されるように、次のようなレジストリファイルを作成しました。
Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\14.0_Config\MainWindowFrameControls\{F66FBC48-9AE4-41DC-B1AF-0D64F0F54A07}]
@="Feedback Button"
"Package"="{00000000-AA51-43B1-97EE-509A33B681F3}"
"DisplayName"="#1001"
"ViewFactory"="{060EAB95-139E-407D-BEDC-CC2B7A9B39D4}"
"ViewId"=dword:00000064
"Alignment"="TitleBarRight"
"Sort"=dword:00000064
"FullScreenAlignment"="MenuBarRight"
"FullScreenSort"=dword:00000064
これは起動時間や安定性に影響を与えていないようですが、保証はありません。レジストリの変更が不適切であるなどです。
JehofのヒントVisual Studio 201 のおかげで、これを解決できました:
次のレジストリキーを削除すると、実際に役立ちました。
HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\14.0_Config\MainWindowFrameControls\{F66FBC48-9AE4-41DC-B1AF-0D64F0F54A07}
(リンクされたブログ投稿の12.0ではなく14.0に注意してください)
Visual Studioを再起動した後、フィードバックボタンはなくなりました。
1日後に更新します
突然、フィードバックアイコンが再び表示されます。また、レジストリキーもここにあります。
これは一体どのようにして起こりますか?
墓から復活したスマイリーらしい。今本当に怖い…
このスレッドのアドバイスに従って、レジストリキーも変更しましたが、最初は機能しましたが、VS2015はしばらくするとキーを元の値に再作成し続けます。
これを修正するために、タスクバーにVS2015ショートカットを追加し、Shift +右クリックして[プロパティ]にアクセスしました。 devenv.exeを指すショートカットのターゲットパスを独自のローカルc:\ tools\vs.batファイルに置き換えます。
さらに、ショートカットのプロパティで実行を「最小化」に変更しました。 vs.batは次のようになります。
@echo off
reg ADD HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\14.0_Config\MainWindowFrameControls\{F66FBC48-9AE4-41DC-B1AF-0D64F0F54A07} /v Package /t REG_SZ /d {00000000-AA51-43B1-97EE-509A33B681F3} /f 2> nul
start /B devenv.exe
これにより、タスクバーのショートカットを使用してVS2015を起動するたびにキーが上書きされます。これは確実に機能していることがわかりました。
これなしでVSを起動する場合(VSの再起動時など)、上記を2回実行する必要がある場合があります。
Visual Commander拡張機能 を使用すると、イベントにフックできる拡張機能を作成できます。提供されている例の1つは フィードバックアイコンを非表示にする です。
// References: System.Xaml
public class E : VisualCommanderExt.IExtension
{
public void SetSite(EnvDTE80.DTE2 DTE, Microsoft.VisualStudio.Shell.Package package)
{
timer = new System.Windows.Threading.DispatcherTimer();
timer.Interval = System.TimeSpan.FromMilliseconds(1000);
timer.Tick += OnTimer;
timer.Start();
}
public void Close()
{
timer.Stop();
}
private void OnTimer(System.Object o, System.EventArgs a)
{
try
{
if (HideSignIn() && HideFeedback())
;
}
catch (System.Exception e)
{
}
}
private bool HideSignIn()
{
System.Windows.FrameworkElement e =
FindElement(System.Windows.Application.Current.MainWindow,
"PART_MenuBarFrameControlContainer");
if (e != null)
{
e.Visibility = System.Windows.Visibility.Collapsed;
return true;
}
return false;
}
private bool HideFeedback()
{
System.Windows.FrameworkElement e =
FindElement(System.Windows.Application.Current.MainWindow,
"PART_TitleBarFrameControlContainer");
if (e != null)
{
System.Windows.DependencyObject o1 =
System.Windows.Media.VisualTreeHelper.GetChild(e, 0);
System.Windows.DependencyObject o2 =
System.Windows.Media.VisualTreeHelper.GetChild(o1, 0);
System.Windows.DependencyObject o3 =
System.Windows.Media.VisualTreeHelper.GetChild(o2, 0);
if (System.Windows.Media.VisualTreeHelper.GetChildrenCount(o3) == 3)
{
System.Windows.DependencyObject o4 =
System.Windows.Media.VisualTreeHelper.GetChild(o3, 1);
(o4 as System.Windows.FrameworkElement).Visibility =
System.Windows.Visibility.Collapsed;
return true;
}
}
return false;
}
private System.Windows.FrameworkElement FindElement(System.Windows.Media.Visual v, string name)
{
if (v == null)
return null;
for (int i = 0; i < System.Windows.Media.VisualTreeHelper.GetChildrenCount(v); ++i)
{
System.Windows.Media.Visual child =
System.Windows.Media.VisualTreeHelper.GetChild(v, i) as
System.Windows.Media.Visual;
if (child != null)
{
System.Windows.FrameworkElement e =
child as System.Windows.FrameworkElement;
if (e != null && e.Name == name)
return e;
}
System.Windows.FrameworkElement result = FindElement(child, name);
if (result != null)
return result;
}
return null;
}
private System.Windows.Threading.DispatcherTimer timer;
}
ただし、この例を hide publish button の例と比較すると、アイコンが非表示になったら、OnTimer
関数がタイマーを停止するように見えます。
private void OnTimer(System.Object o, System.EventArgs a)
{
try
{
if (HideSignIn() && HideFeedback())
timer.Stop();
}
catch (System.Exception e)
{
}
}
Alignmentキーの値を削除しました(空のままにしておきます)。アイコンは今まで消えていましたが、まだアップデートをインストールしていません。投稿し続けます。
[〜#〜] update [〜#〜] VS2015を復元すると、このボタンが復元されただけでなく、設定方法も変更されました。現在、私のメソッドは機能しません。さらに、レジストリキーを削除しても役に立たなくなりました。この便利なツールを使用してMSに書き込みました。
次のPowerShell行は、更新がインストールされるまでアイコンを削除します。
Set-ItemProperty -Path "HKCU:\Software\Microsoft\VisualStudio\14.0_Config\MainWindowFrameControls\{F66FBC48-9AE4-41DC-B1AF-0D64F0F54A07}" Package "{00000000-AA51-43B1-97EE-509A33B681F3}"