PDA

View Full Version : سوال در مورد بدست آوردن مسير يك برنامه تحت داس اجرا شده در ويندوز ؟



BORHAN TEC
شنبه 30 آبان 1388, 23:23 عصر
من موقعي كه مي خواستم يك برنامه تحت داس را در ويندوز اجرا كنم و قصد داشتم از طريق توابع مربوط به يونيت TlHelp32 (از طريق پروسس برنامه) مسير آن پروسه را بدست آورم متوجه شدم كه به جاي آن برنامه تحت داس فايل ntvdm.exe در ليست برنامه ها قرار مي گيرد براي حل اين مشكل چه بايد بكنم.
در ضمن من نمي خواهم از روي متن نوشته شده روي نوار عنوان اين كار را انجام دهم چون مشكل من فقط با برنامه هاي تحت داس است و احساس مي كنم با انجام اين كار كاملاً ساختار برنامه ام به هم بريزد....

با تشكر بسيار بسيار فراوان.... :لبخند:

vcldeveloper
یک شنبه 01 آذر 1388, 03:56 صبح
ntvdm.exe ماشین مجازی هست که برنامه 16-بیتی را در ویندوز اجرا میکنه. برای اینکه لیست برنامه های 16-بیتی در حال اجرا را بدست بیارید، باید ابتدا با استفاده از VDMEnumProcessWOW لیست ماشین های مجازی در حال اجرا برای برنامه های 16-بیتی را بدست بیارید. سپس با استفاده از تابع VDMEnumTaskWOWEx لیست برنامه های 16-بیتی در حال اجرا در هر ماشین مجازی را بدست بیارید. یک نمونه مثال برای آن با ++C در MSDN موجود هست:
http://msdn.microsoft.com/en-us/library/bb963830%28VS.85%29.aspx