دخول
×

حسابٌ واحد لجميع خدماتنا !





إنشاء حساب
نقطة التطوير - dev-point.com







قسم فيجوال بيسك 6 و ما قبله للدروس و الشروحات الخاصه بـ Visual Basic 6 وما قبله . . .

 تم تحميل الصفحة في 0,3531107 ثانية
!  قم بقراءة قوانين الموقع قبل اضافة رد , اضغط هنا

LinkBack أدوات الموضوع انواع عرض الموضوع

  #1
صبري2010
ExpErt DeveloPer
 
الصورة الرمزية صبري2010
 
   تاريخ التسجيل: 8 - 5 - 2009
   رقم العضوية : 75999
   العمر : 24
   المشاركات : 1,430
   بمعدل : 0.73 يوميا
   عدد النقاط : 8230
   ProgramerSapry


صبري2010 has a reputation beyond reputeصبري2010 has a reputation beyond reputeصبري2010 has a reputation beyond reputeصبري2010 has a reputation beyond reputeصبري2010 has a reputation beyond reputeصبري2010 has a reputation beyond reputeصبري2010 has a reputation beyond reputeصبري2010 has a reputation beyond reputeصبري2010 has a reputation beyond reputeصبري2010 has a reputation beyond reputeصبري2010 has a reputation beyond repute

صبري2010 غير متواجد حالياً




Icon3 تشغيل الملفات والتطبيقات عن طريق الفيجوال بيسك قديم اضيفت بتاريخ 25-May-2009, 12:55 AM بواسطة WEB

بسم الله الرحمن الرحيم


أولا: الملفات التنفيذية

الدالة s h e l l****l
الدالة ****l هي الدالة التي توفرها لغة فيجوال بيسك لتشغيل التطبيقات.
الصيغة العامة



Code

كود:
****l(pathname[,windowstyle])
القيمة التي تعيدها الدالة:
صفر في حالة عدم نجاح المهمة و ProcessId (معرف العملية) في حالة النجاح.
وسيطات الدالة:
PathName : مسار الملف التنفيذي(التطبيق) المراد تشغيله.
WindowStyle: طريقة عرض النافذة الاساية للبرنامج.وياخذ هذا الوسيط عدد من الثوابت

Code

كود:
Dim Ret&
Ret = ****l("notepad.exe", 1)
'واذا كانت القيمة المعادة ليست ذات قيمة لتطبيقك
'فيكفي ان تكتب
****l "notepad.exe", 1


الدالة WinExec
تشبه الدالة السابقة تماما

التصريح للدالة

Code

كود:
Declare Function WinExec& Lib "kernel32" (ByVal _
lpCmdLine As String, ByVal nCmdShow As Long
مثال

Code

Private Sub Command1_Click()
Dim Ret&
Ret = WinExec("Notepad.exe c:Test.txt", vbMaximizedFocus)
End Sub


الدالة CreateProcess
التنفيذية.. ومن الجدير بالذكر هنا أن نقول أن هذه الدالة هي الأصل في جميع الدوال السابقة حيث أن جميع الدوال تعتمد عليها عند انشاء العملية

التصريح للدالة

Code
كود:
 
Declare Function CreateProcess Lib "kernel32" Alias _
"CreateProcessA" (ByVal lpApplicationName As String, _
ByVal lpCommandLine As String, lpProcessAttributes _
As SECURITY_ATTRIBUTES, lpThreadAttributes As _
SECURITY_ATTRIBUTES, ByVal bInheritHandles As _
Long, ByVal dwCreationFlags As Long, lpEnvironment _
As Any, ByVal lpCurrentDriectory As String, _
lpStartupInfo As STARTUPINFO, lpProcessInformation _
As PROCESS_INFORMATION) As Long
ثانيا: كيفية تشغيل الملفات الأخرى


لا يمكن تشغيل الملفات المرتبطة ببرامج معينه من خلال الدالتين ****l وWinExec مباشرة ولكن يجب علينا تمرير البرنامج المشغل قبل تمرير اسم الملف التشغيلي مثلا لنفترض إننا نريد تشغيل الملف النصي Test.txt والموجود على المجلد الجذري فإننا حينها نقوم نقوم بتمرير البرنامج المشغل وليكن في هذه الحالة notepad فإننا نكتب الكود كالتالي..

ولعلك تتساءل ألا توجد طريقة للحصول على البرنامج المشغل فالجواب هو نعم .. ولو فكرت سريعا ستجد أو فكرة تخطر على بالك هي استخدام مسجل النظام(الريجيستري) وهذه الطريقة ممتازة وسوف نعتمد على الدالة RegQueryValueEx لقراءة القيمة ورغم ان هذه الطريقة مفيدة وفعالة إلا أنها تعتبر طويلة وتتطلب كتابة إجرائية طويلة للوصول إلى المطلوب.. وهنا يتجلى الحل الآخر من خلال دالة API المسماة FindExecutable
ولنتوقف قليلا عند هذه الدالة لنقوم بشرح جوانبها لارتباطها بالموضوع..
الوظيفة:
إيجاد البرنامج المشغل لملف معين

التصريح للدالة
Code

كود:
Declare Function FindExecutable Lib "****l32.dll" Alias _
"FindExecutableA" (ByVal lpFile As String, ByVal _
lpDirectory As String, ByVal lpResult As String) _
As Long


لائحة الوسيطات:
lpFile : اسم الملف المراد تشغيله.
lpDirectory : مسار الملف السابق.
lpResult : متغير لتخزين مسار البرنامج المشغل.
والآن سنقوم بعمل دالة عند تمرير ملف لها فإنها ستقوم بايجاد البرنامج المشغل... ومن ثم تشغيل الملف


Code

Private Declare Function FindExecutable Lib "****l32.dll" _
Alias "FindExecutableA" (ByVal lpFile As String, ByVal _
lpDirectory As String, ByVal lpResult As String) _
As Long
Sub ****lFile(FileName As String)
Dim Byt_Pos As Byte, str_Buf As String * 256
Dim lpFile$, lpDirectory$
Byt_Pos = InStr(StrReverse(FileName), "")
'استخراج اسم الملف
lpFile = Right(FileName, Byt_Pos - 1)
'اسم المجلد
lpDirectory = Left(FileName, Len(FileName) - Byt_Pos)
'الحصول على البرنامج المشغل
FindExecutable lpFile, lpDirectory, str_Buf
'استخلاص اسم ومسارالبرنامج المشغل من القيمة الموجودة في المخزن

كود:
str_Buf = Mid(str_Buf, 1, InStr(str_Buf, Chr(0)) - 1)
****l str_Buf & " " & FileName, 1
End Sub
Private Sub Command1_Click()
****lFile "c:Test.txt"
End Sub


ما رأيك الآن .. اليس هذا جميلا .... لقد استطعت أن تقوم بتشغيل مختلف أنواع الملفات ولكن للاسف تحتاج لمزيد من الاكواد إذا كنت لاتعلم هل الملف تنفيذي ام ملف مقترن .... يكمن المخرج من هذا المأزق في استخدام الدالة ****lExecute لتشغيل كافة أنواع الملفات التنفيذية والملفات المرتبطة ببرنامج معين ..

ثالثا: تشغيل كافة أنواع الملفات



الدالة ****lExecute
تشغيل كافة انواع الملفات القابلة للتشغيل أوطباعتها حيث انه عندما يكون الملف عبارة عن ملفا مقترنا فإن الدالة تستخرج البرنامج المشغل ثم تقوم بتشغيله

التصريح للدالة

Code

كود:
Declare Function ****lExecute Lib "****l32.dll" Alias _
"****lExecuteA" (ByVal hwnd As Long, ByVal lpOperation _
As String, ByVal lpFile As String, ByVal lpParameters _
As String, ByVal lpDirectory As String, ByVal nShowCmd _
As Long) As Long

وسيطات الدالة:
hwnd : مقبض النافذة.
lpOperation : احدى المعاملين "Print" للطباعة و "Open" للفتح.
lpFile : اسم الملف لمراد تطبيق العملية عليه.
lpParameters : الوسيطات المراد تمريرها إلى جوار اسم الملف (في حال وجودها).
lpDirectory : اسم المجلد الذي يقع عليه الملف .. ويتم تمرير القيمة vbNullString (سلسلة محارف صفرية) في حال تم تمرير المسار كاملا إلى الوسيطة lpFile .
nShowCmd :مطابقة للوسيطة windowstyle التابعة للدالة ****l .
القيمة اللتي تعيدها الدالة:
تكون اكبر من 32 عندما تنجح العملية وعندما يحدث عكس ذلك فأن الدالة تعيد قيما أقل ويمكن تتبع مصدر الخطأ من خلال هذه القيم

مثال لتشغيل الملفات التنفيذية

Code

كود:
****lExecute hwnd, "Open", "Calc.exe", _
vbNullString, vbNullString, 3


مثال لتشغيل الملفات مقترنة

في هذا المثال سأوضح جملة من شيفرات الخطأ التي تصدر عن الدالة في حالة عدم النجاح ومالذي تعنيه كل قيمه

Code

كود:
Private Declare Function ****lExecute Lib "****l32.dll" Alias _
"****lExecuteA" (ByVal hwnd As Long, ByVal lpOperation _
As String, ByVal lpFile As String, ByVal lpParameters _
As String, ByVal lpDirectory As String, ByVal nShowCmd _
As Long) As Long
Sub ****lDocument(FileName As String)
Dim Ret&
Ret = ****lExecute(hwnd, "Open", FileName, "", "", 1)
If Ret <= 32 Then
Select Case Ret
Case 2&
MsgBox "الملف غير موجود"
Case 3&
MsgBox "المسار غير موجود"
Case 5&
MsgBox "تعذر الوصول"
Case 8&
MsgBox "ذاكرة غير كافية"
Case 11&
MsgBox "هناك خلل في الملف التنفيذي"
Case 32&
MsgBox "مكتبة الربط غير موجودة"
Case 31&
MsgBox "لايوجد برنامج مقترن بهذا الامتداد"
Case Else
MsgBox "خطأ غير معرف في هذا المثال"
End Select
End If
End Sub

Private Sub Command1_Click()
****lDocument "C:Test.txt"
End Sub
إقتباس
  #2
صبري2010
ExpErt DeveloPer
 
الصورة الرمزية صبري2010
 
   تاريخ التسجيل: 8 - 5 - 2009
   رقم العضوية : 75999
   العمر : 24
   المشاركات : 1,430
   بمعدل : 0.73 يوميا
   عدد النقاط : 8230
   ProgramerSapry


صبري2010 has a reputation beyond reputeصبري2010 has a reputation beyond reputeصبري2010 has a reputation beyond reputeصبري2010 has a reputation beyond reputeصبري2010 has a reputation beyond reputeصبري2010 has a reputation beyond reputeصبري2010 has a reputation beyond reputeصبري2010 has a reputation beyond reputeصبري2010 has a reputation beyond reputeصبري2010 has a reputation beyond reputeصبري2010 has a reputation beyond repute

صبري2010 غير متواجد حالياً




افتراضي رد: تشغيل الملفات والتطبيقات عن طريق الفيجوال بيسك قديم اضيفت بتاريخ 25-May-2009, 12:57 AM بواسطة WEB

عزراا مكان النجوم التي تظهر في الاكواد نكتب كلمة s h e l l ****l
او نأخذ الكود كوبي بيست
إقتباس
  #3
Funny Logic
VIP DeveloPer
 
الصورة الرمزية Funny Logic
 
   تاريخ التسجيل: 9 - 5 - 2008
   رقم العضوية : 49605
   المشاركات : 2,571
   بمعدل : 1.11 يوميا
   عدد النقاط : 2911


Funny Logic has a reputation beyond reputeFunny Logic has a reputation beyond reputeFunny Logic has a reputation beyond reputeFunny Logic has a reputation beyond reputeFunny Logic has a reputation beyond reputeFunny Logic has a reputation beyond reputeFunny Logic has a reputation beyond reputeFunny Logic has a reputation beyond reputeFunny Logic has a reputation beyond reputeFunny Logic has a reputation beyond reputeFunny Logic has a reputation beyond repute

Funny Logic غير متواجد حالياً




افتراضي رد: تشغيل الملفات والتطبيقات عن طريق الفيجوال بيسك قديم اضيفت بتاريخ 30-May-2009, 12:31 AM بواسطة WEB

يعطيك الف الف عافية يا رب ...


مبدع يا غاالي..
توقيع Funny Logic

TV Quran

إقتباس
  #4
ξѝơɗ
ExpErt DeveloPer
 
الصورة الرمزية ξѝơɗ
 
   تاريخ التسجيل: 26 - 4 - 2009
   رقم العضوية : 75448
   المشاركات : 3,107
   بمعدل : 1.58 يوميا
   عدد النقاط : 1576


ξѝơɗ has a brilliant futureξѝơɗ has a brilliant futureξѝơɗ has a brilliant futureξѝơɗ has a brilliant futureξѝơɗ has a brilliant futureξѝơɗ has a brilliant futureξѝơɗ has a brilliant futureξѝơɗ has a brilliant futureξѝơɗ has a brilliant futureξѝơɗ has a brilliant futureξѝơɗ has a brilliant future

ξѝơɗ غير متواجد حالياً




افتراضي رد: تشغيل الملفات والتطبيقات عن طريق الفيجوال بيسك قديم اضيفت بتاريخ 30-May-2009, 02:47 AM بواسطة WEB

مشكور جدا

بس عندي استفسار بسيط

أكتب بدال الستارز

s h e l < صحيح الـ سبيلينق بتاعها ؟؟

أنتظر ردك خيوو

ويعطيك 1000 عافية
إقتباس
  #5
صبري2010
ExpErt DeveloPer
 
الصورة الرمزية صبري2010
 
   تاريخ التسجيل: 8 - 5 - 2009
   رقم العضوية : 75999
   العمر : 24
   المشاركات : 1,430
   بمعدل : 0.73 يوميا
   عدد النقاط : 8230
   ProgramerSapry


صبري2010 has a reputation beyond reputeصبري2010 has a reputation beyond reputeصبري2010 has a reputation beyond reputeصبري2010 has a reputation beyond reputeصبري2010 has a reputation beyond reputeصبري2010 has a reputation beyond reputeصبري2010 has a reputation beyond reputeصبري2010 has a reputation beyond reputeصبري2010 has a reputation beyond reputeصبري2010 has a reputation beyond reputeصبري2010 has a reputation beyond repute

صبري2010 غير متواجد حالياً




افتراضي رد: تشغيل الملفات والتطبيقات عن طريق الفيجوال بيسك قديم اضيفت بتاريخ 30-May-2009, 08:37 PM بواسطة WEB

نكتبها اخي هكذا
s h e l l
هكذا اخي بس هذه الكلمة تحول الي نجوم في المنتديات

بارك الله فيك على ردك
إقتباس
  #6
ξѝơɗ
ExpErt DeveloPer
 
الصورة الرمزية ξѝơɗ
 
   تاريخ التسجيل: 26 - 4 - 2009
   رقم العضوية : 75448
   المشاركات : 3,107
   بمعدل : 1.58 يوميا
   عدد النقاط : 1576


ξѝơɗ has a brilliant futureξѝơɗ has a brilliant futureξѝơɗ has a brilliant futureξѝơɗ has a brilliant futureξѝơɗ has a brilliant futureξѝơɗ has a brilliant futureξѝơɗ has a brilliant futureξѝơɗ has a brilliant futureξѝơɗ has a brilliant futureξѝơɗ has a brilliant futureξѝơɗ has a brilliant future

ξѝơɗ غير متواجد حالياً




افتراضي رد: تشغيل الملفات والتطبيقات عن طريق الفيجوال بيسك قديم اضيفت بتاريخ 31-May-2009, 01:07 AM بواسطة WEB

يعطيك العافية

مشكور عالرد

<- تعتبرك من أساتذتها في الـ vb

وماراح أنسى هالمجهود منك اللي استفدت منه كثير

جزيت خير الجزاء
إقتباس

مواقع النشر (المفضلة)

الكلمات الدلالية (Tags)
الملفات, الفيجوال, بيسك, تشغيل, والتطبيقات, طريق


الذين يشاهدون محتوى الموضوع الآن : 1 ( الأعضاء 0 والزوار 1)
 
أدوات الموضوع
انواع عرض الموضوع

تعليمات المشاركة
لا تستطيع إضافة مواضيع جديدة
لا تستطيع الرد على المواضيع
لا تستطيع إرفاق ملفات
لا تستطيع تعديل مشاركاتك

BB code is في
كود HTML معطلة
Trackbacks are في
Pingbacks are في
Refbacks are في



الساعة الآن 02:26 PM

Powered by Devpoint, Inc. community
Copyrights for vBulletin Inc.
Devpoint v3.0 preview - Build 1402.11

نظام الترقية - الحسابات الموثوقة - خصوصية الموقع - [ Dev-PoinT ] - الأعلى




SEO by vBSEO 3.6.0 PL2 ©2011, Crawlability, Inc.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180