_Leo Site Admin

Registrado: 11 Ago 2002Mensajes: 1875Ubicación: Lanzarote - Islas Canarias (España)
|
Publicado: Jue 27 Ago, 2009 4:52 pm Asunto: |
|
|
Creamos un proyecto nuevo, añadimos un TMemo (Memo1) y un TButton (Button1) y en el "OnClick" del botón:
| Código: | HANDLE pipeRead, pipeWrite;
SECURITY_ATTRIBUTES sa = {sizeof(SECURITY_ATTRIBUTES)};
sa.bInheritHandle = TRUE;
if (CreatePipe(&pipeRead, &pipeWrite, &sa, 2500000))
{
STARTUPINFO si = {sizeof(si)};
PROCESS_INFORMATION pi = {0};
si.hStdOutput = si.hStdError = pipeWrite;
si.dwFlags = STARTF_USESTDHANDLES | STARTF_USESHOWWINDOW;
si.wShowWindow = SW_HIDE;
if (CreateProcess(0, TEXT("ipconfig.exe"), 0, 0, TRUE, 0, 0, 0, &si, &pi))
{
CloseHandle(pi.hThread);
if (WaitForSingleObject(pi.hProcess, 9000) == WAIT_OBJECT_0)
{
Memo1->Clear();
char buffer[4000];
bool done = false;
DWORD dwRead = 0;
while (!done) {
memset(buffer, 0, sizeof(buffer));
ReadFile(pipeRead, buffer, sizeof(buffer), &dwRead, 0);
OemToCharBuffA(buffer, buffer, dwRead);
Memo1->Lines->Append(buffer);
done = (dwRead < sizeof(buffer));
}
} //WaitForSingleObject
CloseHandle(pi.hProcess);
} //CreateProcess
CloseHandle(pipeRead);
CloseHandle(pipeWrite);
} //CreatePipe |
|
|