ssCAROのブログ

色んなとこで見つけたプログラムのメモ置き場っぽい

VC

タスクバーの表示/非表示

VC

//タスクバーの表示/非表示 HWND hWnd; //タスクバーのウインドウハンドルを取得 hWnd = FindWindow("Shell_TrayWnd", NULL); if(hWnd != 0) { //非表示 ShowWindow(hWnd, SW_HIDE); //表示 ShowWindow(hWnd, SW_SHOW); } //おまけ //スタートボタンを押した…

スクリーンセーバーの作成

VC

//スクリーンセーバーの作成 //文字の表示位置を変えるだけのスクリーンセーバー #include <windows.h> #include <scrnsave.h> #pragma comment(lib, "scrnsave.lib") HFONT hScrnFont; HFONT DrawFont(LPSTR pszName, LONG lSize) { LOGFONT lf; lf.lfHeight = lSize; lf.lfWidth =</scrnsave.h></windows.h>…

STLのmapを引数にする

VC

STL(標準テンプレートライブラリ)のことを最近まで知りませんでした。 使ってみると、とても便利です。 #pragma warning(disable : 4786) #include <map> #include <string> using namespace std; void SetMyName(map<int, string> &mapBuff) { mapBuff[5] = "私の名前" } void main() </int,></string></map>…

構造体のパディング

VC

#pragma pack(1) struct sample1 { WORD wBuf; // 2バイト BYTE byBuf; // 1バイト }; #pragma pack() sizeof(sample1) == 3 構造体のパディングをしないようにするには、#pragma pack(1) ~ #pragma pack()で囲めば良いようです。

構造体のサイズ

VC

struct sample1 { WORD wBuf; // 2バイト BYTE byBuf; // 1バイト }; struct sample2 { WORD wBuf; // 2バイト BYTE byBuf1; // 1バイト BYTE byBuf2; // 1バイト }; 上の構造体のサイズを sizeof関数 で調べると・・・ sizeof(sample1) == 4 sizeof(sample2…

Bitmapに描いて表示する

VC

// 普段、画面に表示する内容は文字列ばっかりなので // ビットマップの描画方法とかをメモ。 LRESULT CALLBACK WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam) { static HBITMAP hBmp; switch(uMsg) { case WM_CREATE: { HDC hDC: HDC hMemD…

パソコンの電源を切る

VC

パソコンの電源を切る。(Windows NT以上) OpenProcessTokenで取得したハンドルはCloseHandleで解放する。 日本語版MSDNには、そのこと書いて無いから注意! 英語版MSDN OpenProcessToken HANDLE hToken; TOKEN_PRIVILEGES tp; LUID luid; BOOL bResult; //ア…

OSのバージョンを取得

VC

OSのバージョンを取得する。 NT系でしかサポートしていない関数とかを使う場合に。 PlatformIDを見ればNT系か9x系かを判断できる。 OSVERSIONINFO OSInfo; OSInfo.dwOSVersionInfoSize = sizeof(OSVERSIONINFO); GetVersionEx(&OSInfo); if(OSInfo.dwPlatfor…

容量の小さい実行ファイル作成

VC

コンソールウインドウを開いて文字を出力したりする。 デバッグ用に便利、もちろんDLLでも使用可能。 下のプログラムをコンパイルして出来た 実行ファイルのサイズは 1,024 バイトでした。 #include <windows.h> #pragma comment(linker, "/nodefaultlib:\"libc.lib\"")</windows.h>…

コンソール出力

VC

コンソールウインドウを開いて文字を出力したりする。 デバッグ用に便利、もちろんDLLでも使用可能。 void OutputConsole(LPCSTR lpszFormat, ...) { char szBuff[100]; va_list args; va_start(args, lpszFormat); wvsprintf(szBuff, lpszFormat, args); va…

コマンドライン引数

VC

__argc : __argv に格納されている引数の数 __argv : NULL で終わる文字列の配列 使い方は C と同じで良いみたいだけど、WinMain()以外でも使える。 for(int i = 0; i < __argc; i++) { wsprintf(szBuf, "%d : %s", i, __argv[i]); MessageBox(NULL, szBuf, …