syghの新フラグメント置き場

プログラミングTipsやコード断片の保管場所です。お絵描きもときどき載せます。

Windows

Visual Studio 2015の完全アンインストール(ができなかったという話)

Windows 10とともに、Visual Studio 2015のサポートも2025-10-14(米国時間)に終了しました。手元のPCでは、OSのほうはWindows 11に移行済みですが、Visual Studioのほうはまだ2022に移行していませんでした。 そのため、まずはVS2015をアンインストールし…

Windowsの品質低下問題に思うこと

Windows 10のサポート終了が10月14日に迫っていますが、世界的に見てもWindows 11への移行は全然進んでいないですね。人気の高かったWindows 7のサポートが2020年1月に終了する直前、2019年12月の時点でWindows OSのバージョン別シェアに占める7の割合はそれ…

パーティションのMBR→GPT変換とWindows 11へのアップグレード作業

マザーボードを交換した後、なかなか作業残件を片付けるためのまとまった時間がとれなくて後回しにしていましたが、Windows 10のサポート終了も迫ってきたため、とうとう個人PCをWindows 11に移行しました。sygh.hatenadiary.jpもともとWindows 8→Windows 8.…

Xbox 360/Series Xコントローラーの競合とVisual C++ランタイムエラー

ヨドバシカメラでエアダスターなどを物色していたところ、Xbox Series X|Sのワイヤレスコントローラー(EP2-29921/EP2-29931など、以下XSXコン)が期間限定セールになっているのを見つけたのでついに買いました。 ヨドバシ.com - マイクロソフト Microsoft X…

ASRockマザーのMediaTek Bluetoothドライバー最新版は正常に動作しない

Windowsでは一般的に、ハードウェアベンダーのデバイスドライバーをインストールする前のデフォルト状態の場合、Windowsに標準搭載されているデフォルトドライバーが使われるのですが、マウスやキーボード、LAN/Ethernetアダプターはデフォルトドライバーで…

Windowsのインストール済みプログラム一覧のカラム表示がおかしいときの対処法

インストーラー側のバグなのか、OS側のバグなのかは不明ですが、Windows 10の「コントロールパネル」→「プログラム」→「プログラムと機能」の画面で、リストのカラム(列)ヘッダーが「名前」「トラック番号」「タイトル」「参加アーティスト」「アルバム」…

Windows UpdateによるBIOS破壊問題に関する私見

2025年6月のWindows Update(セキュアブートDBX関連の修正)によって、特定のベンダーのPCでBIOS/UEFIが破壊され、起動しなくなる問題が出ているようです。ヤバすぎ。今のところ自分は影響を受けていないけど、これは10月のWindows 10のサポート終了を前に、…

マザーボードの交換とWindowsライセンス認証

自作PCの調子がいよいよおかしくなり、Windowsが頻繁にブルースクリーンで落ちるようになりました。特にFirefoxの使用中に落ちます。 年明けに休止状態から正常に復帰することができない問題が出ていたのですが、マザーボードASUS H87-PROとIntel Core i7-47…

Windowsが休止状態から復帰できない問題(KP41病)と仮想メモリ

昨年末は諸事情で実家に緊急帰省して、年明けに帰ってきたんですが、Windows 10 ProのデスクトップPCを休止状態*1から復帰させようとしても、電源は入るのにOSが正常に復帰しない現象が出ました。 電源ボタン長押しで強制シャットダウン&再起動した後、休止…

マウスのプロパティに直接アクセスする

WACOMのタブレットドライバーはときどきおかしな状態に陥り、タブレット操作がまともにできなくなることがあります。このとき、なぜかマウスの「ポインターの精度を高める」というオプションのチェックも勝手に外れる現象が発生します。スリープ(休止状態)…

MSVC (ユニバーサルCRT) のswprintfのバグ

Visual C++のC Runtime (CRT) ライブラリは、バージョン2015 (14.0) 以降、新しい設計のUniversal CRT (UCRT) を採用するようになり、C/C++標準ライブラリが再実装されました。 その際、かなりの数のバグが混入したのですが*1*2、いまだに修正されていないバ…

CPUファンが回転と停止を繰り返して電源が入らない問題に遭遇……原因はメモリだった模様

先日マザーボードのCMOSバッテリーを交換して、ようやく安心して作業が再開できると思っていた矢先に再び悪夢のブルースクリーン。コードはDRIVER_IRQL_NOT_LESS_OR_EQUAL。 そして電源を再投入すると、CPUファンがちょっと回転しては停止、を繰り返す無限ル…

Windows 10のブルースクリーンが頻発……原因はマザーボードのCMOSバッテリー切れでした

Windows 10 20H2に更新してから1か月ほど過ぎたところ、ブルースクリーンが頻発するようになりました。休止状態から復帰した後、5分くらい経過すると落ちます。OS再起動に何回か失敗した後、うまく起動した後は何事もなく使えるようになるときもあるんですが…

TortoiseGitの言語パックを削除する

TortoiseGitやGitに慣れたら、日本語の言語パックをインストールしてローカライズするとかえって分かりづらくなるし、いちいちバージョンアップのたびに言語パックを入れ直すのもダルいため、言語パックをアンインストールすることにしました。しかし、コン…

Windows 10 20H1/20H2の新しいMS-IMEの誤動作やデグレードがひどすぎる

Windows 10 20H1 (2004) でMicrosoft-IMEに大きな仕様変更が入ったんですが、誤動作やデグレードがひどすぎる。 Firefoxで検索ボックスにフォーカスすると、なぜか「ひらがな」モードではなく強制的に「全角カタカナ」モードになる。また、Enterで変換確定す…

Windows 10でのシステムイメージのバックアップが0x80780166で失敗する場合

Windows 10 1909のサポート期限 (2021-05-11) が迫っているので、連休中についに機能更新することにしました。致命的不具合のパッチが出揃うまでは様子見したいので、普段は機能更新をグループポリシーエディターで365日(最大値)延期して、ギリギリまで勝…

BSTRはwchar_tへのポインタではありません

COMの文字列にはBSTRというデータ型が使われています。 BSTRが定義されているWindows SDKのヘッダーを見てみましょう。 // <wtypes.h> in Windows SDK 8.1 #ifndef _PREFAST_ typedef /* [wire_marshal] */ OLECHAR *BSTR; #else // _PREFAST_ typedef _Null_terminate</wtypes.h>…

WindowsのOutputDebugString()関数とUnicode

WindowsのOutputDebugStringW()関数とOutputDebugStringA()関数は、デバッグコンソールに文字列を出力します。Visual Studioでデバッグ実行すると、「出力ウィンドウ」に文字列が表示されます。 ただしAndroidのLogcatや、MacのXcode+NSLogと違って、末尾に…

Windows 10 1709/1803でキャレットの点滅が止まる

Windows 10 1709 (Fall Creators Update) には、エディットボックスなどのキャレット(縦棒のカーソル)の点滅が5秒程度で止まってしまうバグがあるようです。確かキャレットはシステムタイマーでOSが点滅させているはず*1ですが、フォーカスしてから5秒くら…

Windowsセキュリティ認証とネットワークパスワード

Windowsで共有フォルダーにアクセスする場合、セキュリティ認証のためのパスワード入力を求められることがあります*1。しかし、PCを再起動/シャットダウンするなどして、ログオンセッションが終了すると、再度入力が必要になってしまいます。コマンドプロン…

Windows Updateとの戦い(2018年春の陣、休止状態解除の亡霊)

Windows 10 1703にて、2018-04-18にいくつかのセキュリティアップデートを適用したら、勝手にWindowsの休止状態 (hibernation) が解除されて復帰する(PC電源が勝手に入る)問題が多発するようになりました。休止状態はメモリ内容をストレージに保存してPC電…

Windows 10の右クリックメニューにコマンドプロンプトを復活させる

Windows 7のエクスプローラーで、Shiftキーを押しながらコンテキストメニュー(右クリックメニュー)を表示すると、「コマンド ウィンドウをここで開く」という隠しコマンドが表示され、コマンドプロンプトのカレントディレクトリをそのディレクトリに設定し…

Windowsの画面キャプチャ取得方法

Windowsにおいて、画面のキャプチャ(スクリーンショット)を取得する方法はいくつかあるのですが、下記の標準機能は遥か昔(たぶんWindows 95あたり)から搭載されています。いずれもWindowsユーザーであれば誰もが知っていないとおかしいレベルの、初歩中…

Directory.Exists/File.Existsメソッドのタイムアウト時間

.NETのSystem.IO.Directory.Exists()メソッドは指定ディレクトリの存在有無をチェックするメソッドですが、タイムアウト時間が設けられています。ローカルドライブのディレクトリにアクセスする場合は、よほど低速なシステムか膨大なストレージでないかぎり…

Windows 10でPhotoshop CS5が起動に失敗するときの対処

Windows 10 Anniversary Update (1607) をインストールした後、Photoshop CS5が起動時にクラッシュするようになりました。管理者特権だと起動します。仕方ないので以下のEXEをWindows 7互換モードに設定すると起動するようになりました。一方、Illustrator C…

Windows 10の画像ファイル右クリックメニューに「プレビュー」を追加

無償アップグレードの期限ギリギリになりましたが、ついにWindows 8.1からWindows 10にアップグレードしました。Windows 10は昨年のプレビュー版のときにDirectX 12 APIを少しテストした際に、全体的な完成度の低さが目についたため、それ以来一切触っていま…

INIファイルでUnicodeを扱う

今更ですが今日はINIファイルのお話です。初めに断っておきますが、ぶっちゃけWindowsアプリケーションでレガシーなINIファイルを使うのはもうやめましょう。Windowsアプリケーション設定の管理には、今後はレジストリやXMLファイルなどを使うべきです。 そ…

Direct3D 12 (DirectX 12) の簡単なサンプル

(本記事の内容は執筆時点の暫定仕様に基づくものです。実際の最終製品版とは一部異なる部分があります)GDCの開催された2015年3月にはすでにDirect3D 12 (DirectX 12) の暫定ドキュメントとVisual Studio 2015 CTPが公開されていたのですが、肝心の実行環境…

OK/Cancelボタンの配置順

WindowsとMacそれぞれの、ユーザー確認ダイアログにおけるOKボタンとキャンセルボタンの位置(順序)の違いに関して、下記に考察が記載されています。 「OK」と「キャンセル」、どちらが有効か - @IT そういえば、JavaのダイアログもMacと同じ順序です(日…

Windows SDKと旧DirectX SDK

DirectX SDKは、DirectX 11.0対応の「June 2010」がリリースされた後、まったく新しいバージョンが出ない時期が続いたんですが、Visual Studio 2012にバンドルされているWindows SDK 8.0において、DirectX SDKはWindows SDKと統合されました。 Windows SDK f…