PDA

View Full Version : پیدا کردن اسم پورت



ehsanocx
چهارشنبه 19 خرداد 1389, 00:35 صبح
با سلام.
چطوری می تونم وقتی فرم لود شد پورت com که روی کامپیوترم فعال هست رو توی یک Combobox ببینم؟

من به این صورت اعمال می کنم. دستی خودم میدم:
MSComm1.CommPort = 3
اما نمی خوام اینطوری می خوام فرم که لود شد خودش اسم پورت رو از کامپیوتر بگیره و توی combox نمایش بده چطوری می تونم چنین کاری کنم؟ با تشکر

ehsanocx
چهارشنبه 19 خرداد 1389, 01:19 صبح
" MSComm1.Settings = "19200,n,8,1
کار این دستور چیه؟
اعداد جلوش به چه معناست؟

vbhamed
چهارشنبه 19 خرداد 1389, 08:37 صبح
سلام

يك كمبو و يك كنترل MSCOMM روي صفحه بزاريد و دستورات زير رو بنويسيد

Dim i%

On Error Resume Next

For i = 1 To 255
Err.Clear

MSComm1.CommPort = i
MSComm1.PortOpen = True
If Err = 0 Then Combo1.AddItem "COM" & CStr(i)
MSComm1.PortOpen = False
Next

ehsanocx
چهارشنبه 19 خرداد 1389, 10:24 صبح
(If Err = 0 Then Combo1.AddItem "COM" & CStr(i
MSComm1.PortOpen = False
معنی این جمله چیه؟

ehsanocx
چهارشنبه 19 خرداد 1389, 10:45 صبح
من on error رو غیر فعال می کنم همش error invalid port میده چرا؟

Dim i%
On Error Resume Next'

For i = 1 To 255
Err.Clear

MSComm1.CommPort = i
MSComm1.PortOpen = True
(If Err = 0 Then Combo1.AddItem "COM" & CStr(i
MSComm1.PortOpen = False
Next
دلیلش چیه؟ به این خط
MSComm1.CommPort = i
گیر میده؟
اما on error رو فعال می کنم همه چی درست میشه و پورت رو درست نشون میده و وصل هم میشه به پورت ؟

ali_habibi1384
چهارشنبه 19 خرداد 1389, 12:31 عصر
" MSComm1.Settings = "19200,n,8,1
کار این دستور چیه؟
اعداد جلوش به چه معناست؟
تنظیم ارسال اطلاعات به پورت،
سرعت ارسال و تعداد بیت ریت هستش

ali_habibi1384
چهارشنبه 19 خرداد 1389, 12:34 عصر
من on error رو غیر فعال می کنم همش error invalid port میده چرا؟

Dim i%
On Error Resume Next'

For i = 1 To 255
Err.Clear

MSComm1.CommPort = i
MSComm1.PortOpen = True
(If Err = 0 Then Combo1.AddItem "COM" & CStr(i
MSComm1.PortOpen = False
Next
دلیلش چیه؟ به این خط
MSComm1.CommPort = i
گیر میده؟
اما on error رو فعال می کنم همه چی درست میشه و پورت رو درست نشون میده و وصل هم میشه به پورت ؟
شما میخوای پورتی رو که باز نیست ببندی! در ضمن چرا شما داری 255 تا پورت رو می بندی؟ مگه کامپیوتر شما چندتا پورت داره؟؟
برنامه ای که مینویسی چیه؟ آیا شما چون نمی دونی اطلاعات رو به کدام پورت بفرستی از این روش استفاده کردی؟

vbhamed
چهارشنبه 19 خرداد 1389, 13:38 عصر
سلام

(If Err = 0 Then Combo1.AddItem "COM" & CStr(دستور بالا يعني اگر پورتي با شماره i بدون خطا باز شد يعني اين پورت وجود دارد و در حال استفاده نيست
پس آنرا به ليست اضافه كن


MSComm1.PortOpen = Falseاين دستور هم پورت رو بعد از باز كردن مي بنده

ضمنا شما نبايد On Error رو برداري چون دقيقا از روي خطايي كه مي ده مي‌فهميم پورت وجود نداره يا در حال استفاده هستش

در جواب ali_habibi1384 عزيز هم به اين خاطر تا 255 نوشته شده كه اولا همه پورتهاي موجود ليست شود و ثانيا ممكنه كسي به صورت دستي خودش يك شماره بالا به پورتي كه در حالت عادي مثلا Com2 بوده اختصاص بده

ehsanocx
چهارشنبه 19 خرداد 1389, 14:50 عصر
چرا باید بعد از باز کردن پورت اون رو ببنده؟MSComm1.PortOpen = False
این دستور رو می گم؟


اول به کمبو باکس توی خاصیت لیستش مقدار داده بودم com3 و وقتی فرم لود می شد با این دستور
Combo1.ListIndex = 0
و توی فرم لود نوشته بودم
MSComm1.CommPort = 3
MSComm1.PortOpen = True
MSComm1.Settings = "19200,n,8,1"
MSComm1.Handshaking = comNone
و برنامه کار می کرد. اما حالا که از یان کد استفاده می کنم توی فرم لود :

Dim i%

On Error Resume Next

For i = 1 To 255
Err.Clear
MSComm1.CommPort = i
MSComm1.PortOpen = True
(If Err = 0 Then Combo1.AddItem "COM" & CStr(i
MSComm1.PortOpen = False
Next

نمیدونم این کد هارو چیکار کنم و کجا قرار بده :
MSComm1.CommPort = 3
MSComm1.PortOpen = True
MSComm1.Settings = "19200,n,8,1"
MSComm1.Handshaking = comNone

و همش تا برنامه پورت رو می شناسه و دکمه ارسال رو می زنم این پیغام رو میده :
50838

این رو که خود کام می شناسه با کدی که آقا حامد دادن و نیازی نیست دیگه ازش استفاده کنم توی فرم لود درسته؟
MSComm1.CommPort = 3
؟

پس این کد هارو چیکار کنم؟
MSComm1.PortOpen = True
MSComm1.Settings = "19200,n,8,1"
MSComm1.Handshaking = comNone
پاک گیج شدم
ببینید برنامه رو :

50840

چرا کار نمی کنه:ناراحت:
میشه اصلاحش کنین؟

vahid_d_0101
چهارشنبه 19 خرداد 1389, 23:18 عصر
یه نکته که باید حتما بدونید این است که mscom از پرت بالاتر از 15 دیگه باهاش ارتباط برقرار نیمکنه میتونید امتحان کنید ببینید

ehsanocx
پنج شنبه 20 خرداد 1389, 14:26 عصر
دوستان کسی بلد نیست؟ کسی نمی تونه به سوالات من جواب بده:؟

vbhamed
پنج شنبه 20 خرداد 1389, 18:12 عصر
سلام

خب شما پورت رو باز نگه داشتين واسه همين خطا مي ده