- 締切済み
C言語でPCの環境を表示することはできるか
いつもお世話になっております。 現在、C言語について勉強中です。 今はC言語でPCのPC名や設定しているプリンタ名等、基本的な設定を一括表示 するようなプログラムを組んで見たいと、思っております。 そこで質問なのですが、 レジストリの内容を表示させる方法や、プリンタの設定を表示させるための ソースが載っているHPはありますでしょうか。 勝手な質問かもしれませんが、もし分かる方がいらっしゃいましたら、 よろしくお願いします。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- Oh-Orange
- ベストアンサー率63% (854/1345)
★レジストリの使用例のリンクを紹介します。 http://www.ne.jp/asahi/oh/landd/prog_html/prog53.html→『壁紙の表示タイプの変更』 RegOpenKeyEx、RegSetValueEx、RegCloseKey の簡単な使用例です。 壁紙つながりで壁紙の表示方法を設定するサンプルを載せます。 レジストリのお勉強の最初のころのソースから抜粋しました。 /* レジストリキー(値)の文字列定数 */ #define MSG_DESKTOP TEXT("Control Panel\\Desktop") #define MSG_TILEWALLPAPER TEXT("TileWallpaper") #define MSG_WALLPAPERSTYLE TEXT("WallpaperStyle") // 壁紙の画像イメージ+表示方法を設定 VOID FuncSetWallPaper( INT nStyle, LPCTSTR lpImage ) { LPCBYTE lpData; HKEY hReg; switch ( nStyle ){ case 0: lpData = (LPCBYTE)TEXT("0"); break; case 1: lpData = (LPCBYTE)TEXT("1"); break; case 2: lpData = (LPCBYTE)TEXT("2"); break; default:nStyle = -1; } if ( nStyle >= 0 ){ if ( RegOpenKeyEx(HKEY_CURRENT_USER,MSG_DESKTOP,0,(KEY_READ|KEY_WRITE),&hReg) == ERROR_SUCCESS ){ RegSetValueEx( hReg, MSG_WALLPAPERSTYLE, 0, REG_SZ, lpData, 2 ); RegSetValueEx( hReg, MSG_TILEWALLPAPER, 0, REG_SZ, lpData, 2 ); RegCloseKey( hReg ); } } if ( lpImage == NULL ){ lpImage = TEXT(""); } SystemParametersInfo( SPI_SETDESKWALLPAPER, 0, (LPVOID)lpImage, SPIF_UPDATEINIFILE ); } // 使い方 FuncSetWallPaper( 0, TEXT("C:\\wallpager1.bmp") ); // 中央に表示 FuncSetWallPaper( 1, TEXT("C:\\wallpager2.bmp") ); // 並べて表示 FuncSetWallPaper( 2, TEXT("C:\\wallpager3.bmp") ); // 拡大して表示 その他: ・レジストリの操作には注意して下さい。取得だけなら特に問題はないと思います。 下の『参考URL』にもう2つだけリンクページを紹介します。 ・あと SystemParametersInfo 関数などで、PC環境のいろいろな設定を読み出せます。 SPI_GETxxxx 定数でユーザー補助、デスクトップ、アイコン、入力、メニュー、 電力管理、UI効果などが取得できます。詳しくは MSDN マニュアルをどうぞ。 http://msdn.microsoft.com/library/ja/jpsysinf/html/_win32_systemparametersinfo.asp ・以上。
- yonfa
- ベストアンサー率52% (22/42)
以下のようにいろいろとWin32APIがそろっています。 http://msdn.microsoft.com/library/ja/default.asp?url=/library/ja/jpsysinf/html/Toppage_SystemInformation.asp http://msdn.microsoft.com/library/ja/default.asp?url=/library/ja/jpgdi/html/Toppage_PrintingPrintSpooler.asp http://msdn.microsoft.com/library/ja/default.asp?url=/library/ja/jpsysinf/html/Toppage_Registry.asp GetComputerName()やGetDefaultPrinter()のように 単純に取得できない場合もあるかもしれません。 試行錯誤してわからなかった場合は改めてご質問ください。 「表示」させる方法は、どのようなアプリケーションを作るかによって変わります。 「情報の取得」と「表示」は切り離してお考えください。