PDA

View Full Version : (یک سوال اسون)فرستادن یک متغیر به برنامه



farb0d
یک شنبه 10 آذر 1387, 00:04 صبح
سلام
من دو تا برنامه دارم مثلا به نام های exe1 و exe2
میخوام exe1 یک متغیر که مثلا عدد هست رو به exe2 بده و exe2 اون رو چاپ کنه
و برعکس

پیشاپیش ممنون

parselearn
یک شنبه 10 آذر 1387, 05:55 صبح
دوست عزيز اين كار به اين راحتي نيست (حداقلش من نديدم)
بهترين كار اينه كه از برنامت خروجي بگيري (رجيستري يا فايل)
بعد در برنامه ديگر لود كني و ادامه....

3dboy1
یک شنبه 10 آذر 1387, 06:13 صبح
با سلام
زياد در اين مورد بحث شده و برنامه هاي جالبي هم دوستان گذاشتند
جستجو كنيد

mpmsoft
یک شنبه 10 آذر 1387, 09:09 صبح
می تونی از winsock هم برای این منظور استفاده کنی

vbhamed
یک شنبه 10 آذر 1387, 09:23 صبح
سلام

يكي از ساده ترين راهها فراخواني exe2 از درون exe1 با يك پارامتر هست كه از دستور shell استفاده ميشه


shell "exe2 " & X

و exe2 موقع اجرا متغير محيطي Command$ كه همون پارامتر فرستاده شده هست رو چاپ مي كنه



Private Sub Form_Load()

Msgbox Command$

Next

farb0d
یک شنبه 10 آذر 1387, 11:41 صبح
سلام

يكي از ساده ترين راهها فراخواني exe2 از درون exe1 با يك پارامتر هست كه از دستور shell استفاده ميشه


shell "exe2 " & X

و exe2 موقع اجرا متغير محيطي Command$ كه همون پارامتر فرستاده شده هست رو چاپ مي كنه



Private Sub Form_Load()

Msgbox Command$

Next



میشه به صورت برنامه بنویسیدش

mpmsoft
یک شنبه 10 آذر 1387, 11:45 صبح
دوست عزیز توسط روشی که آقای VBHamed گفتن هر سری یکبار فایل اجرایی اجرا می شه

ولی اگر می خواهید در حین کار هم پیغام رد و بدل بشه می تونی هم از API جهت ارسال پیغام بین پنجره ها استفاده کنی و هم از Winsock استفاده کنی

.:KeihanCPU:.
یک شنبه 10 آذر 1387, 20:28 عصر
http://barnamenevis.org/forum/showpost.php?p=631697&postcount=2

جستجو میکردی بهتر نبود؟

farb0d
یک شنبه 10 آذر 1387, 20:56 عصر
دوست عزیز توسط روشی که آقای VBHamed گفتن هر سری یکبار فایل اجرایی اجرا می شه

ولی اگر می خواهید در حین کار هم پیغام رد و بدل بشه می تونی هم از API جهت ارسال پیغام بین پنجره ها استفاده کنی و هم از Winsock استفاده کنی

اگر میشه یک نمونه از این برنامه رو بزارید


http://barnamenevis.org/forum/showpost.php?p=631697&postcount=2

جستجو میکردی بهتر نبود؟
من جستو جو کردم این رو هم پیدا کردم اما این برنامه فقط متن ثابتی رو انتقال میده نه
یک عدد ی که در حال تغیر هست

ماهان مقدم
یک شنبه 10 آذر 1387, 21:28 عصر
این سورس رو بگیر. حتما باید بدونید Property Bag چیه دیگه آره ؟!
حال ندارم توضیح بدم ولی سورس رو آپ میکنم.

vbhamed
یک شنبه 10 آذر 1387, 23:13 عصر
میشه به صورت برنامه بنویسیدش

سلام
اينم نمونه

farb0d
یک شنبه 10 آذر 1387, 23:43 عصر
چرا هر بار که پیغام میاد یک exe2 جدید باز میشه

Pr0grammer
دوشنبه 11 آذر 1387, 00:50 صبح
چرا هر بار که پیغام میاد یک exe2 جدید باز میشه

جوابتون در پست شماره 5 و 7 همین تایپک هست! :متفکر:

.:KeihanCPU:.
دوشنبه 11 آذر 1387, 10:25 صبح
این برنامه فقط متن ثابتی رو انتقال میده نه
یک عدد ی که در حال تغیر هست


منظورتو نمیفهمم.خوب هربار که عدد تغییر کرد از این روش استفاده کن

farb0d
دوشنبه 11 آذر 1387, 12:40 عصر
جوابتون در پست شماره 5 و 7 همین تایپک هست! :متفکر:

اگر میشه یک نمونه از برنامه ها رو بدن ممنون میشم

farb0d
دوشنبه 11 آذر 1387, 21:03 عصر
کسی میتونه این برنامه رو جوری تغییر بده که بجای یک متن ثابت یک متغیر مثلا: محتویات یک text رو بفرسته

SetWindowLong(Sender & Reciever).rar (http://barnamenevis.org/forum/attachment.php?attachmentid=25436&d=1226496031)

s_ahmadneya
دوشنبه 11 آذر 1387, 21:48 عصر
سلام
اصولا برای انتقال اطلاعات (عدد،رشته،صدا،تصویر ویا یک شی از مفهوم پروپرتی ) و برای انجام یک کار از مفهوم متد استفاده می کنند شما باید برای برنامه تان پروپرتی تعریف کنید که کدش بصورت زیر است


Public Property Get InputValue() As Variant
InputValue = Param
End Property
Public Property Let InputValue(ByVal New_InputValue As Variant)
Param = New_InputValue
End Property


اینهم کد متد که که پس از چک کردن سطح دسترسی کاربری که انرا فراخانی کرده یک فرم را باز می کند

'اين تابع به اين دليل نوشته شده تا ظاهر فرم را ببيند
Public Sub ShowPictuerForm(Optional Modal As FormShowConstants = vbModeless, Optional OwnerForm)
Dim object As Form
Set object = Frm_031
If SathDasrasi("TK_F031") Then
'لازم به تغيير نيست
If Modal = vbModeless Then
object.Show vbModeless
Else
object.Show vbModal
End If
End If
object.BorderStyle = vbSizable
object.Top = 0
object.Toolbar1.Enabled = False
object.Left = Screen.Width - object.Width
object.Caption = object.Caption + "*** فقط براي نمايش***"
object.GrdRefresh
End Sub


لازم به تذکر این ها در یک پروژه هستند و پس از DLL شدن توسط برنامه دومی فراخانی میشود . اگرنیاز به توضیح بیشتر دارد در خدمتیم

VB.SOS
دوشنبه 11 آذر 1387, 22:34 عصر
به نظر من بهترين روش استفاده از Winsock هست. دست برنامه نويس خيلي بازه

sinashahab
دوشنبه 11 آذر 1387, 22:59 عصر
من هم با وین سوک موافقم .
از همه هم اسان تر است .

farb0d
دوشنبه 11 آذر 1387, 23:17 عصر
به نظر من بهترين روش استفاده از Winsock هست. دست برنامه نويس خيلي بازه


من هم با وین سوک موافقم .
از همه هم اسان تر است .

خوب اگر میشه نمونه برنامه ای در این زمینه با Winsock بنویسید
ممنون

.:KeihanCPU:.
سه شنبه 12 آذر 1387, 22:52 عصر
به نظر من بهترين روش استفاده از Winsock هست. دست برنامه نويس خيلي بازه



من هم با وین سوک موافقم .
از همه هم اسان تر است .


استفاده از Winsock درست نیست.جرا باید برنامه رو شبکه ای کنیم.
اونوقت مشکل فایروالها هم داری

VB.SOS
چهارشنبه 13 آذر 1387, 09:20 صبح
ميشه از API ها تحت يه كلاس جامع استفاده كرد. فكر كنم تو سايتمون هست

s_ahmadneya
چهارشنبه 13 آذر 1387, 09:32 صبح
من واقعا" متوجه نمی شوم چرا وقتی بحث شی گرایی الان اینهمه جا افتاده و کار را بسیار راحت کرده مخصوصا برای برنامه بزرگ چرا دوستان اینقدر پیچیدش می کننده کد نوشتن پروپرتی و متد را هم دراین تاپیک گذاشته ام چرااستفاده نمی کنید؟؟؟؟؟؟