امتیاز موضوع:
  • 0 رأی - میانگین امتیازات: 0
  • 1
  • 2
  • 3
  • 4
  • 5
Shell
نویسنده پیام
unknown_hcr آفلاین
كاربر تک ستاره
*

ارسال‌ها: 51
موضوع‌ها: 19
تاریخ عضویت: مرداد ۱۳۸۷

تشکرها : 5
( 8 تشکر در 5 ارسال )
ارسال: #1
Shell
سلام
چطور مي شه بعد از اينكه دستوري رو در خط فرمان استفاده كرديم(shell) جواب سيستم كه بايد در خط فرمان نمايش داده بشه به جاي نمايش در خط فرمان در برنامه خودمون مثلا در يك text چاپ كنيم؟
۰۲-مهر-۱۳۸۷, ۱۷:۲۲:۵۵
ارسال‌ها
پاسخ
ajlajlajl آفلاین
مدیر بازنشسته
*****

ارسال‌ها: 2,192
موضوع‌ها: 70
تاریخ عضویت: مهر ۱۳۸۴

تشکرها : 932
( 2618 تشکر در 1020 ارسال )
ارسال: #2
RE: Shell
میتونید نتایجو بریزید توی یه فایل:
dir c:\windows > a.txt

میزان رای دشمن است!
[تصویر:  cff100.png]
۰۲-مهر-۱۳۸۷, ۱۷:۲۶:۲۲
وب سایت ارسال‌ها
پاسخ
lord_viper غایب
مدیر کل انجمن
*****

ارسال‌ها: 3,949
موضوع‌ها: 352
تاریخ عضویت: بهمن ۱۳۸۴

تشکرها : 5193
( 9875 تشکر در 2650 ارسال )
ارسال: #3
RE: Shell
شما باید از توابع api استفاده کنین ابتدا باید یک پروسه برای dos بوجود بیارین و با استفاده از createpipe و readpipe و witepipe اطلاعاتو بگیرین این پونیتیه که من تو دلفی واسه این کار نوشتم
کد:
unit dosoutput;

interface
uses
sysutils,windows,classes,forms;
procedure getDosoutput(DosApp:String;list:tstrings) ;
implementation
procedure getDosoutput(DosApp:String;list:tstrings) ;
  var
   Security : TSecurityAttributes;
   ReadPipe,WritePipe : THandle;
   start : TStartUpInfo;
   ProcessInfo : TProcessInformation;
   Buffer : Pchar;
   BytesRead : DWord;
   Apprunning : DWord;
  begin
    Security.nlength := SizeOf(TSecurityAttributes) ;
    Security.binherithandle := true;
    Security.lpsecuritydescriptor := nil;
   if Createpipe (ReadPipe, WritePipe, @Security, 0) then begin
    Buffer := AllocMem(2049) ;
    FillChar(Start,Sizeof(Start),#0) ;
    start.cb := SizeOf(start) ;
    start.hStdOutput := WritePipe;
    start.hStdInput := ReadPipe;
    start.dwFlags := STARTF_USESTDHANDLES + STARTF_USESHOWWINDOW;
    start.wShowWindow := SW_HIDE;
    if CreateProcess(nil,PChar(DosApp),@Security,@Security,true,NORMAL_PRIORITY_CLASS,nil,nil,start,ProcessInfo)
    then
    begin
     repeat
      Apprunning := WaitForSingleObject(ProcessInfo.hProcess,100) ;
      application.ProcessMessages;
     until (Apprunning <> WAIT_TIMEOUT) ;
      Repeat
        BytesRead := 0;
        ReadFile(ReadPipe,Buffer[0],2048,BytesRead,nil) ;
        OemToAnsi(Buffer,Buffer) ;
        list.Add(String(Buffer)) ;
      until (BytesRead <2048) ;
   end;
   FreeMem(Buffer) ;
   CloseHandle(ProcessInfo.hProcess) ;
   CloseHandle(ProcessInfo.hThread) ;
   CloseHandle(ReadPipe) ;
   CloseHandle(WritePipe) ;
   end;
  end;
end.
۰۲-مهر-۱۳۸۷, ۱۸:۲۷:۵۰
وب سایت ارسال‌ها
پاسخ
unknown_hcr آفلاین
كاربر تک ستاره
*

ارسال‌ها: 51
موضوع‌ها: 19
تاریخ عضویت: مرداد ۱۳۸۷

تشکرها : 5
( 8 تشکر در 5 ارسال )
ارسال: #4
RE: Shell
ممنون. ولي كسي سورس VB رو نداره؟ من مي خوام مستقيم در برنامه نشون داده بشه.
۰۲-مهر-۱۳۸۷, ۱۸:۴۹:۴۹
ارسال‌ها
پاسخ
HoseinVig آفلاین
مدیر بازنشسته
*****

ارسال‌ها: 1,165
موضوع‌ها: 97
تاریخ عضویت: مرداد ۱۳۸۵

تشکرها : 4768
( 2464 تشکر در 677 ارسال )
ارسال: #5
RE: Shell
(۰۲-مهر-۱۳۸۷, ۱۸:۴۹:۴۹)unknown_hcr نوشته است: ممنون. ولي كسي سورس VB رو نداره؟ من مي خوام مستقيم در برنامه نشون داده بشه.
با این جواب چه مشکلی داری؟
نقل قول: میتونید نتایجو بریزید توی یه فایل:
dir c:\windows > a.txt
یه richtextbox بزار رو فرمت خاصیت فیل نیمش رو بده a.txt حالا نتویجشو میتونی ببینی(لقمه که نباید جویده باشه)

۰۳-مهر-۱۳۸۷, ۰۳:۵۰:۴۰
ارسال‌ها
پاسخ


موضوعات مرتبط با این موضوع...
موضوع نویسنده پاسخ بازدید آخرین ارسال
  استفاده از فايل باز شده با shell vz67 2 2,801 ۲۵-شهریور-۱۳۸۷, ۰۶:۱۶:۵۵
آخرین ارسال: EleRam

پرش به انجمن:


کاربرانِ درحال بازدید از این موضوع: 1 مهمان

صفحه‌ی تماس | IranVig | بازگشت به بالا | | بایگانی | پیوند سایتی RSS