イネマルのプログラミング備忘録

趣味プログラマのメモ

スニペット

【WinAPI】C++ Windows11 環境でウィンドウの角丸を制御する

ウィンドウの角丸を制御する Windows11 から、デフォルトでウィンドウの四つ角が丸められます。 これを、Windows10 のような丸められていない状態などに変更するには、DwmSetWindowAttribute を使用します。 ※ Windows11 以降で利用可能 な方法です。それ以…

【WinAPI】C++ ウィンドウの背景色を取得する方法

メモ ウィンドウクラスの登録時に指定する、背景色ブラシからRGBカラーを取り出す。 実装 auto hb = reinterpret_cast<HBRUSH>(::GetClassLong(m_hWnd, GCL_HBRBACKGROUND)); LOGBRUSH br{}; if (::GetObject(hb, sizeof(br), &br)) { BYTE r = GetRValue(br.lbColor</hbrush>…

【WinAPI】C++ タスクバーのアイコンを強調表示する(FlashWindowEx)

メモ ウィンドウを最小化している時など、ウィンドウを表示していない時に、 ユーザーに処理の完了を通知するにはタスクバーアイコンを強調表示します。 これは、FlashWindowEx を使用して実現します。(Windows10 では、オレンジ色に光ります。) 実装 // …

【WinAPI】C++ ウィンドウの最小サイズと最大サイズを取得する(WM_GETMINMAXINFO)

メモ ウィンドウメッセージ「WM_GETMINMAXINFO」を、目的のウィンドウに送信して取得する。 ウィンドウのサイズ制御は、アプリ毎に実装が異なるので、 ウィンドウ側がメッセージを処理していない場合には、取得できないことに注意する。 実装 int APIENTRY w…

WSH JScript CScript プログレスバー

はじめに 軽く検索しても手軽なサンプルが見つからなかったので、 CScript と JScript を使ったコマンドライン環境向けに、プログレスバーを用意します。 ↓ のように動きます。 実装 最低限の機能があれば良いので、設定できるオプションは下記だけ。 MaxVal…

C++ CLI Processクラスから HINSTANCE を取得する

メモ C++/CLI 環境で、Process クラスで起動したプログラムのインスタンスハンドルを取得する方法。 Handleプロパティが、そのまま HINSTANCE として扱える。 実装 // 「ペイント」を起動 auto proc = gcnew System::Diagnostics::Process(); proc->StartInf…

JScript.NET をバッチに埋め込む方法

はじめに Microsoft製のドマイナー言語、JScript .NET をバッチファイルに埋め込んで実行する方法です。 JScript .NET は、スクリプト言語である WSH版 JScript の後継的な位置づけでありながら、コンパイル必須という扱いづらい言語なので、 コンパイル処理…

WSH JScript JSONファイルを使用する

はじめに WSH JScript で、設定ファイルに対応する際に使用した方法です。 WSH(VBScript, JScript) から設定ファイルを扱う場合、JSON を使用すると楽できます。 注意 文字コードは、SJIS を使用しています。 それ以外の文字コードでは、動作検証していませ…

C++ コマンドライン引数をstd::vector<std::string>に展開する方法

ちょっとしたメモ コマンドライン引数をstd::vector<std::string>に展開する方法です。 パース自体は、コンストラクタのみで実現できます。 実装 #include <iostream> #include <vector> #include <string> int main(int argc, char** argv) { using namespace std; vector<string> args(argv, argv + argc);</string></string></vector></iostream></std::string>…