سلام.
وقتی یه پروسه end process tree بشه همه برنامه هایی که قبلا باز کرده بوده هم همراهش بسته میشن. این قضیه در مورد cmd هم صادقه. حالا اگه قبل از end process tree شدن اون برنامه اول خودش به یه صورت دیگه بسته شه دیگه برنامه هایی که باز کرده بود بسته نمیشن.
من تو این برنامه اومدم یه پروژه ساختم که هر کامندی بهش بدی به عنوان آدرس فایل اجرایی میگیره و به عنوان پارامتر برای ای پی ای ShellExecute در نظر میگیره. این پروژه رو کامپایل کردم و به صورت ریسورس قرار دادم تو پروژه main که آدرس فایل رو از ما میگیره.
وقتی شما رو run کلیک میکنی اون فایلی که ریسورس شده بود اکسترکت میشه کنار برنامه. به همراه متن تکس باکس که به عنوان کامند براش ارسال میشه اجرا میشه. فایل ریسورس بعد از اجرا کار خودش رو که اجرای کامندی که براش ارسال شده هست رو انجام میده و بلافاصله بسته میشه تا end process tree نشه.
چون رجیستری رو برنامه داخل ریسورسمون اجرا کرده نه برنامه اصلیمون که مشاهده میکنیم با end process tree شدن برنامه ما رجیستری بسته نمیشه. برنامه ریسورس هم که رجیستری رو اجرا کرده بود خودش بسته میشه تا کسی نتونه end process tree بکنتش.