potisanのプログラミングメモ

プログラミング素人です。昔の自分を育ててくれたネット情報に少しでも貢献できるよう、情報を貯めていこうと思っています。Windows環境のC++やC#がメインです。

2016-01-01から1年間の記事一覧

C# 4.5,9 FOLDERIDからフォルダのパスを取得する

追記20240902 現行のC# 12ではNull許容型、IntPtrの代わりにはnintが使えます。SHGetKnownFolderPath関数のP/Invokeでは[MarshalAs(UnmanagedType.LPWStr)] out string ppszPathで文字列取得とメモリ解放が可能です。 C# 9.0 using System; using System.Dia…

C# ドライブが自動実行されるメディアタイプを取得する

追記20240902 このコードはP/Invokeでstringを渡しているので好ましくありません。現行のC# 12では[Out] char[]やref charを用います。またトップレベルステートメントや文字列補間を用いてより短く書けます。P/Invoke関係の属性SecurityCritical、SuppressU…

C++&ATL IShellDisp2::GetSystemInformationのATLサンプルコード

C++でATLを使用してShellインスタンスのIShellDisp2::GetSystemInformationメソッドを操作するサンプルコードです。エラー処理などは簡略化しています。 // IShellDisp2::GetSystemInformationのATLサンプルコード #define STRICT #include <Windows.h> #include <TChar.h> #incl</tchar.h></windows.h>…

C# 4.5 レジストリに登録されたJavaのバージョン情報とパスを取得する

using System; using System.Collections.Generic; using System.Linq; using Microsoft.Win32; namespace ConsoleApplication1 { class Program { static void Main() { var javaInstallInfo = new JavaInstallationInfo(); Console.WriteLine("JDK Current…

C++20&Win API&WIL エクスプローラーのカラムの名前一覧を取得する

C++(Mirosoft Visual Studio 2015)でCOMを利用してエクスプローラーのカラムの名前一覧を取得するサンプルコードです。ラムダ式を適用する前のものとして残しておきます。エラー処理やメモリ管理は省略しています。 /* * エクスプローラーのカラムの名前一…