تبليغاتX
برنامه نویسی

برنامه نویسی
آموزش گام به گام برنامه نویسی توسط مهرداد راهی


امکانات

آیا برنامه در حال اجرا در محیط طراحی است؟

سلام هموطن


بعضی ها میخوان وقتی برنامه اجرایی در حال اجرا هست یه کاری بکنه که در زمان طراحی و اجرا از داخل وی بی نشه

در این بخش میخوام بگم که چطوری تشخیص بدید برنامه در حال اجرا از داخل ویژوال بیسیک هست یا اینکه فایل اجرایی برنامه هستش

وی بی یه شی به نام App داره که خاصیتی به اسم EXENAME داره. هنگامی که برنامه به صورت فایل اجرایی در حال اجرا باشد App.EXENAME نام فایل اجرایی را مشخص می کند اما در محیط ویژوال بیسیک نام پروژه را برمیگرداند. اگر برای نام پروژه و فایل اجرایی از نام های مختلفی استفاده کنید می توانید از این خاصیت برای تشخیص استفاده نمایید.


علاوه بر این روش روش بهتری وجود دارد که توسط توابع API می توان تشخیص داد.
هنگامی که برنامه در محیط ویژوال بیسیک اجرا می شود نام ماژول برنامه VB هست ولی زمانی که برنامه به صورت فایل اجرایی کامپایل شده اجرا شود نام ماژول برنامه نام فایل اجرایی برنامه هست

برای پیدا کردن ماژول برنامه از توابع GetCurrentTask و TaskFindHandle استفاده می کنیم.

برنامه نمونه : برای برنامه یک بس ماژول اضافه کنید و کد زیر را در آن قرار دهید


Type TASKENTRY
dwSize As Long
hTask As Integer
hTaskParent As Integer
hInst As Integer
hModule As Integer
wSS As Integer
wSP As Integer
wStackTop As Integer
wStackMinimum As Integer
wStackBottom As Integer
wcEvents As Integer
hQueue As Integer
szModule As String * 10
wPSPOffset As Integer
hNext As Integer
End Type
' The following declare must be entered on a single line
Declare Function TaskFindHandle Lib "Toolhelp" (lpte As TASKENTRY,
ByVal hTask As Integer) As Integer
Declare Function GetCurrentTask Lib "Kernel" () As Integer
Function VBDesignEnvironment () As Integer
Dim TE As TASKENTRY
Dim ModuleName As String
Dim hTask As Integer
Dim r
hTask = GetCurrentTask()
TE.dwSize = Len(TE)
r = TaskFindHandle(TE, hTask)
ModuleName = Left(TE.szModule, InStr(TE.szModule, Chr(0)) - 1)
If ModuleName = "VB" Then
VBDesignEnvironment = True
Else
VBDesignEnvironment = False
End If
End Function

و کد زیر را در Form_Load

Sub Form_Load ()
Me.Show
If VBDesignEnvironment() Then
Print "Design Environment"
Else
Print "Executable"
End If
End Sub

برنامه را در هر دو حالت اجرا کنید و نتیجه را ببینید و لذت ببرید.
نویسنده: مهرداد راهی ׀ تاریخ: جمعه یکم شهریور 1387 ׀ موضوع: ׀

درباره وبلاگ

سلام...خوش اومدید
آموزش برنامه نویسی با وی بی 6
من مهرداد هستم 20 ساله
-------------------------------
با تشکر دوست شما
My ID : Artam_Shan


لینکدونی

جستجوی مطالب


طراحي و پياده سازي توسط مهرداد راهی