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

نام تاپیک: دریافت خروجی یک فایل اجرایی در دلفی

  1. #1

    دریافت خروجی یک فایل اجرایی در دلفی

    سلام
    من یک فایل اجرایی در فاکس پرو نوشتم که خروجی آن یک رشته 10 حرفی می باشد. چطور میتوانم فایل مورد نظر را در دلفی فراخوانی کنم و رشته خروجی آن را مورد استفاده قرار دهم. لطفا راهنمایی فرمایید.

  2. #2
    کاربر دائمی آواتار golbafan
    تاریخ عضویت
    اردیبهشت 1388
    محل زندگی
    در قلب دوستان
    پست
    2,018

    نقل قول: دریافت خروجی یک فایل اجرایی در دلفی

    رشته رو میتونید به سه روش کلی در دلفی فراخوانی کنید
    خواندن از حافظه، خواندن از فایل و استفاده از پایپ

    برای خواندن از حافظه لازمه بتونید از مسیج استفاده کنید و خروجی رو با فاکسپرو بصورت مسیج به ویندوز بدید و دائما مسیجهای ویندوز رو در دلفی مانیتور کنید
    خواندن از فایل راحتتره اما با سرعت کمتری انجام میشه

    یک راه دیگه که در نسخه های بالاتر انجام میشه استفاده از pipe هست:


    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;
    آخرین ویرایش به وسیله golbafan : پنج شنبه 30 بهمن 1393 در 10:14 صبح

  3. #3

    نقل قول: دریافت خروجی یک فایل اجرایی در دلفی

    رشته رو میتونید به سه روش در دلفی فراخوانی کنید
    روشها بیشتر از سه تاست. مثلا استفاده از حافظه اشتراکی، استفاده از جدول اتم ها، استفاده از سوکت، استفاده از رجیستری، استفاده از سرویس های وب، استفاده از خروجی بصورت export یک تابع، نوشتن روی عناصر برنامه میزبان، تجاوز به منطقه حافظه برنامه میزبان، و روشهای بسیار دیگه.

    برای خواندن از حافظه لازمه بتونید از مسیج استفاده کنید
    این روش اسمش ارسال مسیج هست نه خواندن از حافظه.

    دائما مسیجهای ویندوز رو در دلفی مانیتور کنید
    دائما لازم نیست، کافیه به هندل برنامه مقصد پیام ارسال بشه، و اونجا براش رویدادی نوشته بشه.
    همچنین می شه پیام رو به تمام برنامه های سیستم BroadCast کرد.

    دکتر شریعتی در یکی از سخنرانی هاش می گه:
    سخنور خوب میگه روشهای فلان کار اینهاست، و اونها رو تا جایی که بلده می شمره، و اگر چیزی یادش رفت یا از قلم افتاد، به کسی برنمی خوره.
    سخنور بد میگه روشهای فلان کار این 5 تاست (مثلا) و با این کار متعهد می شه 5 مورد رو شرح بده. حالا اگر موردی یادش بره یا بفهمه تعداد روشها 5 تا نبوده، خودش رو زیر سوال برده.

    توابع تبدیل تاریخ با دقت 5000 سال
    پذیرش پروژه، کامپوننت، آموزش برنامه نویسی (دلفی، اس کیو ال، ..) -> 09123780840
    پایگاه داده، تیونینگ، طراحی و پیاده سازی ..

  4. #4
    کاربر دائمی آواتار golbafan
    تاریخ عضویت
    اردیبهشت 1388
    محل زندگی
    در قلب دوستان
    پست
    2,018

    نقل قول: دریافت خروجی یک فایل اجرایی در دلفی

    نقل قول نوشته شده توسط You-See مشاهده تاپیک
    روشها بیشتر از سه تاست. مثلا استفاده از حافظه اشتراکی، استفاده از جدول اتم ها، استفاده از سوکت، استفاده از رجیستری، استفاده از سرویس های وب، استفاده از خروجی بصورت export یک تابع، نوشتن روی عناصر برنامه میزبان، تجاوز به منطقه حافظه برنامه میزبان، و روشهای بسیار دیگه.


    این روش اسمش ارسال مسیج هست نه خواندن از حافظه.


    دائما لازم نیست، کافیه به هندل برنامه مقصد پیام ارسال بشه، و اونجا براش رویدادی نوشته بشه.
    همچنین می شه پیام رو به تمام برنامه های سیستم BroadCast کرد.

    دکتر شریعتی در یکی از سخنرانی هاش می گه:
    سخنور خوب میگه روشهای فلان کار اینهاست، و اونها رو تا جایی که بلده می شمره، و اگر چیزی یادش رفت یا از قلم افتاد، به کسی برنمی خوره.
    سخنور بد میگه روشهای فلان کار این 5 تاست (مثلا) و با این کار متعهد می شه 5 مورد رو شرح بده. حالا اگر موردی یادش بره یا بفهمه تعداد روشها 5 تا نبوده، خودش رو زیر سوال برده.

    سلام دوست عزیز
    روشهایی که فرمودید در همین سه روش کلی که عرض کردم گنجونده میشه
    مثلا: استفاده از حافظه اشتراکی و جاوز به منطقه حافظه برنامه میزبان و استفاده از خروجی بصورت export یک تابع => خواندن از حافظه
    یا مثلا استفاده از رجیستری در حوزه خواندن از فایل قرار میگیره
    و مثلا استفاده از وب سرویس و سوکت در حوزه مسیج و پایپ قرار داره
    در ضمن سوال ایشون رو هم مد نظر قرار بدید و بجای جواب دادن به جواب من به سوال ایشون جواب بدید و مشکلش رو حل کنید

  5. #5

    نقل قول: دریافت خروجی یک فایل اجرایی در دلفی

    در ضمن سوال ایشون رو هم مد نظر قرار بدید و بجای جواب دادن به جواب من به سوال ایشون جواب بدید و مشکلش رو حل کنید
    راهنمایی اشتباه یا نیمه کاره درست نیست و باید اصلاح بشه.
    وب سرویس در حوزه مسیج هست؟ یا پایپ؟ عجب!
    یکی از راههایی که می شد جواب داد، جواب شما بود. دلیل این که من بیشتر توضیح ندادم این بود که ببینم روش شما کار دوستمون رو راه می ندازه یا نه.
    ایشون در صورت تست کردن روش شما و عدم گرفتن نتیجه درصورت مطرح کردن در همینجا، پاسخ های بیشتری خواهد گرفت.
    سرنخ هایی که برشمردم هم در صورت یک جستجوی ساده معمولا به نتیجه می رسه.

    امیدوارم این تاپیک هم به حاشیه کشیده نشه.
    موفق باشید.
    آخرین ویرایش به وسیله یوسف زالی : شنبه 02 اسفند 1393 در 10:45 صبح
    توابع تبدیل تاریخ با دقت 5000 سال
    پذیرش پروژه، کامپوننت، آموزش برنامه نویسی (دلفی، اس کیو ال، ..) -> 09123780840
    پایگاه داده، تیونینگ، طراحی و پیاده سازی ..

تاپیک های مشابه

  1. اجرای فایل اجرایی در دلفی
    نوشته شده توسط meysam_212 در بخش مباحث عمومی دلفی و پاسکال
    پاسخ: 10
    آخرین پست: جمعه 02 آبان 1393, 19:47 عصر
  2. نحوه گرفتن خروجی یک فایل Batch در دلفی
    نوشته شده توسط yassabz در بخش مباحث عمومی دلفی و پاسکال
    پاسخ: 20
    آخرین پست: یک شنبه 20 اسفند 1391, 10:22 صبح
  3. ارسال متغیر به فایل اجرایی و دریافت خروجی
    نوشته شده توسط srahimii در بخش PHP
    پاسخ: 0
    آخرین پست: پنج شنبه 16 شهریور 1391, 08:16 صبح
  4. حرفه ای: مشکل با گرفتن خروجی از فایل اجرایی
    نوشته شده توسط mohsen-unique در بخش C#‎‎
    پاسخ: 0
    آخرین پست: شنبه 28 فروردین 1389, 18:41 عصر
  5. خروجی دادن فایل اجرایی
    نوشته شده توسط farhad_ice در بخش برنامه نویسی در 6 VB
    پاسخ: 2
    آخرین پست: سه شنبه 26 آبان 1383, 00:44 صبح

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

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