質問者
F10やF11キーによるデバッグの実行を無効にするには?

質問
すべての返信
-
こまってますさん、こんにちは。フォーラムオペレーターのKumoです。
MSDNフォーラムにご投稿くださいましてありがとうございます。
こちらのリンクが参考になるかもしれません。
WinformでF10キーを無効にしたい場合、以下のコードをご参照ください。
Private Sub form_KeyDown(ByVal sender As Object, ByVal e As KeyEventArgs) If e.KeyData = Keys.F10 Then e.SuppressKeyPress = True End If End Sub
どうぞよろしくお願いいたします。MSDN/ TechNet Community Support Kumo ~参考になった投稿には「回答としてマーク」をご設定ください。なかった場合は「回答としてマークされていない」も設定できます。同じ問題で後から参照した方が、情報を見つけやすくなりますので、 ご協力くださいますようお願いいたします。また、MSDNサポートに賛辞や苦情がある場合は、MSDNFSF@microsoft.comまでお気軽にお問い合わせください。~
-
kumo-msft さま
書き込まれた内容は 作成している Project に対するもので、ご質問内容には沿っていません。
ご質問は Visual Studio IDE そのものの挙動の様ですので。 元来、Microsoft のコードを弄る事は禁止されている筈ですし、Form を使って書かれているとは、到底、思えませんし。
- 編集済み ShiroYuki_Mot 2020年8月5日 13:06 追記
-
VisualStudioの拡張機能を作るだけなんですけど、VS2015までとVS2017以降ではパッケージのつくりが変わるので・・・
以下のは2017以降用のコード。2015では非同期処理の部分を消せばいいです。
Imports System Imports System.Runtime.InteropServices Imports System.Threading Imports Microsoft.VisualStudio Imports Microsoft.VisualStudio.Shell Imports Task = System.Threading.Tasks.Task <PackageRegistration(UseManagedResourcesOnly:=True, AllowsBackgroundLoading:=True)> <InstalledProductRegistration("#110", "#112", "1.0", IconResourceID:=400)> <ProvideAutoLoad(VSConstants.UICONTEXT.NoSolution_string, PackageAutoLoadFlags.BackgroundLoad)> <ProvideAutoLoad(VSConstants.UICONTEXT.EmptySolution_string, PackageAutoLoadFlags.BackgroundLoad)> <ProvideAutoLoad(VSConstants.UICONTEXT.SolutionExists_string, PackageAutoLoadFlags.BackgroundLoad)> <Guid(VSPackage1.PackageGuidString)> Public NotInheritable Class VSPackage1 Inherits AsyncPackage Public Const PackageGuidString As String = "89b63b71-6712-4494-ab51-086f0e998323" Public Sub New() End Sub Private dte As EnvDTE.DTE Private cev As EnvDTE.CommandEvents Private STEPOVER_GUID As String Private STEPOVER_ID As String Private STEPINTO_GUID As String Private STEPINTO_ID As String Protected Overrides Async Function InitializeAsync(cancellationToken As CancellationToken, progress As IProgress(Of ServiceProgressData)) As Task Await Me.JoinableTaskFactory.SwitchToMainThreadAsync() Try dte = CType(GetService(GetType(EnvDTE.DTE)), EnvDTE.DTE) Dim cmd As EnvDTE.Command cmd = dte.Commands.Item("Debug.StepOver") STEPOVER_GUID = cmd.Guid STEPOVER_ID = cmd.ID cmd = dte.Commands.Item("Debug.StepInto") STEPINTO_GUID = cmd.Guid STEPINTO_ID = cmd.ID cev = dte.Events.CommandEvents AddHandler cev.BeforeExecute, AddressOf CommandEvents_BeforeExecuteEventHandler Catch End Try End Function Public Sub CommandEvents_BeforeExecuteEventHandler(Guid As String, ID As Integer, CustomIn As Object, CustomOut As Object, ByRef CancelDefault As Boolean) If dte.Debugger.CurrentMode <> EnvDTE.dbgDebugMode.dbgDesignMode Then Return End If If (Guid = STEPINTO_GUID AndAlso ID = STEPINTO_ID) OrElse (Guid = STEPOVER_GUID AndAlso ID = STEPOVER_ID) Then CancelDefault = True End If End Sub End Class
#キーボードの割り当てでステップイン/オーバーのを間違えにくいキーにするのが一番簡単だと思う
個別に明示されていない限りgekkaがフォーラムに投稿したコードにはフォーラム使用条件に基づき「MICROSOFT LIMITED PUBLIC LICENSE」が適用されます。(かなり自由に使ってOK!)
- 編集済み gekkaMVP 2020年8月5日 16:10
- 回答の候補に設定 ShiroYuki_Mot 2020年8月6日 2:38
-
こまってますさん、こんにちは。フォーラムオペレーターのKumoです。
ご返信いただきありがとうございます。
Visual Studioに「Tweaks」という拡張機能をダウンロードし、インストールしてください。
この拡張はVisual studio editorでコーディング中にF11とF10キーを無効にします。
どうぞよろしくお願いいたします。MSDN/ TechNet Community Support Kumo ~参考になった投稿には「回答としてマーク」をご設定ください。なかった場合は「回答としてマークされていない」も設定できます。同じ問題で後から参照した方が、情報を見つけやすくなりますので、 ご協力くださいますようお願いいたします。また、MSDNサポートに賛辞や苦情がある場合は、MSDNFSF@microsoft.comまでお気軽にお問い合わせください。~
-
残念ながら、Tweaks は Works With VS2019 なので、質問者さんの VS2015 をケアできていませんね。
質問者さんへ。
gekka さんの言う「拡張機能」およびサンプルは、Visual Studio SDK をインストールし、Visual Studio を拡張するプラグイン・アドイン的なものを作ることであって、マクロではありません。
拡張機能の作り方については検索して学んでください。それが難しいようなら、提案があったように、VS2019 に移行して、Tweaks という拡張機能をインストールするのが一番楽だと思います。
- 編集済み AzuleanMVP, Moderator 2020年8月7日 9:55
-
本質的にはよく使うショートカットキーとそうでないものが隣り合っていることが課題なのでしょうから、オブションのキーボードの設定の変更を考えるところかと思います。
全く使わないなら割り当てを外したらよいですし、特定のウィンドウだけできくようにしたいならそのように設定を変えるところでしょうか。
このときだけは聞いてほしい、聞かないでほしいという細かなことは拡張機能を自作するか、運良く他者が公開してくれているかでしょう。(あるいは、誰かに作ってもらって報酬を払うか)
- 編集済み AzuleanMVP, Moderator 2020年8月11日 21:34
-
私は基本的に IME OFF 状態を常にして、日本語入力を終えたらすぐ IME OFF にするので「全角入力モードの時に半角に変換する」シーンがないですね…。
これは人それぞれのスタイルなのでなんとも言えませんが、IME ON 状態だと Alt → F → S みたいな、アクセスキー操作が効かない経験もあるので、癖づけてきている話ではあります。お困りなのはわかりますが、コミュニティは無償の仕事を請け負う場ではないので、せっかく作ってくれたサンプルを活かすも殺すもあなた次第かと思います。
諦めるなら諦めましょう。諦められないなら自助努力で頑張りましょう。
( ロスな時間 > 勉強する時間なら勉強した方が効率いいですし、その逆なら受容したら良い話かと思います)現時点での選択肢
- 諦める
- Visual Studio や IME のキー設定を変更する
- Visual Studio 2019 に移行して、Tweaks という拡張機能を導入する
- Visual Studio SDK を導入し、拡張機能の基礎を学んで gekka さんのサンプルを活用する
- 業者など、作ってくれる誰かを頼る(基本的に有償の行為です)
繰り返しになってしまいますが、個人的にはこのスレッドで、「そのうち誰かが助けてくれる」という感じで続けないで欲しいです。
改善すべき課題を自分の工夫によって改善するのがプログラマーのあるべきだと思いますし、コミュニティで騒いでたら有償のはずのことを無償でやってくれるなんて風土ができても困るので…。- 編集済み AzuleanMVP, Moderator 2020年8月12日 0:10