تبلیغات :
ماهان سرور
آکوستیک ، فوم شانه تخم مرغی ، پنل صداگیر ، یونولیت
دستگاه جوجه کشی حرفه ای
فروش آنلاین لباس کودک
خرید فالوور ایرانی
خرید فالوور اینستاگرام
خرید ممبر تلگرام

[ + افزودن آگهی متنی جدید ]




صفحه 2 از 2 اولاول 12
نمايش نتايج 11 به 12 از 12

نام تاپيک: اجرای برنامه از Run

  1. #11
    داره خودمونی میشه
    تاريخ عضويت
    Jul 2007
    پست ها
    36

    پيش فرض

    یه روش به صورت زیر است:

    یک پیام اختصاصی ایجاد کرده در این صورت در هنگام اجرای برنامه تان چهار حالت وجود خواهد داشت:
    1- برنامه تان برای اولین بار اجرا شده است بدون پارامتر ورودی که در این صورت نیازی به کاری نیست.
    2- برنامه تان برای اولین بار اجرا شده است ولی با پارامتر ورودی ای مانند show که در این حالت یک پیام به خود برنامه( ...SendMessage(TMainForm.Handle) ارسال شده و کار مورد نظر شما در روال پاسخ گویی به رویداد پیام می بایست آورده شود.
    3- برنامه تان قبلا اجرا شده و دوباره برنامه را بدون پارامتر ورودی اجرا شده که در این صورت فقط برنامه دوم می بایست Terminate شود.
    4- برنامه تان قبلا اجرا شده و دوباره برنامه را با پارامتر ورودی اجرا شده که در این صورت ابتدا یک پیام ارسال شده و سپس بلافاصله برنامه دوم که برنامه جاری باشد Terminate کرده و پیام به نسخه اول برنامه که در حافظه است تحویل خواهد شد که در این حالت دقیقا مانند حالت 2 به رویداد پیام پاسخ گویی می شود.


    const
    MY_MESSAGE = WM_USER + 4242;

    type
    TMainForm = class(TForm)
    procedure MessageReceiver(var msg: TMessage); message MY_MESSAGE;



    procedure TMainForm.FormCreate(Sender: TObject);
    begin
    if ParamStr(1)='show' then
    begin
    SendMessage(TMainForm.Handle, MY_MESSAGE, 0, DWORD(PChar('show')));
    if ProgramIsRunning then Application.Terminate;
    end;
    end;
    end;

    procedure TMainForm.MessageReceiver(var msg: TMessage);
    var
    txt: PChar;
    begin
    txt := PChar(msg.lParam);
    msg.Result := 1;
    if txt='show' then
    DoAnyThingThatYouWant;
    end;

  2. #12
    اگه نباشه جاش خالی می مونه MAR_Programmer's Avatar
    تاريخ عضويت
    Feb 2006
    محل سكونت
    Ubuntu Desktop
    پست ها
    253

    پيش فرض

    یه روش به صورت زیر است:

    یک پیام اختصاصی ایجاد کرده در این صورت در هنگام اجرای برنامه تان چهار حالت وجود خواهد داشت:
    1- برنامه تان برای اولین بار اجرا شده است بدون پارامتر ورودی که در این صورت نیازی به کاری نیست.
    2- برنامه تان برای اولین بار اجرا شده است ولی با پارامتر ورودی ای مانند show که در این حالت یک پیام به خود برنامه( ...SendMessage(TMainForm.Handle) ارسال شده و کار مورد نظر شما در روال پاسخ گویی به رویداد پیام می بایست آورده شود.
    3- برنامه تان قبلا اجرا شده و دوباره برنامه را بدون پارامتر ورودی اجرا شده که در این صورت فقط برنامه دوم می بایست Terminate شود.
    4- برنامه تان قبلا اجرا شده و دوباره برنامه را با پارامتر ورودی اجرا شده که در این صورت ابتدا یک پیام ارسال شده و سپس بلافاصله برنامه دوم که برنامه جاری باشد Terminate کرده و پیام به نسخه اول برنامه که در حافظه است تحویل خواهد شد که در این حالت دقیقا مانند حالت 2 به رویداد پیام پاسخ گویی می شود.


    const
    MY_MESSAGE = WM_USER + 4242;

    type
    TMainForm = class(TForm)
    procedure MessageReceiver(var msg: TMessage); message MY_MESSAGE;



    procedure TMainForm.FormCreate(Sender: TObject);
    begin
    if ParamStr(1)='show' then
    begin
    SendMessage(TMainForm.Handle, MY_MESSAGE, 0, DWORD(PChar('show')));
    if ProgramIsRunning then Application.Terminate;
    end;
    end;
    end;

    procedure TMainForm.MessageReceiver(var msg: TMessage);
    var
    txt: PChar;
    begin
    txt := PChar(msg.lParam);
    msg.Result := 1;
    if txt='show' then
    DoAnyThingThatYouWant;
    end;
    سلام بازم هم همون مشکل اجرا از یه جایی توی سیستم - مثلا Run - رو دارم اگر هم برنامه قرار باشه به کلید های فشرده شده حساس باشه - با کدی که من نوشتم - برنامه یه Keyloger به حساب میاد و آنتی ویروسم به اون گیر میده حالا چه کار کنم؟؟؟؟

صفحه 2 از 2 اولاول 12

Thread Information

Users Browsing this Thread

هم اکنون 1 کاربر در حال مشاهده این تاپیک میباشد. (0 کاربر عضو شده و 1 مهمان)

User Tag List

قوانين ايجاد تاپيک در انجمن

  • شما نمی توانید تاپیک ایحاد کنید
  • شما نمی توانید پاسخی ارسال کنید
  • شما نمی توانید فایل پیوست کنید
  • شما نمی توانید پاسخ خود را ویرایش کنید
  •