delphi4arab منتديات دلفي للعرب
التعامل مع CMD - نسخة قابلة للطباعة

+- delphi4arab منتديات دلفي للعرب (https://delphi4arab.net/forum)
+-- قسم : منتديات دلفي للعرب التعليمية (https://delphi4arab.net/forum/forumdisplay.php?fid=3)
+--- قسم : سؤال و جواب حول دلفي (https://delphi4arab.net/forum/forumdisplay.php?fid=15)
+--- الموضوع : التعامل مع CMD (/showthread.php?tid=11926)



التعامل مع CMD - محمودد - 09-05-2022

السلام عليكم 
كيف تنفيذ امر cmd وعرض الناتج ضمن memo
عن طريق الدلفي


RE: التعامل مع CMD - Ndagor - 09-05-2022

وجدت هذا الكود

كود :
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;



RE: التعامل مع CMD - S.FATEH - 09-05-2022

السلام عليكم

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