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

趣味プログラマーのメモ。ニッチなネタから暗黙知まで無保証で公開。

Windows

WSH WSF を バッチに埋め込む方法 ( 現在時刻を読み上げるバッチファイル )

ちょっとしたメモ タイトルの通り、wsf 形式のWSHスクリプトをバッチファイルに埋め込む方法です。 wsfを使えば、VBScript と JScript を混在させたり、 HTML の scriptタグ と同じように記述できるのでGoogle APIsから jQuery 使うようにしたりできます。 …

VSCode Windows版 コマンドライン引数を使用する際の注意

ちょっとしたメモ Windows版 の、VSCode を コマンドライン から使用する場合、 使用する実行ファイルは、「Code.exe」でないので、注意が必要。 コマンドラインから使用する際は、Code.exe と同じディレクトリ以下の、 「bin\code.cmd」を使用する必要があ…

WSH JScript Chakra を使用した ES2015(ES6) 対応 ( スクリプトエンジン まとめ )

はじめに WSH JScript (wscript cscript) で使用できる スクリプトエンジン まとめです。 サードパーティー製は含みません。 JavaScript限定、初期状態で使用可能な物だけなので注意。 各 JavaScript エンジン について JScript (JavaScript) だけでも、4種…

C++ Windowsで ini ファイルを読み込む

はじめに Windows で、ini ファイルの読み込みと言えば、GetPrivateProfileStringです。 時間をかけずに、手っ取り早く設定ファイル対応を行うときに使えるかもしれない方法です。 注意 GetPrivateProfileString は、下記の表記の通り 16ビット互換 のために…

C++ ビルド時の西暦を表示

ちょっとしたメモ 定義済みマクロ の、__DATE__ は文字列として扱えるので、 西暦部分の先頭アドレスがあれば事足りる。 実装 あとがき 西暦のみの定義済みマクロが無いのか調べた結果、無さそうという結論。 よく考えたら、__DATE__から取り出せるよねと言…

C++ ファイルバージョンの取得方法

はじめに ひねりなし、GetFileVersionInfo を使用したファイルバージョンの取得方法。 必ずしも、ファイルプロパティから確認できるバージョンと一致しないので注意。 実装 あとがき 実際には、使用していない変数もnullptrを許容しているのか不明だったため…

C++ 環境変数を含むパスをstd::stringに展開する方法

はじめに パスに限らず、環境変数を含む文字列は、 WindowsAPIの ExpandEnvironmentStrings で展開できます。 std::string に展開する方法をメモ。 実装 あとがき 今回は、stringに展開しましたが、 wstring なら ExpandEnvironmentStringsW で展開できます。

ファイルエクスプローラーからコマンドプロンプトを起動するテクニックの罠

はじめに ファイルエクスプローラー使用時に、 現在のディレクトリをカレントとしてコマンドプロンプトを起動するテクニックとして アドレスバーに「cmd」と入力する方法が紹介されることがあります。 このテクニックが、常に意図通り動作しないことがあると…

C++ で、コマンドの標準出力を取得する方法(CreateProcessなし)

はじめに Windows でコマンドを実行する際、標準出力を取得する方法です。 コンソール画面が表示されても問題ない場合、 もしくは、CUIプログラムで使用できる方法です。 前提 system 関数だけでは、標準出力が簡単に取得できません。 Windows 環境では、API…

WSH JScript をバッチに埋め込んだ際にコンソールウィンドウのPIDを取得する方法

はじめに タイトルの通り、バッチファイルからWSH(cscript)を起動した際に コンソールウィンドウのPIDを取得する方法です。 概要 WSHからアプリケーションを実行中に コンソールウィンドウが閉じられると困るので、 コンソールウィンドウのプロセスを特定す…

【Windows】バッチファイルで管理者権限を判定する方法 3種

バッチファイルで管理者権限を判定する方法 3種 Windowsのバッチファイルで管理者権限が必要な場合に 標準のコマンドで確かめる方法を調査したときの断片です。 以下、巷で使われている手法の3種です。 whoami コマンド いろいろな方法がありますが、自分が…