منظورم تمامي فايل هايي است كه ممكن است توسط برنامه هاي ديگر باز شده باشد كه اين فايل ميتوان هر نوع فايلي باشد jpg يا txt و يا ... (به همراه مسير فايلها)
در ضمن چگونه مي توان اين فايلها را بست؟
با تشكر فراوان ....
منظورم تمامي فايل هايي است كه ممكن است توسط برنامه هاي ديگر باز شده باشد كه اين فايل ميتوان هر نوع فايلي باشد jpg يا txt و يا ... (به همراه مسير فايلها)
در ضمن چگونه مي توان اين فايلها را بست؟
با تشكر فراوان ....
خب ساده ترين راه اينه كه فايلها را پيدا كرده و با استفاده از كلاس TFileStream آنها را باز كنيد كه در صورت error فايل توسط ساير برنامه ها باز شده است.
ولي بطور كلي نحوه باز شدن فايلها به نرم افزاري بستگي دارد كه فايل را باز كرده است يعني ممكن هست فايل را بصورت اشتراكي باز نموده باشد كه در اينصورت روش فوق كار ساز نخواهد بود.
ولي در مورد اينكه چگونه ميتوان فايل را بست همانطور كه شما هم ميدانيد براي هر فايل به هنگام باز شدن شماره واحد بنام handle تعلق ميگيرد كه شما در صورت پيدا نمودن اين هندل ميتوانيد آنرا با استفاده از توابع مربوط به فايل ببنديد.
با استفاده از تابع NtQuerySystemInformation می تونید لیست هندل های باز را بدست بیارید. با استفاده از تابع NtQueryObject هم می تونید اسم شی را بر اساس هندل داده شده به دست بیارید. برای اطلاعات بیشتر:
http://www.codeproject.com/KB/shell/...ileFinder.aspx
http://forum.sysinternals.com/forum_posts.asp?TID=14268
آخرین ویرایش به وسیله vcldeveloper : یک شنبه 01 آذر 1388 در 13:01 عصر
وَ سَيَعْلَمُ الَّذِينَ ظَلَمُوا [آل محمد حقهم] أَيَّ مُنْقَلَبٍ يَنْقَلِبُونَ - الشعراء (227)
و ظالمین [حق آل محمد (ص) ] به زودی خواهند دانست که به کدام بازگشتگاه بازخواهند گشت.