PDA

View Full Version : سوال: یافت نشدن فایل های سیستمی در Win7 64bit



محسن واژدی
سه شنبه 01 شهریور 1390, 13:43 عصر
سلام علیکم
نمیدونم دوستان شما هم با مشکلی مشابه مشکل بنده مواجه شده اید یاخیر

بنده توسط API ی PathFileExists موجودیت winlogon.exe و lsass.exe و چند سیستمی را در ویندوز سون 64bit بررسی میکنم اما همیشه مقدار برگشتی صفر خواهد بود یعنی: فایل یافت نشد!!
این موضوع را توسط Dir و Open هم به شیوه های مختلف چک کرده ام اما در هربار به همین جواب میرسم

البته PathFileExists همیشه اینگونه جواب نمیدهد فقط در مورد این فایل های سیستمی اینگونه است، در ویندوز های 32bit مشکلی ندارد فقط در 64bit به این مشکل برمیخورم

حدسهایی که خودم زده ام:
- ممکن است این تابع در نسخه 64bit کاملا" پشتیبانی نمی شود (که فکر نکنم اینگونه باشد)
- ممکن است این بدلیل محافظت اولیه ای که از درایو سیستم میشود باشد، این را هنوز بررسی نکرده ام
- ممکن است چون اینها یک پروسه حساس هستند ویندوز اینگونه رفتار میکند
- ویا شاید هم چون وی بی 32bit است به این مشکل برخورد کرده است! (بیشترین شکم روی همین است)

دوستان کسی راه حلی برای حل این مشکل ندارد؟

موفق باشید

setroyd
سه شنبه 01 شهریور 1390, 14:39 عصر
خوب توابع دیگه رو امتحان کن در همین باره !!!

setroyd
سه شنبه 01 شهریور 1390, 14:44 عصر
Private Declare Function SHFileExists Lib "shell32" Alias "#45" (ByVal szPath As String) As Long

Private Sub Form_Load()
Text1.Text = SHFileExists("C:\Windows\regedit.exe")
Text2.Text = SHFileExists("c:\windows")
End Sub

setroyd
سه شنبه 01 شهریور 1390, 14:54 عصر
Private Sub Command1_Click()
Set fso = CreateObject("scripting.filesystemobject")
If fso.fileexists("c:\windows\regedit.exe") Then MsgBox "file hast" Else MsgBox "file nist"
End Sub
این فکنم حتما جواب بده چون اون بالایی ها رو ویندوز 7 32 بیت منم جواب نداد !!!

محسن واژدی
سه شنبه 01 شهریور 1390, 15:50 عصر
سلام علیکم
ممنون، متاسفانه جواب نمیدهند

احتمالا" این مشکل بدلیل 32bit بودن vb6 است
البته برای regedit,notepad و نظیر اینها مشکلی ندارد اما برای پروسه هایی که قبلا" ذکر شد اینگونه است

IamOverlord
سه شنبه 01 شهریور 1390, 16:17 عصر
شاید مشکل از سطح دسترسی شما باشه، Run as administrator رو بزن ...

محسن واژدی
سه شنبه 01 شهریور 1390, 16:49 عصر
دسترس admin دارم اما با اینکه winlogon.exe جلوی چشمم است، دارم میبینمش PathFileExists میگه نه اشتباه میکنی، نیست!!!

arenaw
سه شنبه 01 شهریور 1390, 17:44 عصر
اول اون فایل winlogon رو takeown کن. اینجوری: (داخل cmd)
takeown /f "C:\Windows\System32\winlogon.exei"

icacls "C:\Windows\System32\winlogon.exe" /grant UserName:F

بعد یک بار دیگه امتحان کنید اگه درست شد :
- ممکن است چون اینها یک پروسه حساس هستند ویندوز اینگونه رفتار میکند

محسن واژدی
سه شنبه 01 شهریور 1390, 18:55 عصر
متاسفانه همان پاسخ قبل را میدهد (فایل یافت نشد)

میگم دوستان شاید بدلیل وی بی bit-32 و win7 64-bit است این اتفاق افتاده است

دوستان در این موضوع نظری ندارید؟

IamOverlord
سه شنبه 01 شهریور 1390, 21:20 عصر
فکر نمی کنم منطقی باشه، در واقع دلیلی نداره که این طور بشه، برنامه برنامه است، فایل فایل.

m2011kh
سه شنبه 01 شهریور 1390, 21:48 عصر
- ممکن است چون اینها یک پروسه حساس هستند ویندوز اینگونه رفتار میکند

IamOverlord
سه شنبه 01 شهریور 1390, 21:53 عصر
- ممکن است چون اینها یک پروسه حساس هستند ویندوز اینگونه رفتار میکند

در این صورت Windows باید از لحاظ امنیتی خیلی احمق باشه (که هست!:لبخند:). چون اون Process ککش هم نمی گزه که مثلا بفهمی اون جا فایلش هست یا نه، مهم جلوگیری از دستورات مخربه.

arenaw
سه شنبه 01 شهریور 1390, 22:20 عصر
داخل cmd هم میگه path not found???????????????

setroyd
چهارشنبه 02 شهریور 1390, 03:42 صبح
این میتونه یه bug باشه از طرف ماکروسافت که شاید در سرویس پکهای اینده اش درست شود !

محسن واژدی
چهارشنبه 02 شهریور 1390, 12:20 عصر
خودم به این نتیجه رسیده ام که این مشکل بدلیل 32-bit بودن وی بی روی داده است در واقع مشکل از ویندوز نیست از وی بی است، چون هیچ یک از توابع وی بی و (API هایی که به نحوی با winlogon کار میکنند) با این فایل ارتباط نمیگیرند
به عنوان مثال چه با ShellExecute و چه با Shell وی بی سعی در اجرای این فایل میکنیم (البته جنبه تست) مجددا خطای file not found ظاهر میشود

داخل cmd هم میگه path not found???????????????
با ویندوز هیچ مشکلی ندارد، چون همین مسیر winlogon را اگر در Run یا address-bar کپی کنیم بدون هیچ مشکلی اجرا خواهد شد، همچنین با برخی برنامه های explorer تست کردم هیچ مشکلی با این فایل نداشتند

محسن واژدی
چهارشنبه 02 شهریور 1390, 12:48 عصر
فکر نمی کنم منطقی باشه، در واقع دلیلی نداره که این طور بشه، برنامه برنامه است، فایل فایل.


من هم با شما هم عقیده هستم؛ اما تصویر زیر را ببینین
یا اینکه winlogon وجود دارد اما در وی بی یافت نمیشود (البته با سایر فایل های ویندوزی مشکلی ندارد فقط با این چند پروسه سیستمی که در حال اجرا هستند مشکل دارد