PDA

View Full Version : تفاوت بین برنامه اجرا از فایل Exe و فایل سورس



احمد رایان
پنج شنبه 28 دی 1385, 20:42 عصر
سلام دوستان
من نیاز به دستوری دارم که بتواند بفهمد که برنامه از طریق برنامه وی بی در حال اجرا است یا از طریق فایل Exe ساخته شده ؟
با تشکر

S_VB.max
پنج شنبه 28 دی 1385, 22:18 عصر
یک کنترل File روی فرم بذار ، مسیر جاری برنامه را به اون بده ، بعد ، از بین لیست فایلهای Exe که در آن لیست می شود اگر نام برنامه ات مطابق با یکی از اون فایلها بود یعنی این که از فایل Exe اجرا شده است

احمد رایان
جمعه 29 دی 1385, 15:20 عصر
ممنون این روشی برای حل مشکل بود اما آیا دستوری خاص یا کدی که از طریق آن متوجه این مساله بشود وجود ندارد ضمن اینکه با این روش اگر فایل Exe در مسیر برنامه سورس موجود باشد و برنامه از طریق سورس اجرا شود بطور حتم در فهمیدن اینکه برنامه Exe است یا سورس دچار خطا خواهد شد.

stowmco
جمعه 29 دی 1385, 17:37 عصر
هیچ فایده ای نداره که این مساله رو بفهمی !
چون در نهایت از فایل exe استفاده می کنی

ولی

باید ببینی پدر برنامه در زمان اجرا چیه
parent

احمد رایان
جمعه 29 دی 1385, 22:35 عصر
هیچ فایده ای نداره که این مساله رو بفهمی !
چون در نهایت از فایل exe استفاده می کنی



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

در هر صورت از راهنماییت ممنونم.

S_VB.max
شنبه 30 دی 1385, 14:44 عصر
با این روش اگر فایل Exe در مسیر برنامه سورس موجود باشد و برنامه از طریق سورس اجرا شود بطور حتم در فهمیدن اینکه برنامه Exe است یا سورس دچار خطا خواهد شد.

حق با شماست اما اگر نام پروژه و نام فایل Exe متفاوت باشد دیگر این مشکل بوجود نمی آید

oVERfLOW
شنبه 30 دی 1385, 14:59 عصر
با استفاده از دستور
GetModuleFileName API
ببینید که اسم فایل اجرایی‌تون vb6.exe هست...
اگه این طور باشه برنامه در حال سورس هست

خیلی راه دیگه هم هست که حوصله نیست !!

احمد رایان
شنبه 30 دی 1385, 21:51 عصر
از راهنماییتون بسیار ممنونم

اما پارامترهای ورودی این تابع چی باشند تا تفاوت بین سورس و Exe معلوم بشه ؟

S_VB.max
شنبه 30 دی 1385, 22:32 عصر
Option Explicit

Private Declare Function GetModuleFileName Lib "kernel32" _
Alias "GetModuleFileNameA" _
(ByVal hModule As Long, _
ByVal lpFileName As String, _
ByVal nSize As Long) As Long

Private Sub Form_Load()
'Set the command button names
Command1.Caption = "Different Project and Executable Names"
Command2.Caption = "Similar File Names"
End Sub

Private Sub Command1_Click()
'Click this button if the project name and the compiled file
'name are different.
MsgBox VB.App.EXEName
End Sub

Private Sub Command2_Click()
'Click this button if the project name and the compiled file
'name are the same.

Dim strFileName As String
Dim lngCount As Long

strFileName = String(255, 0)
lngCount = GetModuleFileName(App.hInstance, strFileName, 255)
strFileName = Left(strFileName, lngCount)

If UCase(Right(strFileName, 7)) <> "VB6.EXE" Then
MsgBox "Compiled Version"
Else
MsgBox "IDE Version"
End If
End Sub