2019年06月30日

「マウスのお供 ver.1.60.06」更新のお知らせ。表示ON/OFF時の反応速度向上とか。

昨日付で「マウスのお供 ver.1.60.06」を公開しています。

ダウンロードはトップページから。

今回は、正式版としての公開となります。また、時計等の非表示→表示に切替を行った時や、メモの更新時の反映速度の向上を図りました。

これまでは、時計のミリ秒表示を行っている場合を除き、表示文字列の更新速度は1秒に1回となっておりました。
ちなみに、更新有無の確認(秒部分の更新チェック)は、マウスへの追従監視間隔(デフォルトは20ms)で行っています。

これまで、時計等の非表示→表示に切替を行った時や、メモの更新時は、1秒に1回の更新間隔に従って再表示をしておりましたが、これを、マウスへの追従監視間隔に従って更新するように変更しました。

つまり、時計等の非表示→表示の切り替えを行った際、これまでは最大で0.98秒程度の遅延がありましたが、これからはデフォルトで20ms秒の遅延で済むことになります。
ホットキーが設定可能になったことに伴い、キー押下で表示のON/OFFが気軽に切り替えられるようになったことから、最大0.98秒の遅延がストレスに感じられる可能性が出てきたことによる改良となります。

また、世間一般のPCのスペックの平均が向上しただろうことに期待したものでもあります。

続きを読む
posted by ayacy at 00:00 | Comment(0) | TrackBack(0) | フリーソフト

2019年06月29日

新PCでVisual Studio 2010を動かしたら、謎のエラーが出てIntelliSenseが効かなくなった

一昨日、新環境でのVisual Studioの動作確認を兼ねて、マウスのお供の最新β版を公開したことについて取り上げましたが、この際に、新PCでVisual Studio 2010を動かしたら、謎のエラーが出てIntelliSenseが効かなくなるという現象に見舞われました。

Visual Studio 2010を立ち上げて、エディタ上で何かしらの文字を打ち込むと、高確率で次のようなエラーメッセージが表示されます。

201906_vs2010_err1a.png
Visual Studio は例外を検出しました。拡張機能が原因である可能性があります。
 詳細な情報を得るには、コマンド ラインで /log パラメーターを指定してアプリケーションを実行し、'C:\Users\○○\AppData\Roaming\Microsoft\VisualStudio\10.0\ActivityLog.xml' ファイルを調べてください。

拡張機能などと言われても…まだ、Visual Studio 2010をインストールしたばかりであり、そこに何か拡張機能を入れた覚えはありません。とりあえず、指示に従い、Visual Studio 2010(devenv.exe)を /log オプション付きで実行しました。

すると、上記ファイルに次のようなメッセージが出力されていました。

201906_vs2010_err2.png

Type: ERROR
Description: System.InvalidCastException: 型 'System.__ComObject' の COM オブジェクトをインターフェイス型 'Microsoft.VisualStudio.TextManager.Interop.IVsTextReplaceEvents' にキャストできません。IID '{CF9928D9-65AE-4319-A446-94ED5C45ECDE}' が指定されたインターフェイスの COM コンポーネント上での QueryInterface 呼び出しのときに次のエラーが発生したため、この操作に失敗しました: インターフェイスがサポートされていません (HRESULT からの例外:0x80004002 (E_NOINTERFACE))。 場所 System.StubHelpers.StubHelpers.GetCOMIPFromRCW(Object objSrc, IntPtr pCPCMD, IntPtr& ppTarget, Boolean& pfNeedsRelease) 場所 Microsoft.VisualStudio.TextManager.Interop.IVsTextReplaceEvents.OnReplace(ChangeInput[] pCI) 場所 Microsoft.VisualStudio.Editor.Implementation.VsTextBufferAdapter.OnTextBufferChangedHighPriority(Object sender, TextContentChangedEventArgs e) 場所 Microsoft.VisualStudio.Text.Utilities.GuardedOperations.RaiseEvent[TArgs](Object sender, EventHandler`1 eventHandlers, TArgs args)
Source: Editor or Editor Extension

Type: ERROR
Description: System.InvalidCastException: 型 'System.__ComObject' の COM オブジェクトをインターフェイス型 'Microsoft.VisualStudio.Editor.Implementation.IVsTextStreamEvents_Private' にキャストできません。IID '{96FC7D44-BCDD-4F00-AE4D-07E26B2C0E52}' が指定されたインターフェイスの COM コンポーネント上での QueryInterface 呼び出しのときに次のエラーが発生したため、この操作に失敗しました: インターフェイスがサポートされていません (HRESULT からの例外:0x80004002 (E_NOINTERFACE))。 場所 System.StubHelpers.StubHelpers.GetCOMIPFromRCW(Object objSrc, IntPtr pCPCMD, IntPtr& ppTarget, Boolean& pfNeedsRelease) 場所 Microsoft.VisualStudio.Editor.Implementation.IVsTextStreamEvents_Private.OnChangeStreamText(Int32 iPos, Int32 iOldLen, Int32 iNewLen, Int32 fLast) 場所 Microsoft.VisualStudio.Editor.Implementation.VsTextBufferAdapter.OnTextBufferChanged(Object sender, TextContentChangedEventArgs e) 場所 Microsoft.VisualStudio.Text.Utilities.GuardedOperations.RaiseEvent[TArgs](Object sender, EventHandler`1 eventHandlers, TArgs args)
Source: Editor or Editor Extension


エラーメッセージから何をどうしたらよいのかはさっぱり読み取れませんが、エラーメッセージの先頭の方の文字列をそのまま入れてググってみると解決策が見つかります。

201906_vs2010_err3.png

どうやら、64bit版Windowsの場合は、レジストリ エディタで「HKEY_CLASSES_ROOT\WOW6432Node\CLSID\{73B7DC00-F498-4ABD-AB79-D07AFD52F395}\InProcServer32」を開き、既定の値に「C:\Program Files (x86)\Common Files\Microsoft Shared\MSEnv\TextMgrP.dll」と入れてやればよいらしい。

ちなみに、32bit版Windowsの場合は、レジストリ エディタで「HKEY_CLASSES_ROOT\CLSID\{73B7DC00-F498-4ABD-AB79-D07AFD52F395}\InProcServer32」を開き、既定の値に「C:\Program Files\Common Files\Microsoft Shared\MSEnv\TextMgrP.dll」を入れてやります。

すると、無事にエラーが出なくなり、IntelliSenseも効くようになりました。

まさか、2019年にもなって、Visual Studio 2010のエラーに悩まされることになるとは…。


posted by ayacy at 00:00 | Comment(0) | TrackBack(0) | プログラミング

2019年06月28日

新PCのためにATOKを買うべきか…どうしようか…。今日の午前10時で発売終了のATOK2017。

新PCを購入し、ちまちまとセットアップ中なのですが、一つ悩み事が。

これまで、旧PCでは、日本語入力システムとしてジャストシステム社のATOK2016を使っておりました。
というか、ここに至るまでに、一太郎こそ学生時代を最後に使わなくなりましたが、ATOKを長々と使い続けておりました。

新PCの使用開始にあたり、新しいATOKを購入すべきか…悩んでいます。
(そのまま新PCにもATOK2016を入れてしまうと、2台のPCに同時に入れることになり、ライセンス違反となるため、新PCにも入れるなら新規購入する必要がある)

なぜ悩んでいるかというと、


月額版のATOK Passportは、ベーシックプランで月額300円という安価なものですが、継続的に月額費用を払い続けるということは、クレジットカード情報を含む個人情報を握られ続けるということにほかなりません。
個人情報を軽んじる企業に、そんな情報を預け続けることは、安価で享受できるメリットを超えるデメリットを背負うことになりかねません。

そういうことを総合的に勘案した場合、そもそもATOKがなくなると、日本語入力ができなくなるか?というと、そうでもありません。Microsoft IMEのキーアサインをATOKキー割付にして使用すればよい。
201906_msime_atok.png

まぁ、文字入力中のEscキー押下時の挙動が、ATOKとWindows 10のMS-IMEでは微妙に違うとか、些細なところでイライラが蓄積されるデメリットもありますが、追加費用を支払う必要もないし、このままでいいんじゃないかなぁという気もします。

だいたい、ただでさえPCを購入して、金のない状態ですからね。
無理して買うことはないのです。

というか、入力モードを切り替えたとき、画面中央に入力モードが一瞬表示されるUIが、なかなか好みなのです。
201906_msimeA.png

僕も「マウスのお供」で、入力モードをユーザーに伝える方法をいろいろ考えてきましたが、これより優れた方式をMicrosoft社から提示されてしまって悔しいのですが、なかなか好みです。


posted by ayacy at 00:00 | Comment(0) | TrackBack(0) | PC