→OS関連
New-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\FileSystem" ` -Name "LongPathsEnabled" -Value 1 -PropertyType DWORD -Force
char buf[] = "イベントログに記録したいメッセージ";
LPCSTR lpBuf = buf;
hEvent = RegisterEventSource( NULL, "hogehoge" );
if (hEvent != NULL) {
//イベントログ書き込み
bRet = ReportEvent( hEvent, EVENTLOG_ERROR_TYPE, 0, 1, NULL, 1, 0, &lpBuf, NULL);
if ( bRet == FALSE ) {
DWORD err = GetLastError();
LPVOID lpMsgBuf=NULL;
FormatMessage(
FORMAT_MESSAGE_ALLOCATE_BUFFER |FORMAT_MESSAGE_FROM_SYSTEM |FORMAT_MESSAGE_IGNORE_INSERTS,
NULL, err,
MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), // 既定の言語
(LPTSTR) &lpMsgBuf,0,NULL
);
OutputDebugString((LPCSTR)lpMsgBuf);
LocalFree(lpMsgBuf);
}
}SetErrorMode( SEM_FAILCRITICALERRORS | SEM_NOOPENFILEERRORBOX);
[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; //フルスクリーンにしたときの全体(タスクバー分が入らない)
void SetAbsoluteForegroundWindow(HWND hWnd)
{
int nTargetID, nForegroundID;
DWORD sp_time;
// フォアグラウンドウィンドウを作成したスレッドのIDを取得
nForegroundID = GetWindowThreadProcessId(GetForegroundWindow(), NULL);
// 目的のウィンドウを作成したスレッドのIDを取得
nTargetID = GetWindowThreadProcessId(hWnd, NULL );
// スレッドのインプット状態を結び付ける
AttachThreadInput(nTargetID, nForegroundID, TRUE ); // TRUE で結び付け
// 現在の設定を sp_time に保存
SystemParametersInfo( SPI_GETFOREGROUNDLOCKTIMEOUT,0,&sp_time,0);
// ウィンドウの切り替え時間を 0ms にする
SystemParametersInfo( SPI_SETFOREGROUNDLOCKTIMEOUT,0,(LPVOID)0,0);
// ウィンドウをフォアグラウンドに持ってくる
SetForegroundWindow(hWnd);
// 設定を元に戻す
SystemParametersInfo( SPI_SETFOREGROUNDLOCKTIMEOUT,0,sp_time,0);
// スレッドのインプット状態を切り離す
AttachThreadInput(nTargetID, nForegroundID, FALSE ); // FALSE で切り離し
}Get-WmiObject -Class Win32_Account -ComputerName "localhost" | select Status,Name,SIDType,SID