Program kopiujący wyniki z konsoli
Ostatnio zmodyfikowano 2010-02-13 18:51
McAffey Temat założony przez niniejszego użytkownika |
Program kopiujący wyniki z konsoli » 2010-02-13 18:06:50 Witam! Czy wie ktoś z was, jak zrobić program, w którym dajemy polecenie systemowe, ale wyniki tego programu będą zapisywane np w zmiennej. Tzn mam namyśli coś takiego, że jak zrobimy np system("IPCONFIG"); to konsola wyświetli nam wyniki. Ale ja nie chcę, żeby ona je wyświetlała, tylko żeby np te wyniki poszły do stringa. Może da się to zrobić bez konsoli, np przez winapi... Czekam na propozycję. Dziękuję i pozdrawiam ;) |
|
Elaine |
» 2010-02-13 18:51:00 Może da się to zrobić bez konsoli, np przez winapi... |
Jedno drugiego nie wyklucza. Kiedyś funkcję do tego napisałem: string execute( const string & app, const string & params = "", const string & directory = "." ) { string output; SECURITY_ATTRIBUTES sec_attr; HANDLE hIn, hOut; STARTUPINFO start_info; PROCESS_INFORMATION proc_info; char buffer[ 1024 ] = { 0 }; DWORD dupa; sec_attr.nLength = sizeof sec_attr; sec_attr.lpSecurityDescriptor = 0; sec_attr.bInheritHandle = true; if( CreatePipe( & hIn, & hOut, & sec_attr, 0 ) ) { memset( & start_info, 0, sizeof start_info ); start_info.cb = sizeof start_info; start_info.dwFlags = STARTF_USESHOWWINDOW | STARTF_USESTDHANDLES; start_info.wShowWindow = SW_HIDE; start_info.hStdInput = 0; start_info.hStdOutput = hOut; start_info.hStdError = hOut; if( CreateProcess( app.c_str(), const_cast < char *>( params.c_str() ), 0, 0, true, 0, 0, directory.c_str(), & start_info, & proc_info ) ) { CloseHandle( hOut ); output = ""; while( ReadFile( hIn, buffer, 1024, & dupa, 0 ) ) { output += buffer; memset( buffer, 0, 1024 ); } } else { throw GetLastError(); } CloseHandle( hIn ); } return output; } |
|
« 1 » |