الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

File Type نوع الملف

مغلق
بدأه micheal R jordan في 2 يونيو 2007 · 6 رد · 731 مشاهدة · في لغة Ms Visual Basic 6 وما قبلها من إصدارات
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ورحمة الله تعالى وبرركاته

أما بعد :

الصورة توضح ماأريد -

FileType.jpg

أريد الحصول على نوع الملف كما في الصورة

مثال

File.html البرنامج يعطي HTML Document

File.txt البرنامج يعطي Text Document

#2

فلنفترض أنك تريد معرفة نوع ملف ذو الامتداد frm

ستقوم بقراءة القيمة الأساسية Default للمفتاح :

HKEY_CLASSES_ROOT\.frm

وستجد أنه يقول لك أن معلومات الملف frm موجودة في المفتاح VisualBasic.Form

وبالتالي تذهب إلي المفتاح :

HKEY_CLASSES_ROOT\VisualBasic.Form

وتقرأ القيمة الأساسية له وستجدها Visual Basic Form File كما هي موضحة في الصورة التي أرفقتها ..

وهكذا مع أي ملف تريد معرفة نوعه ..

#3

ستفيدك هذه المشاركة بالتأكيد لمعرفة كيفية قراءة القيم التي تريدها من الريجستري

/index.php?showtopic=101559

#4

شكرا يا إخوان

رغم أنني أحبذ API أكثر

وفي هذا المثال علي أن أقرأ قيمتين

القيمة الاولى

HKEY_CLASSES_ROOT\.frm

ثم أرسل إلى حيث توجد القيمة التي قرأت

حسنا شكرا ياإخوان

ولكن بما أنني سأستعمل API لقراءة القيمة

لا بد أن توجدAPI لاعطاء FILE TYPE

أليس كذلك

#5

نعم توجد .. لكنها أيضا تعتمد علي سجل النظام لإتيان نوع الملف ..

علي العموم اسمها SHGetFileInfo ..

والمثال التالي من API Guide ..

يتم تعريف بنية SHFILEINFO يتم تمريرها للدالة لإرجاع معلومات الملف بها ..

فقط يتم حجز buffer مناسب ليحمل نوع الملف

szTypeName As String * 80

ومن ثم نقوم بحذف ال Nulls الزائدة في الـ Buffer بعد استدعاء الدالة ..

Const SHGFI_DISPLAYNAME = &H200
Const SHGFI_TYPENAME = &H400
Const MAX_PATH = 260
Private Type SHFILEINFO
	hIcon As Long					  '  out: icon
	iIcon As Long		  '  out: icon index
	dwAttributes As Long			   '  out: SFGAO_ flags
	szDisplayName As String * MAX_PATH '  out: display name (or path)
	szTypeName As String * 80		 '  out: type name
End Type
Private Declare Function SHGetFileInfo Lib "shell32.dll" Alias "SHGetFileInfoA" (ByVal pszPath As String, ByVal dwFileAttributes As Long, psfi As SHFILEINFO, ByVal cbFileInfo As Long, ByVal uFlags As Long) As Long
Private Sub Form_Paint()
	'KPD-Team 1999
	'URL: http://www.allapi.net/
	'E-Mail: KPDTeam@Allapi.net
	Dim FI As SHFILEINFO
	'Get file info
	SHGetFileInfo "c:\autoexec.bat", 0, FI, Len(FI), SHGFI_DISPLAYNAME Or SHGFI_TYPENAME
	Me.Cls
	Me.Print "Filename: Autoexec.bat"
	Me.Print "Typename: " + StripTerminator(FI.szTypeName)
	Me.Print "Displayname: " + StripTerminator(FI.szDisplayName)
End Sub
'This fucntion is used to strip al the unnecessary chr$(0)'s
Function StripTerminator(sInput As String) As String
	Dim ZeroPos As Integer
	'Search the position of the first chr$(0)
	ZeroPos = InStr(1, sInput, vbNullChar)
	If ZeroPos > 0 Then
		StripTerminator = Left$(sInput, ZeroPos - 1)
	Else
		StripTerminator = sInput
	End If
End Function
#6

نعم أخي شكرا جزيلا

ولقد وجدت مثالا في الموقع الرائع بخصوص API In VB

vbnet.mvps.org

موقع جيد جدا

شكرا يا إخوان

هذا الموضوع مغلق.

مواضيع مشابهة