WindowsAPI関連
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
] [
Twitter
]
開始行:
→[[OS関連]]
→COM技術関連
→Windows dll関連
#contents
*Tips [#mf9390b5]
-[[C# Win32API完全入門 #C# - Qiita>https://qiita.com/neko...
-[[一週間で身につくWIN32プログラミングの基本|ウィンドウズ...
-[[[Delphi] 管理者権限のチェック&管理者としてアプリを実行...
-[[25行で書けてちょっと便利なマウスジェスチャーソフト|SH...
-[[別プロセスのメモリを読みたかった話 - Qiita>https://qii...
-[[Windows 10で始めるC言語開発(28) WindowsでC言語開発! ...
-[[C++ Win32 APIを始める時に役立つ資料 - Qiita>https://qi...
-[[MAX_PATH とか _MAX_PATH とか FILENAME_MAX とか - satos...
--[[Maximum Path Length Limitation - Win32 apps | Microso...
--以下のレジストリを設定すると260文字以上のパスも扱えるら...
New-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\C...
-Name "LongPathsEnabled" -Value 1 -PropertyType DWORD -F...
-[[Windows API AとWどちらがお得? - Qiita>https://qiita.c...
--Aを呼んでも結局Wが呼ばれるのでWの方がよい
-[[Windows SDK とエミュレーターのアーカイブ>https://devel...
-[[Metroスタイル・アプリの開発者が知るべき3つのこと>http:...
-[[Windowsパス名の落とし穴>http://www.ipa.go.jp/security/...
-[[他のアプリのウィンドウハンドルを得る>http://www.wwlnk....
--FindWindowにクラス名を渡す
-[[Win32雑学ノート>http://hp.vector.co.jp/authors/VA00009...
--セッション−ウィンドウステーション−デスクトップの関連に...
---これらのデスクトップのさらに上位に位置するのがウィンド...
---では Non I/O ウィンドウステーションは何のために用意さ...
-[[UI Automation overview>http://www.codeproject.com/WPF/...
-[[Windows API index - Win32 apps | Microsoft Docs>https:...
*イベントログ [#r88066d9]
-出力サンプル
char buf[] = "イベントログに記録したいメッセージ";
LPCSTR lpBuf = buf;
hEvent = RegisterEventSource( NULL, "hogehoge" );
if (hEvent != NULL) {
//イベントログ書き込み
bRet = ReportEvent( hEvent, EVENTLOG_ERROR_TYPE,...
if ( bRet == FALSE ) {
DWORD err = GetLastError();
LPVOID lpMsgBuf=NULL;
FormatMessage(
FORMAT_MESSAGE_ALLOCATE_BUFFER |...
NULL, err,
MAKELANGID(LANG_NEUTRAL, SUBLANG...
(LPTSTR) &lpMsgBuf,0,NULL
);
OutputDebugString((LPCSTR)lpMsgBuf);
LocalFree(lpMsgBuf);
}
}
-参考サイト:[[イベントログにメッセージを出力する>http://w...
*Professional User Interface Suite [#y634b152]
-http://www.codeproject.com/docking/prod_profuis.asp
*DirectX/WPF [#g404c2f6]
-[[WPF/MDX:http://www.atmarkit.co.jp/fdotnet/directxworld...
--MDX=Managed DirectX
-[[XNA解説:http://www.atmarkit.co.jp/fdotnet/directxworld...
-[[WPF概要:http://www.dodgson.org/omo/t/?date=20060922#p1...
-[[DirectXの真実:http://www.atmarkit.co.jp/fdotnet/direct...
*GDI/GDI+ [#paeaec10]
-[[Fuzzy DropShadows in GDI++:http://www.codeproject.com/...
**gdi++.dll [#c66469e0]
-http://drwatson.nobody.jp/gdi++/
-フォントの描画をフックして滑らかな表示にする
-[[関連スラド記事:http://slashdot.jp/developers/article.p...
*小文字→大文字変換 [#i65d5b07]
-[[CharUpperBuffW 関数 (winuser.h) - Win32 apps | Microso...
--いわゆるToUpper()に相当する CharUpperBuff
*システムエラーの際メッセージボックスを出さなくする [#h47...
-[[SetErrorMode 関数 (errhandlingapi.h) - Win32 apps | Mi...
SetErrorMode( SEM_FAILCRITICALERRORS | SEM_NOOPENFILEERR...
*画面のキャプチャ方法三種類 [#q692acd7]
-http://www.codeproject.com/dialog/screencap.asp
-GDI経由、DirectX経由、Windows Media API経由の3種類
*Taskbar Progress Control [#x0743f75]
-http://www.codeproject.com/statusbar/taskbarctrl.asp
*ウィンドウハンドルからモジュール名を得る [#i0c02cd3]
-http://www.codeproject.com/cpp/ModuleNameFromWindwHandle...
*Processing Global Mouse and Keyboard Hooks in C# [#mb551...
-http://www.codeproject.com/csharp/globalhook.asp
*SetUpDIxxx関数によるデバイス情報の列挙 [#vabf01ea]
-http://www.codeproject.com/useritems/SimpleSetup.asp
*タスクバーをプログラムから制御する [#jbb9b341]
-PostMessageを使う
-http://www.codeproject.com/useritems/Taskbar_Manipulatio...
* デスクトップ上のウィンドウをグリッドに沿って合わせるユ...
-メッセージフックのサンプル。Delphi
-http://codezine.jp/a/article.aspx?aid=369
*現在ログオンしているユーザの情報を得る [#m4d8e543]
-http://www.codeproject.com/useritems/LoggedOnUSer.asp (P...
-http://www.codeproject.com/useritems/LoggedOnUsersPart2....
*GetSystemMetricsのパラメータの微妙な違い [#m2a633f9]
[DllImport("user32.dll")]
public static extern int GetSystemMetrics(int nIndex);
const int SM_CXSCREEN = 0;
const int SM_CYSCREEN = 1; //デスクトップ画面全体
const int SM_CXFULLSCREEN =16;
const int SM_CYFULLSCREEN =17; //フルスクリーンにしたと...
const int SM_CXMAXIMIZED=61;
const int SM_CYMAXIMIZED=62; //フルスクリーンにしたとき...
*ウィンドウの強制前だし要件への対応 [#z99d3f9a]
-※強制的に前に出てくるウィンドウというのは下品な仕様です...
-単純にSetForegroundWindow APIとかを使うだけではダメであ...
-http://techtips.belution.com/ja/vc/0012/
void SetAbsoluteForegroundWindow(HWND hWnd)
{
int nTargetID, nForegroundID;
DWORD sp_time;
// フォアグラウンドウィンドウを作成したスレッドのIDを...
nForegroundID = GetWindowThreadProcessId(GetForegroun...
// 目的のウィンドウを作成したスレッドのIDを取得
nTargetID = GetWindowThreadProcessId(hWnd, NULL );
// スレッドのインプット状態を結び付ける
AttachThreadInput(nTargetID, nForegroundID, TRUE ); ...
// 現在の設定を sp_time に保存
SystemParametersInfo( SPI_GETFOREGROUNDLOCKTIMEOUT,0,...
// ウィンドウの切り替え時間を 0ms にする
SystemParametersInfo( SPI_SETFOREGROUNDLOCKTIMEOUT,0,...
// ウィンドウをフォアグラウンドに持ってくる
SetForegroundWindow(hWnd);
// 設定を元に戻す
SystemParametersInfo( SPI_SETFOREGROUNDLOCKTIMEOUT,0,...
// スレッドのインプット状態を切り離す
AttachThreadInput(nTargetID, nForegroundID, FALSE ); ...
}
*WMI/CIM [#p4c2113c]
-[[「wmic PRODUCT list」コマンドで取得できるインストール...
-[[WMI の使用 - PowerShell | Microsoft Docs>https://docs....
--Common Information Model (CIM) コマンドレットは、PowerS...
-[[CIMWin32 WMI Providers - Win32 apps | Microsoft Docs>h...
-[[非推奨であるwmicコマンドの代替を探す(Get-WmiObject) - ...
-[[Win32 Provider - Win32 apps | Microsoft Docs>https://d...
--例えば、ユーザアカウントの一覧を得るならこうやる、など
Get-WmiObject -Class Win32_Account -ComputerName "localh...
-[[WMIを利用してWindowsOSの情報を取得する [C#] | JOHOBASE...
終了行:
→[[OS関連]]
→COM技術関連
→Windows dll関連
#contents
*Tips [#mf9390b5]
-[[C# Win32API完全入門 #C# - Qiita>https://qiita.com/neko...
-[[一週間で身につくWIN32プログラミングの基本|ウィンドウズ...
-[[[Delphi] 管理者権限のチェック&管理者としてアプリを実行...
-[[25行で書けてちょっと便利なマウスジェスチャーソフト|SH...
-[[別プロセスのメモリを読みたかった話 - Qiita>https://qii...
-[[Windows 10で始めるC言語開発(28) WindowsでC言語開発! ...
-[[C++ Win32 APIを始める時に役立つ資料 - Qiita>https://qi...
-[[MAX_PATH とか _MAX_PATH とか FILENAME_MAX とか - satos...
--[[Maximum Path Length Limitation - Win32 apps | Microso...
--以下のレジストリを設定すると260文字以上のパスも扱えるら...
New-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\C...
-Name "LongPathsEnabled" -Value 1 -PropertyType DWORD -F...
-[[Windows API AとWどちらがお得? - Qiita>https://qiita.c...
--Aを呼んでも結局Wが呼ばれるのでWの方がよい
-[[Windows SDK とエミュレーターのアーカイブ>https://devel...
-[[Metroスタイル・アプリの開発者が知るべき3つのこと>http:...
-[[Windowsパス名の落とし穴>http://www.ipa.go.jp/security/...
-[[他のアプリのウィンドウハンドルを得る>http://www.wwlnk....
--FindWindowにクラス名を渡す
-[[Win32雑学ノート>http://hp.vector.co.jp/authors/VA00009...
--セッション−ウィンドウステーション−デスクトップの関連に...
---これらのデスクトップのさらに上位に位置するのがウィンド...
---では Non I/O ウィンドウステーションは何のために用意さ...
-[[UI Automation overview>http://www.codeproject.com/WPF/...
-[[Windows API index - Win32 apps | Microsoft Docs>https:...
*イベントログ [#r88066d9]
-出力サンプル
char buf[] = "イベントログに記録したいメッセージ";
LPCSTR lpBuf = buf;
hEvent = RegisterEventSource( NULL, "hogehoge" );
if (hEvent != NULL) {
//イベントログ書き込み
bRet = ReportEvent( hEvent, EVENTLOG_ERROR_TYPE,...
if ( bRet == FALSE ) {
DWORD err = GetLastError();
LPVOID lpMsgBuf=NULL;
FormatMessage(
FORMAT_MESSAGE_ALLOCATE_BUFFER |...
NULL, err,
MAKELANGID(LANG_NEUTRAL, SUBLANG...
(LPTSTR) &lpMsgBuf,0,NULL
);
OutputDebugString((LPCSTR)lpMsgBuf);
LocalFree(lpMsgBuf);
}
}
-参考サイト:[[イベントログにメッセージを出力する>http://w...
*Professional User Interface Suite [#y634b152]
-http://www.codeproject.com/docking/prod_profuis.asp
*DirectX/WPF [#g404c2f6]
-[[WPF/MDX:http://www.atmarkit.co.jp/fdotnet/directxworld...
--MDX=Managed DirectX
-[[XNA解説:http://www.atmarkit.co.jp/fdotnet/directxworld...
-[[WPF概要:http://www.dodgson.org/omo/t/?date=20060922#p1...
-[[DirectXの真実:http://www.atmarkit.co.jp/fdotnet/direct...
*GDI/GDI+ [#paeaec10]
-[[Fuzzy DropShadows in GDI++:http://www.codeproject.com/...
**gdi++.dll [#c66469e0]
-http://drwatson.nobody.jp/gdi++/
-フォントの描画をフックして滑らかな表示にする
-[[関連スラド記事:http://slashdot.jp/developers/article.p...
*小文字→大文字変換 [#i65d5b07]
-[[CharUpperBuffW 関数 (winuser.h) - Win32 apps | Microso...
--いわゆるToUpper()に相当する CharUpperBuff
*システムエラーの際メッセージボックスを出さなくする [#h47...
-[[SetErrorMode 関数 (errhandlingapi.h) - Win32 apps | Mi...
SetErrorMode( SEM_FAILCRITICALERRORS | SEM_NOOPENFILEERR...
*画面のキャプチャ方法三種類 [#q692acd7]
-http://www.codeproject.com/dialog/screencap.asp
-GDI経由、DirectX経由、Windows Media API経由の3種類
*Taskbar Progress Control [#x0743f75]
-http://www.codeproject.com/statusbar/taskbarctrl.asp
*ウィンドウハンドルからモジュール名を得る [#i0c02cd3]
-http://www.codeproject.com/cpp/ModuleNameFromWindwHandle...
*Processing Global Mouse and Keyboard Hooks in C# [#mb551...
-http://www.codeproject.com/csharp/globalhook.asp
*SetUpDIxxx関数によるデバイス情報の列挙 [#vabf01ea]
-http://www.codeproject.com/useritems/SimpleSetup.asp
*タスクバーをプログラムから制御する [#jbb9b341]
-PostMessageを使う
-http://www.codeproject.com/useritems/Taskbar_Manipulatio...
* デスクトップ上のウィンドウをグリッドに沿って合わせるユ...
-メッセージフックのサンプル。Delphi
-http://codezine.jp/a/article.aspx?aid=369
*現在ログオンしているユーザの情報を得る [#m4d8e543]
-http://www.codeproject.com/useritems/LoggedOnUSer.asp (P...
-http://www.codeproject.com/useritems/LoggedOnUsersPart2....
*GetSystemMetricsのパラメータの微妙な違い [#m2a633f9]
[DllImport("user32.dll")]
public static extern int GetSystemMetrics(int nIndex);
const int SM_CXSCREEN = 0;
const int SM_CYSCREEN = 1; //デスクトップ画面全体
const int SM_CXFULLSCREEN =16;
const int SM_CYFULLSCREEN =17; //フルスクリーンにしたと...
const int SM_CXMAXIMIZED=61;
const int SM_CYMAXIMIZED=62; //フルスクリーンにしたとき...
*ウィンドウの強制前だし要件への対応 [#z99d3f9a]
-※強制的に前に出てくるウィンドウというのは下品な仕様です...
-単純にSetForegroundWindow APIとかを使うだけではダメであ...
-http://techtips.belution.com/ja/vc/0012/
void SetAbsoluteForegroundWindow(HWND hWnd)
{
int nTargetID, nForegroundID;
DWORD sp_time;
// フォアグラウンドウィンドウを作成したスレッドのIDを...
nForegroundID = GetWindowThreadProcessId(GetForegroun...
// 目的のウィンドウを作成したスレッドのIDを取得
nTargetID = GetWindowThreadProcessId(hWnd, NULL );
// スレッドのインプット状態を結び付ける
AttachThreadInput(nTargetID, nForegroundID, TRUE ); ...
// 現在の設定を sp_time に保存
SystemParametersInfo( SPI_GETFOREGROUNDLOCKTIMEOUT,0,...
// ウィンドウの切り替え時間を 0ms にする
SystemParametersInfo( SPI_SETFOREGROUNDLOCKTIMEOUT,0,...
// ウィンドウをフォアグラウンドに持ってくる
SetForegroundWindow(hWnd);
// 設定を元に戻す
SystemParametersInfo( SPI_SETFOREGROUNDLOCKTIMEOUT,0,...
// スレッドのインプット状態を切り離す
AttachThreadInput(nTargetID, nForegroundID, FALSE ); ...
}
*WMI/CIM [#p4c2113c]
-[[「wmic PRODUCT list」コマンドで取得できるインストール...
-[[WMI の使用 - PowerShell | Microsoft Docs>https://docs....
--Common Information Model (CIM) コマンドレットは、PowerS...
-[[CIMWin32 WMI Providers - Win32 apps | Microsoft Docs>h...
-[[非推奨であるwmicコマンドの代替を探す(Get-WmiObject) - ...
-[[Win32 Provider - Win32 apps | Microsoft Docs>https://d...
--例えば、ユーザアカウントの一覧を得るならこうやる、など
Get-WmiObject -Class Win32_Account -ComputerName "localh...
-[[WMIを利用してWindowsOSの情報を取得する [C#] | JOHOBASE...
ページ名: