نمایش نتایج 1 تا 8 از 8

نام تاپیک: اجرای یک برنامه تحت داس

  1. #1
    کاربر دائمی
    تاریخ عضویت
    بهمن 1381
    محل زندگی
    اصفهان - ایران
    پست
    294

    اجرای یک برنامه تحت داس

    سلام
    من می خواهم یک برنامه تحت dos را که دارای پارامترهای ورودی است را در دلفی اجرا کنم. بعد از اتمام کار اولا به برنامه دلفی یک جوری اعلام کند کارش تمام شده و ثانیا خود به خود پس از اجرا بسته شود
    البته با winexec این کار را کرده ام ولی قسمت اول نیازم براورده نشد

  2. #2
    دوست عزیز من دقیقا مشکل شما را متوجه نشدم ولی اینقدر می دانم که برای اجرای فایل در محیط داس باید زمانیکه فرم جدید ایجاد می کنی به جای گزینه Application گزینه Console Application را انتخاب کنی (در قسمت Other) و در این صفحه مثل پاسکال برنامه نویسی کنی
    موفق باشی :flower:

  3. #3
    من می خواهم یک برنامه تحت dos را که دارای پارامترهای ورودی است را در دلفی اجرا کنم.
    چه برنامه ای رو؟

  4. #4
    کاربر دائمی
    تاریخ عضویت
    بهمن 1381
    محل زندگی
    اصفهان - ایران
    پست
    294
    سلام
    برنامه مورد نظر من با این خط فرمان اجرا می شه
    asm51.exe c:\aa.asm
    و
    oh.exe c:\aa.obj
    همان طور که قبلا گفتم می خوام برنامه ام این رو صدا بزنه و بعد از خاتمه اجرای اون برگرده به برنامه اصلی

  5. #5
    بعد از اتمام کار اولا به برنامه دلفی یک جوری اعلام کند کارش تمام شده
    تابع winexec یه خروجی عددی داره٬ که اگه عدد بزرگتر از 31 تولید کنه یعنی تابع با موفقیت عمل مورد نظر رو انجام داده.

  6. #6
    کاربر دائمی آواتار MSK
    تاریخ عضویت
    تیر 1383
    محل زندگی
    فعلا تهران - بعدا خدا می‌دونه!
    پست
    331
    procedure RunAndWaitShell(Executable,parameters:stri  ng ;Visibility:integer); 
    var
    Info:TShellExecuteInfo;
    pInfo:PShellExecuteInfo;
    exitCode:DWord;
    begin
    {Pointer to Info}
    pInfo:=@Info;
    {Fill info}
    with Info do
    begin
    cbSize:=SizeOf(Info);
    fMask:=SEE_MASK_NOCLOSEPROCESS;
    wnd:=application.Handle;
    lpVerb:=nil;
    lpFile:=PChar(Executable);
    {Executable parameters}
    lpParameters:=Pchar(parameters+#0);
    lpDirectory:=nil;
    nShow:=Visibility;
    hInstApp:=0;
    end;
    {Execute}
    ShellExecuteEx(pInfo);

    {Wait to finish}
    repeat
    exitCode := WaitForSingleObject(Info.hProcess,500);
    Application.ProcessMessages;
    until (exitCode <> WAIT_TIMEOUT);
    end;

    سپس در برنامه این را مینویسی:

    RunAndWaitShell( 
    My Program Path,
    'My Parameters,Sw_ShowNormal);

  7. #7
    کاربر دائمی
    تاریخ عضویت
    بهمن 1381
    محل زندگی
    اصفهان - ایران
    پست
    294
    با تشکر از دوستان :gift:
    آیا این زیر برنامه احتیاج به استفاده از unit خاصی نداره؟

  8. #8
    کاربر دائمی
    تاریخ عضویت
    بهمن 1381
    محل زندگی
    Iran
    پست
    123
    باید Shellapi را در قسمت uses اضافه کنید

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •