delphi4arab منتديات دلفي للعرب

نسخة كاملة : التعامل مع CMD
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
السلام عليكم 
كيف تنفيذ امر cmd وعرض الناتج ضمن memo
عن طريق الدلفي
وجدت هذا الكود

كود :
function GetDosOutput(CommandLine: string; Work: string = 'C:\'): string; var   SA: TSecurityAttributes;   SI: TStartupInfo;   PI: TProcessInformation;   StdOutPipeRead, StdOutPipeWrite: THandle;   WasOK: Boolean;   Buffer: array[0..255] of AnsiChar;   BytesRead: Cardinal;   WorkDir: string;   Handle: Boolean; begin   Result := '';   with SA do begin     nLength := SizeOf(SA);     bInheritHandle := True;     lpSecurityDescriptor := nil;   end;   CreatePipe(StdOutPipeRead, StdOutPipeWrite, @SA, 0);   try     with SI do     begin       FillChar(SI, SizeOf(SI), 0);       cb := SizeOf(SI);       dwFlags := STARTF_USESHOWWINDOW or STARTF_USESTDHANDLES;       wShowWindow := SW_HIDE;       hStdInput := GetStdHandle(STD_INPUT_HANDLE); // don't redirect stdin       hStdOutput := StdOutPipeWrite;       hStdError := StdOutPipeWrite;     end;     WorkDir := Work;     Handle := CreateProcess(nil, PChar('cmd.exe /C ' + CommandLine),                             nil, nil, True, 0, nil,                             PChar(WorkDir), SI, PI);     CloseHandle(StdOutPipeWrite);     if Handle then       try         repeat           WasOK := ReadFile(StdOutPipeRead, Buffer, 255, BytesRead, nil);           if BytesRead > 0 then           begin             Buffer[BytesRead] := #0;             Result := Result + Buffer;           end;         until not WasOK or (BytesRead = 0);         WaitForSingleObject(PI.hProcess, INFINITE);       finally         CloseHandle(PI.hThread);         CloseHandle(PI.hProcess);       end;   finally     CloseHandle(StdOutPipeRead);   end; end;
السلام عليكم

يمكنك تجريب هذا المكون
PHP كود :
https://github.com/TurboPack/DOSCommand