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

نام تاپیک: چگونه متوجه شویم که برنامه ما از طریق یک برنامه دیگر باز میشه یا روش دابل کلیک شده

  1. #1

    چگونه متوجه شویم که برنامه ما از طریق یک برنامه دیگر باز میشه یا روش دابل کلیک شده

    آیا راهی هست که متوجه شویم به صورت مستقیم برنامه مارو باز میکنن(دابل کلیک روی فایل برنامه یا کلیک راست و اپن) یا اینکه بوسیله یه برنامه دیگه داره باز میشه(تقریبا شبیه نرم افزار های مانیتورینگ)

  2. #2

    نقل قول: چگونه متوجه شویم که برنامه ما از طریق یک برنامه دیگر باز میشه یا روش دابل کلیک شده

    سلام
    دلفی هنوز زیاد کار نکردم . Get Parrent proccess ID رو سرچ کن . موردای زیادی در سی شارپ و وی بی پیدا میشه که احتمالا میشه ازشون استفاده کرد برای این کار .
    یه راه دیگه هم که ساده تره اگر قراره خودت برنامت رو از داخل یه برنامه دیگه اجرا کنی اینه که با چند تا کامند commmand برنامت رو اجرا کنی و وقتی برنامه اجرا شد چک کنه اگر با کامند بود یعنی از داخل برنامت اجرا شده و اگر بدون اون یعنی روش دبل کلیک شده .

  3. #3

    نقل قول: چگونه متوجه شویم که برنامه ما از طریق یک برنامه دیگر باز میشه یا روش دابل کلیک شده

    نقل قول نوشته شده توسط MEhdi Sobhani مشاهده تاپیک
    سلام
    دلفی هنوز زیاد کار نکردم . Get Parrent proccess ID رو سرچ کن . موردای زیادی در سی شارپ و وی بی پیدا میشه که احتمالا میشه ازشون استفاده کرد برای این کار .
    یه راه دیگه هم که ساده تره اگر قراره خودت برنامت رو از داخل یه برنامه دیگه اجرا کنی اینه که با چند تا کامند commmand برنامت رو اجرا کنی و وقتی برنامه اجرا شد چک کنه اگر با کامند بود یعنی از داخل برنامت اجرا شده و اگر بدون اون یعنی روش دبل کلیک شده .
    ممنون از پاسختون

    هدفم از اینکار اینه که دیگر برنامه ها نتونن برنامه منو اجرا کنن
    و فقط با دابل کلیک امکانش باشه

  4. #4

    نقل قول: چگونه متوجه شویم که برنامه ما از طریق یک برنامه دیگر باز میشه یا روش دابل کلیک شده

    هدفم از اینکار اینه که دیگر برنامه ها نتونن برنامه منو اجرا کنن
    و فقط با دابل کلیک امکانش باشه
    حالا هدفتون از این اجرا نشدن چی هست؟! خب شاید یک کاربری از یک File Manager دیگه به جز Windows Explorer خواست استفاده کنه؟ یا یکی خواست از طریق command line برنامه شما را اجرا کنه؛ اونها چیکار کنند؟!

    در هر حال، اگر میخواید در صورت اجرا شدن برنامه تون خارج از شرایط مد نظر شما، برنامه بسته بشه، براش یک command line parameter خاص در نظر بگیرید، و در برنامه خودتون هر وقت که میخواید اون برنامه رو اجرا کنید، اون پارامتر را هم بهش پاس کنید، تا معلوم بشه شما دارید اجراش می کنید. برنامه شما می تونه در هنگام اجرا چک کنه، که آیا پارامتر مورد نظر بهش ارسال شده یا نه، اگر نه، خودش را ببنده.

    اگر هم اصرار دارید که بدونید چه پروسه ایی برنامه شما را اجرا کرده، کامپوننت ProcessInfo را دانلود و نصب کنید، و یک نمونه از ProcessInfo را بر روی فرم تان بیاندازید، و با کدی مثل کد زیر، پروسه ایی که برنامه شما را اجرا کرده، مشخص کنید:

    var
    ParentProcessID : Cardinal;
    ParentProcess : TProcessItem;
    begin
    ParentProcessID := ProcessInfo1.RunningProcesses.FindByID(GetCurrentP rocessId).ParentProcessID;
    ParentProcess := ProcessInfo1.RunningProcesses.FindByID(ParentProce ssID);
    if Assigned(ParentProcess) then
    ShowMessage(ParentProcess.ExeFile);
    end;


    وَ سَيَعْلَمُ الَّذِينَ ظَلَمُوا [آل محمد حقهم] أَيَّ مُنْقَلَبٍ يَنْقَلِبُونَ - الشعراء (227)
    و ظالمین [حق آل محمد (ص) ] به زودی خواهند دانست که به کدام بازگشتگاه بازخواهند گشت.

  5. #5

    نقل قول: چگونه متوجه شویم که برنامه ما از طریق یک برنامه دیگر باز میشه یا روش دابل کلیک شده

    با تشکر از شما
    میخواستم یک راه واسه جلوگیری از اجرای برنامه توسط نرنامه های مانیتورینگ داشته باشم

  6. #6

    نقل قول: چگونه متوجه شویم که برنامه ما از طریق یک برنامه دیگر باز میشه یا روش دابل کلیک شده

    سلام
    ببین شاید این راه هم به دردت بخوره
    جایی توی برنامت از GetStartupInfo استفاده کن و بعد از فراخوانی اون مقدار dwFlags ساختاری که به عنوان پارامتر به تابع دادی رو بررسی کن

  7. #7

    نقل قول: چگونه متوجه شویم که برنامه ما از طریق یک برنامه دیگر باز میشه یا روش دابل کلیک شده

    var
    SI: TStartupInfo;
    begin
    GetStartupInfo(SI);
    if SI.dwFlags<> 1025 then
    Application.Terminate;
    end;

برچسب های این تاپیک

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

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