2021-01-01から1年間の記事一覧
Power Query Mでテーブルの列名を先頭・末尾から個数あるいは条件一致で抽出するコードです。 let // 列名用のダミーテーブル テーブル1 = #table( {"列1", "列2", "列3", "列4", "列5", "A", "B", "C"}, {} ), // 列名はTable.ColumnNames関数でリストとし…
IShellItemインターフェイスで既知フォルダ(Known Folder)のフォルダID(識別子)と名前を列挙するコードです。実行するとデバッグウィンドウに既知フォルダの数だけ「フォルダID: 名前」を出力します。 #include <format> #include <ranges> #include <vector> #define STRICT #de</vector></ranges></format>…
要約 Power Query Mは型の比較に=とType.Is関数がある。 =は完全一致。Type.Isは互換性の判定。 (type number = type number) = true、(type number = Int64.Type) = false。 本文 [ A=type number=type number, // true B=type number=Int64.Type, // false…
ScrollableControlはAutoScrollとScrollイベントの組み合わせでスクロールを即座に反映できます。FlowLayoutPanelの縦スクロールであれば次のようになります。 private void flowLayoutPanel1_Scroll(object sender, ScrollEventArgs e) { if (e.ScrollOrien…
2024/9/29追記:C++23 PreviewとWILを使用したコードを投稿しました。 Windowsイメージングコンポーネント(WIC、Windows Imaging Component)(Microsoft Docs)のWICコンポーネントの情報を取得するサンプルコードです。基本的な流れは「IWICImagingFactor…
Rでアルファベットの文字列配列を得るには組み込み定数とstrsplit関数が使えます。タイプミスが防げるため、基本的には前者が推奨されます。以下にコードを示します。 #組み込み定数 #普通はこちらを使います。 LETTERS letters #strsplit #2番めの引数に""…
JavaScriptではclassキーワードでクラスを作成できますが、クラスの実体はObjectなのでプロパティが追加できてしまいます。この動作はObject.seal()静的メソッドで無効化できるため、コンストラクタで自身に適用すればプロパティを追加できないクラスを作成…
Win APIのMultiByteToWideChar関数、WideCharToMultiByte関数でstringとwstringを相互変換するコードです。テストはしていません。 C++20からは標準ライブラリのコンバーターが非推奨なので自作するか外部ライブラリを使用する必要があります。 #include <bit> #i</bit>…
HTML5からはINPUT要素にtype="file"が用意され、JavaScriptのFile API・Blob・TypedArrayと併せてファイル内容を読み込むことができます。以下に簡単なサンプルコードを示します。 ファイルインプットからFileList、Fileを取得する。 <html lang="ja"> <head> <meta charset="utf-8"> <title>Sample</title> <script> function f</meta></head></html>…
CLSID_StdComponentCategoriesMgrとICatInformationインターフェイスを使ってコンポーネントカテゴリの情報を取得するコードです。カテゴリの概要や所属するクラスを列挙できます。 カテゴリの概要を列挙する #include <string> #define STRICT #define NOMINMAX #in</string>…
レジストリに登録されたCLSIDの情報(キー名、概要、InProcServer32のパス)をCSVへ書き出すコードです。コンセプト、std::wstring、バージョン情報の取得などを含んでいます。 main.cpp stl_util.hpp win32_reg_util.hpp win32_util.hpp FileVersionInfo.hp…
ファイルにUTF-16文字列(std::wstring_viewが対応するデータ)を出力するにはstd::ofstreamをバイナリモードで使用します。次のようなコードを準備しておくと便利だと思います。 #include <fstream> #include <filesystem> // UTF-16文字列を指定されたパスへ出力します。BOMは付</filesystem></fstream>…
Windows Vistaからはマスター音量(システム全体の音量)の変更にCOMベースのMMDevice API (Windows Multimedia Device API)を用います。ここではスピーカー(既定のマルチメディア出力)の音量情報を取得するコードを記載します。 #include <format> #define STRICT</format>…
Windows Vistaからはマスター音量(システム全体の音量)の変更にCOMベースのMMDevice API (Windows Multimedia Device API)が用いらます。ここではスピーカー(既定のマルチメディア出力)の表示名を取得するコードを記載します。 #define STRICT #define N…
Windows Vistaからはマスター音量(システム全体の音量)の変更にCOMベースのMMDevice API (Windows Multimedia Device API)が用いらます。ここではミュートを切り替えるコードを記載します。 #define STRICT #define NOMINMAX #include <Windows.h> #include <mmdeviceapi.h> #include <endpointvolume.h></endpointvolume.h></mmdeviceapi.h></windows.h>…
デバイス情報要素の文字列プロパティ(概要、クラス、クラスGUID、フレンドリーネーム、ハードウェアID)を列挙するコードです。再利用可能なコードをUtility.hppへ移動しています。 文字列プロパティ(概要、クラス、クラスGUID、フレンドリーネーム、ハー…
Setup APIでシステムに存在するデバイスのクラス・インターフェイスのクラスと説明を列挙するコードです。 単純に列挙する #pragma comment(lib, "SetupAPI.lib") #include <bit> #include <format> #include <string> #define STRICT #include <Windows.h> #include <SetupAPI.h> #include <InitGUID.h> #include <devpkey.h> //</devpkey.h></initguid.h></setupapi.h></windows.h></string></format></bit>…
デバイス情報要素のGUID、不透明ハンドル(Opaque Handle)、概要を列挙するサンプルコードです。 #include <memory> #include <string> #include <format> #include <numeric> #include <iostream> #include <list> #pragma comment(lib, "SetupAPI.lib") #define STRICT #define NOMINMAX #include <Windows.h> #include <SetupAPI.h></setupapi.h></windows.h></list></iostream></numeric></format></string></memory>…
エクスプローラーやブラウザからドロップされたデータのデータ形式を列挙するサンプルコードです。Windowsプロジェクトでのウィンドウクラスの登録、ウィンドウの表示、複数行テキストボックスだけ持つウィンドウの実装、IUnknownクラスの実装サンプルとして…
ドロップされたOLEデータオブジェクトに含まれるShellItem(ファイル、フォルダ、特殊フォルダ等)を列挙するサンプルコードです。 #define STRICT #include <Windows.h> #include <ShlObj.h> #include <ShObjIdl.h> #include <bit> #include <format> #include <string> #include <vector> auto MY_WINDOW_CLASS_NAME{ L"Pr</vector></string></format></bit></shobjidl.h></shlobj.h></windows.h>…
概要 32ビット形式のPEファイルを生データとして解析してIMAGE_COR20_HEADER構造体を取得するサンプルコードのC++20版です。実際にはIMAGE_COR20_HEADER構造体のメインであろうメタデータは今後の拡張に備えてフォーマット非公開なのでCLSID_CorMetaDataDisp…
ファイルセキュリティ記述子→DACL→ACEと取得してセキュリティユーザーの名前を列挙するサンプルです。 #include <bit> #include <string> #include <span> #include <memory> #include <vector> #define STRICT #define NOMINMAX #include <Windows.h> #include <AclAPI.h> // ファイルのセキュリティ情報をバイト配列</aclapi.h></windows.h></vector></memory></span></string></bit>…
一部のC APIにC++ラッパーを作成しています。 #include <string> #include <vector> #define STRICT #define NOMINMAX #include <Windows.h> // ファイルのセキュリティ情報をバイト配列として返します。 std::vector<BYTE> GetFileSecurityW(std::wstring_view Path, SECURITY_INFORMATION Re</byte></windows.h></vector></string>…
#include <array> #include <string> #include <vector> template <std::ranges::range T> requires std::negation_v<std::ranges::sized_range<T>>&& std::same_as<std::ranges::range_value_t<T>, std::wstring> std::wstring join(const T& range, std::wstring_view sep) { size_t count{ std::ranges::size(range) }; …</std::ranges::range_value_t<t></std::ranges::sized_range<t></std::ranges::range></vector></string></array>
HTML要素関係の関数サンプルコードです。 /** * ラジオボックスグループのチェックをvalueとある値の一致可否で設定します。 * @example setCheckedRadioElementsByValue("radio1", "123") */ function setCheckedRadioElementsByValue(name, value) { for (…
共用のコード #pragma once #include <string> #include <format> #include <vector> std::vector<BYTE> GetTokenInformationInByteArray( HANDLE TokenHandle, TOKEN_INFORMATION_CLASS TokenInformationClass) { DWORD required; if (!::GetTokenInformation(TokenHandle, TOKEN_INFORMAT</byte></vector></format></string>…
#include <string> #include <iostream> #define STRICT #define NOMINMAX #include <Windows.h> #include <subauth.h> #include <ntlsa.h> #include <sddl.h> #include <wil/resource.h> #define THROW_IF_LSA_NTSTATUS_FAILED(status) THROW_IF_NTSTATUS_FAILED(::LsaNtStatusToWinError((status))) // LSA_UNICODE_STRIN…</wil/resource.h></sddl.h></ntlsa.h></subauth.h></windows.h></iostream></string>
Import-Moduleに-UseWindowsPowerShellを指定します。古いPowerShellではこのフラグなしでもAppxモジュールが読み込めたようですが、少なくともPowerShell 7では必要です。 Import-Module Appx -UseWindowsPowerShell Get-AppxPackage *Microsoft.Windows.Ph…
WindowsでIPv4アドレスを列挙するサンプルコードです。 GetIpAddrTable関数はメモリに構造体とそこから参照される文字列をまとめて配置します。このコードではそれらをまとめて管理するためにクラスを使用しています。なお、この関数はループバックアドレス…
constexprはreinterpret_castを含めません。C++20からはより厳密かつconstexprに対応したstd::bit_castが提供されています。reinterpret_castをポインタの型変換に使う場合はこちらを使う方が良さそうです。 bit_cast - cpprefjp ポインタ同士のキャストには…