Konuyu Oyla:
  • Derecelendirme: 3/5 - 1 oy
  • 1
  • 2
  • 3
  • 4
  • 5
Delphi ile cmd komut göndermek ve yanıt almak
#21
(14-07-2021, Saat: 10:58)pro_imaj Adlı Kullanıcıdan Alıntı:
(16-09-2016, Saat: 17:27)yhackup Adlı Kullanıcıdan Alıntı: Merhaba,

Nette rastladığım faydalı olabileceğini düşündüğüm bir fonksiyon...


function GetCommand(CommandLine: string): 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);
      hStdOutput := StdOutPipeWrite;
      hStdError := StdOutPipeWrite;
    end;
    WorkDir := GetCurrentDir;
    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;


Merhaba,

CMD ile Linux SSH ile bağlanmaya çalışırken Normal CMD ekranında parola sorusu geliyor ve yazıp işleme devam edebiliyoruz, Yukarıdaki komutlarla işlem yaptığımızda Parola ekranı dönmediği için devam edemiyorum bunu deneyimleyen var mı acaba. 

Teşekkürler.

comutunun başına,aşağıdaki gibi direktif kullanabilirsiniz tam hatırlamıyorum internetten araştırabilirsiniz.
net use xxxx /user:xxx
WWW
Cevapla
#22
(14-07-2021, Saat: 11:34)yhackup Adlı Kullanıcıdan Alıntı:
(14-07-2021, Saat: 10:58)pro_imaj Adlı Kullanıcıdan Alıntı: Merhaba,

CMD ile Linux SSH ile bağlanmaya çalışırken Normal CMD ekranında parola sorusu geliyor ve yazıp işleme devam edebiliyoruz, Yukarıdaki komutlarla işlem yaptığımızda Parola ekranı dönmediği için devam edemiyorum bunu deneyimleyen var mı acaba. 

Teşekkürler.

comutunun başına,aşağıdaki gibi direktif kullanabilirsiniz tam hatırlamıyorum internetten araştırabilirsiniz.
net use xxxx  /user:xxx

Bunu komutla değilde linux'un özelliği ile çözdüm.

Şimdide şöyle bir sorun oluyor, gönderdiğim komutun sonucu 30-40 sn sonra döndüğü için cmd'de alabiliyorum fakat bu fonksiyon o sonucu beklemeden cevap döndüğü için boş dönüyor.

(14-07-2021, Saat: 14:57)pro_imaj Adlı Kullanıcıdan Alıntı:
(14-07-2021, Saat: 11:34)yhackup Adlı Kullanıcıdan Alıntı: comutunun başına,aşağıdaki gibi direktif kullanabilirsiniz tam hatırlamıyorum internetten araştırabilirsiniz.
net use xxxx  /user:xxx

Bunu komutla değilde linux'un özelliği ile çözdüm.

Şimdide şöyle bir sorun oluyor, gönderdiğim komutun sonucu 30-40 sn sonra döndüğü için cmd'de alabiliyorum fakat bu fonksiyon o sonucu beklemeden cevap döndüğü için boş dönüyor.

*CMD yaptığım gibi Delphi tarafında aynı anda 2,3 komutu birlikte gönderiyorum.
Cevapla
#23
Merhaba,

Bunu yapamıyorum bir önerisi olan varmı acaba.

Tek tek komut gönderdiğimde sorunsuz çalışıyorken 3-4 satırlık komut gönderdiğinde dönüş değerini alamıyorum 3-4 satırlık komutu aynı anda gönderme zorunluluğum var.

*Aynı komutları cmd'ye yapıştırdığı da sonucun geldiğini gözlemliyorum.

Teşekkürler.
Cevapla


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  Delphi 7 Unrar mcuyan 12 485 19-03-2024, Saat: 10:30
Son Yorum: frmman
Lightbulb Delphi 7zip Password lü Dosya Sıkıştırma ve Açma + Bonus RAR5 Desteği frmman 6 262 16-03-2024, Saat: 17:55
Son Yorum: delphi.developer
  delphi 12 ile TFileStream çalışmıyor aegean 5 425 05-03-2024, Saat: 22:23
Son Yorum: aegean
  Delphi ile geliştirdiğiniz uygulamalar neler? - İki Ödüllü Mr.Developer 20 12.683 01-01-2024, Saat: 22:46
Son Yorum: aegean
  Delphi 7 ye göre MB Döviz kurları nasıl alırız maydin60 7 964 31-12-2023, Saat: 02:18
Son Yorum: maydin60



Konuyu Okuyanlar: 1 Ziyaretçi