質問: 機種名を取得したい windows2000 上で、機種名を取得したいんです。対象機はnec/nx シリーズなんです が、vc++6.0 のapiか何かで、取得する方法をご存知ないでしょうか。 ※尚、機種名は、 『 システム 』『 システム管理 』→ 『 システム情報 』→ 『 システム概要 』 →『 システムモデル 』上で見ることができます。 なにとぞお知恵をお貸しください。よろしくお願いします。
回答: 違ったらごめんなさい。 機種名というのはコンピュータ名のことでしょうか。 それでしたら、msdnライブラリに載ってましたけど。 おまけに変えられる関数も。 getcomputername コンピュータ名を取得します。 bool getcomputername( lptstr lpbuffer, // address of name buffer lpdword nsize // address of size of name buffer ); パラメータ lpbuffer バッファへのポインタを指定します。このバッファに、コンピュータ名が null で終わる文字列として格納されます。 nsize バッファのサイズが入った dword 型変数へのポインタを指定します。バッファのサイズは、max_computername_length + 1 以上にしてください。 戻り値 関数が成功すると、0 以外の値が返ります。また、lpbuffer パラメータに格納された文字数が、nsize パラメータが指す変数に格納されます (終端の null 文字は除く) 。 関数が失敗すると、0 が返ります。拡張エラー情報を取得するには、getlasterror 関数を使います。 対応情報 windows nt: バージョン 3.1 以降 windows: windows 95 以降 windows ce: 対応していません ヘッダ : winbase.h 内で宣言 インポート ライブラリ : kernel32.lib を使用 参照 setcomputername setcomputername コンピュータ名を設定します。次回の起動時から有効になります。 bool setcomputername( lpctstr lpcomputername// 新しいコンピュータ名へのポインタ ); パラメータ lpcomputername 新しいコンピュータ名が入ったnullで終わる文字列へのポインタを指定します。最大長は、max_computername_lengthです。次回の起動時から有効になります。 windows 95:指定した名前が標準の文字セット外の文字を含んでいると、それらの文字は標準の文字に文字化けします。 windows nt:指定した名前が標準の文字セット外の文字を含んでいると、この関数は、error_invalid_parameterを返します。 標準の文字セットは、文字と数字、および、次の記号を含んでいます。 ! @ # $ % ^ & ' ) ( . - _ { } ~ . 戻り値 関数が成功すると、0以外の値が返ります。 関数が失敗すると、0が返ります。拡張エラー情報を取得するには、getlasterror関数を使います。 解説 この関数を使うアプリケーションは、システム管理者の権利を持っていなければなりません。 対応情報 windows nt:○ windows 95:○ 参照 getcomputername ---------------------------------------