C++
Windowsの論理ドライブ名*1からデバイスマッピング名*2を取得するサンプル。 連想配列を使うとよさそうなので連想配列に格納したよっ。 #include <cstdio> #include <cstdlib> #include <cstring> #include <string> #include <map> #include <Windows.h> using namespace std; typedef map<string, string> StrMap; typedef pair<string, string></string,></string,></windows.h></map></string></cstring></cstdlib></cstdio>…
すっっっっっっっっっっっっごくどうでもいいけど、IEの履歴を削除するあのダイアログを呼び出す方法。 inetcpl.cplの中のShowDeleteBrowsingHistoryDialog()にウィンドウハンドルを渡して呼べばあのダイアログが出る。以下サンプルプログラム #include <cstdio> #in</cstdio>…
画面のど真ん中にウィンドウを配置するときの計算方法をば。 タスクバーを除く画面の作業領域のサイズをSystemParametersInfo()で取得し、 タイトルバーの高さをtitleBarSize()で取得する。 詳しくは駄文を参照いただければよろしいかと。 例えば、Fallout4…
ヘッダにこんな感じで書くといい。 #pragma once #pragma warning( push ) #pragma warning( disable: 4231 4251 ) #if defined( _WINDLL ) #define EXPORT __declspec( dllexport ) #else #define EXPORT __declspec( dllimport ) #endif #include <vector> templat</vector>…
コンパイルする時にオプション/FAを追加するとアセンブリファイルを出力してくれる。 だから何って言われてもそれだけだけど……。 例 cl /nologo /FA test.cpp
※この記事は下記の内容を参考に執筆させていただきました。 STLのvectorから同一要素を削除 - minus9d's diary STLのvectorにおいて重複を削除するにはsort()後にunique()し、erase()する必要がある。 この辺り関数化して用意しておくといいかも。 以下僕が…
前に.NET Framework用Wow6432Nodeの無視の仕方を書いたけど、今度はC++とWindows APIで。 RegOpenKeyEx()を呼び出すときに引数samDesired(第4引数)にAND演算子で「KEY_WOW64_64KEY」を追加するだけ。 HKEY hKey = nullptr; RegOpenKeyEx( HKEY_CURRENT_USER,…
ipconfigコマンドならipconfig /flushdnsからクリアできるリゾルバキャッシュをAPIから削除する時は、 DnsAPI.dllのDnsFlushResolverCache()を用いる。 この関数、どうやら非公開っぽい*1ので直接DnsAPI.dllからLoadLibrary()してGetProcAddress()する方向で…
Vista以降で追加されたAPIでイベントログの数を調べつつ1件以上データがあればクリアするように書きたい(切望) 有効か無効か調べないとどうも正しい件数が取得できないのかな? その辺で苦戦してる。※以下駄文は管理者として動かす必要があります。 ※あんま…
イベントログをいちいち手で消すのは面倒なので一括でクリアするときのメモ。 レジストリの HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\eventlog と HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\WINEVT\Channels に登録され…