| C++builder分室 |
|---|
皆さんのお力をかりて、BCBのTips集を作成したいと考えております。
BCBのプログラミングの部品としてつかえるKnowHowを提供ください。
尚、ここに公開するソースは、gnu宣言に則り良識元に使われることを
願っております。
協力者である、mmyさんに感謝をこめて。
追伸、ネタ&感想を募集しております。
掲示板にてよろしくお願いします。
COMポートの使用可/不可を調べる関数
// COMポートの有効無効を調べる
// true が返れば、使用可能
// false が返れば、使用不可
bool check_com(int com)
{
HANDLE hCom;
String mes;
mes = "COM" + IntToStr(com);
if ((hCom=CreateFile (mes.c_str(), GENERIC_READ|GENERIC_WRITE,
0, NULL, OPEN_EXISTING, 0, NULL)) == INVALID_HANDLE_VALUE) {
return false;
}
else {
CloseHandle(hCom);
return true;
}
}
WINDOWSのバージョンを調べる関数
// OS バージョン取得
// 詳細はWIN32ヘルプの GetVersionEx(&info) を参照下さい
int Get_OS_Ver(String &OS_ver)
{
int ret;
OSVERSIONINFO info;
info.dwOSVersionInfoSize = sizeof (info);
GetVersionEx(&info);
OS_ver = "";
switch (info.dwPlatformId) {
case VER_PLATFORM_WIN32s:
ret = 32;
OS_Ver = "Win32s";
break;
case VER_PLATFORM_WIN32_WINDOWS:
if (info.dwMinorVersion == 10)
ret = 98;
OS_Ver = "Windows 98";
else
ret = 95;
OS_Ver = "Windows 95";
break;
case VER_PLATFORM_WIN32_NT:
ret = 40;
OS_Ver = "Windows NT";
break;
default:
ret = -1;
OS_Ver = "不明";
}
// バージョン
OS_Ver = OS_Ver + String((int)info.dwMajorVersion) + "."
+ String((int)info.dwMinorVersion);
// ビルド
OS_Ver = OS_Ver + " " + String((int)(info.dwBuildNumber & 0xFFFF));
// システム
OS_Ver = OS_Ver + " " + info.szCSDVersion;
return ret;
}