MJJay Temat założony przez niniejszego użytkownika |
Wyświetlanie informacji o sprzęcie » 2011-12-21 18:18:21 Witam jakiej mogę użyć biblioteki, żeby uzyskać w konsoli informacje o sprzęcie użytkownika oraz systemie a następnie zapisać je do pliku tekstowego? |
|
DejaVu |
» 2011-12-21 18:36:53 |
|
MJJay Temat założony przez niniejszego użytkownika |
» 2011-12-21 18:40:33 Na windows
#include <comdef.h> #include <Wbemidl.h> tu błąd kompilacji, dlaczego? |
|
DejaVu |
» 2011-12-21 18:43:01 |
|
MJJay Temat założony przez niniejszego użytkownika |
» 2011-12-21 18:44:23 To masz kod: #define _WIN32_DCOM #include <iostream> using namespace std; #include <comdef.h> #include <Wbemidl.h>
# pragma comment(lib, "wbemuuid.lib")
int main( int argc, char ** argv ) { HRESULT hres; hres = CoInitializeEx( 0, COINIT_MULTITHREADED ); if( FAILED( hres ) ) { cout << "Failed to initialize COM library. Error code = 0x" << hex << hres << endl; return 1; } hres = CoInitializeSecurity( NULL, - 1, NULL, NULL, RPC_C_AUTHN_LEVEL_DEFAULT, RPC_C_IMP_LEVEL_IMPERSONATE, NULL, EOAC_NONE, NULL ); if( FAILED( hres ) ) { cout << "Failed to initialize security. Error code = 0x" << hex << hres << endl; CoUninitialize(); return 1; } IWbemLocator * pLoc = NULL; hres = CoCreateInstance( CLSID_WbemLocator, 0, CLSCTX_INPROC_SERVER, IID_IWbemLocator,( LPVOID * ) & pLoc ); if( FAILED( hres ) ) { cout << "Failed to create IWbemLocator object." << " Err code = 0x" << hex << hres << endl; CoUninitialize(); return 1; } IWbemServices * pSvc = NULL; hres = pLoc->ConnectServer( _bstr_t( L"ROOT\\CIMV2" ), NULL, NULL, 0, NULL, 0, 0, & pSvc ); if( FAILED( hres ) ) { cout << "Could not connect. Error code = 0x" << hex << hres << endl; pLoc->Release(); CoUninitialize(); return 1; } cout << "Connected to ROOT\\CIMV2 WMI namespace" << endl; hres = CoSetProxyBlanket( pSvc, RPC_C_AUTHN_WINNT, RPC_C_AUTHZ_NONE, NULL, RPC_C_AUTHN_LEVEL_CALL, RPC_C_IMP_LEVEL_IMPERSONATE, NULL, EOAC_NONE ); if( FAILED( hres ) ) { cout << "Could not set proxy blanket. Error code = 0x" << hex << hres << endl; pSvc->Release(); pLoc->Release(); CoUninitialize(); return 1; } IEnumWbemClassObject * pEnumerator = NULL; hres = pSvc->ExecQuery( bstr_t( "WQL" ), bstr_t( "SELECT * FROM Win32_OperatingSystem" ), WBEM_FLAG_FORWARD_ONLY | WBEM_FLAG_RETURN_IMMEDIATELY, NULL, & pEnumerator ); if( FAILED( hres ) ) { cout << "Query for operating system name failed." << " Error code = 0x" << hex << hres << endl; pSvc->Release(); pLoc->Release(); CoUninitialize(); return 1; } IWbemClassObject * pclsObj; ULONG uReturn = 0; while( pEnumerator ) { HRESULT hr = pEnumerator->Next( WBEM_INFINITE, 1, & pclsObj, & uReturn ); if( 0 == uReturn ) { break; } VARIANT vtProp; hr = pclsObj->Get( L"Name", 0, & vtProp, 0, 0 ); wcout << " OS Name : " << vtProp.bstrVal << endl; VariantClear( & vtProp ); pclsObj->Release(); } pSvc->Release(); pLoc->Release(); pEnumerator->Release(); pclsObj->Release(); CoUninitialize(); return 0; }
Hehe :) Jak to zastąpić, żeby .h nie było bo to przez to nie działa. |
|
DejaVu |
» 2011-12-21 18:46:00 Po co mi kod? Przecież sam Ci go dałem... |
|
pekfos |
» 2011-12-21 18:46:24 tu błąd kompilacji, dlaczego? | Jaki? nie utrudniaj. |
|
MJJay Temat założony przez niniejszego użytkownika |
» 2011-12-21 18:46:51 Taki żarcik, wybacz:) Nie no chodzi o to, że kolega mnie poprosił o taki programik tylko, że ja nie mam pojęcia jak się zabrać do tego...
//pekfos taki, że nie potrafi odczytać tych bibliotek. .h tak samo jakby iostream.h napisał...też nie odczyta. Code::Blocks |
|
« 1 » 2 |