ورود

View Full Version : راهنمایی برای اجرای یک دستور



Rain_Saeid
سه شنبه 14 خرداد 1392, 10:55 صبح
با سلام و درود

دوستان و اساتید محترم و گرامی
بنده میخوام یک دستوری رو اجرا کنم ، ولی دقیقا نمیدونم اجرا شدنی هست یا نه و چگونه میشود اجراش کرد..

1- ابتدا میخوام دستوری را اجرا کنم که داخل داس اجرا میشود و از دستورات Android ADB میباشد
adb shell cat /system/build.prop
2- با زدن این دستور ، اگر گوشی اندرویدی با USB به کامپیوتر متصل باشد، اطلاعات خیلی کلی از گوشی به ما میدهد
3- بنده میخوام این اطلاعات رو داخل یک فایل متنی txt ذخیره بشه و از این فایل ذخیره شده بعضی کلمه هاشو داخل تکس باکس که در برنامه قرار میدم ، کپی بشه

این هم بگم که از Readoutput میتونم استفاده کنم، ولی از هر 10 بار 6 الی 7 بار آن برنامه هنگ میکنه

این هم فایل دستورات adb :
http://s2.picofile.com/file/7790057525/ADB_Command.rar.html

ممنون میشم اگه اساتید و دوستان راهنمایی بفرمایند
با تشکر..

meys34
سه شنبه 14 خرداد 1392, 14:44 عصر
جسارتا
در اینگونه پست هایی که ارتباط نرم افزار ها یا زبان های دیگر با VB6 مطرح هست؛
حتما ذکر کنید که سوال شما مربوط به قسمت VB6 هست تا مورد مواخذه قرار نگیرید.







تا اونجایی که بنده اطلاع دارم اگر بخواهید به طور مستقیم خروجی از CMD Console بگیرید بایستی

1- ابتدا یک pipe بسازید بوسیله تابع CreatePipe
2- برنامه CMD یا هی چیز دیگه ای رو اجرا کنید توسط تابع CreateProcess
3- خروجی برنامه رو توسط تابع ReadFile بخونید...



حالا اگر روی تابع ReadFile هنگ میکنه یعنی اینکه CMD اجازه خروجی گرفتن رو نمیده...

کاری که برای این میشه انجام داد اینه که
برای خروجی و ورودی دو تا Pipe جداگونه بسازید تا هنگ نکنه....
اینجوری:

CreatePipe hPipeRead, StartInfo.hStdOutput, SecAttrib, 0 ' این برای خروجی
CreatePipe StartInfo.hStdInput, hPipeWrite, SecAttrib, 0 ' این برای ورودی






اگر حال این کارا رو ندارید هم می تونید به روش غیر مستقیم از کنسول خروجی بگیرید:
به طور مثال:

Dim AndroidCommand As String
AndroidCommand = "adb shell cat /system/build.prop"
Shell "cmd /k > C:\AndroidTemp.txt " & Replace(AndroidCommand, vbCrLf, " & "), vbNormalFocus

فقط توضیح اینکه:
1- دستور /k یعنی بعد از اجرای دستورات پنجره کنسول بسته نشود (/c بسته بشود)
2- دستور > C:\AndroidTemp.txt یعنی خروجی در فایل مذکور Overwrite بشود (کاراکتر کلیدی >> یعنی خروجی در انتهای فایل نوشته شود و Overwrite نشود)

منبع مطالب فوق از سایت های مختلف و فروم محبوب barnamenevis.org هست...

Rain_Saeid
سه شنبه 14 خرداد 1392, 15:31 عصر
با تشکر از شما که جواب دادین

فکر کنم من اشتباه می نویسم یا اشکالی در کار من هست

میشه لطف کنید و همین مطلب رو بصورت کامل داخل برنامه بنویسید و ضمیمه کنید

با تشکر

meys34
سه شنبه 14 خرداد 1392, 17:03 عصر
نه اینو به در گفتم دیوار بشنوه...



این هم بگم که از Readoutput میتونم استفاده کنم، ولی از هر 10 بار 6 الی 7 بار آن برنامه هنگ میکنه
بی زحمت کد های قسمت Readoutput خودتون رو قرار بدین...



در ضمن کد های بالا هم کامل کامل هست با این حال به روی چشم...
ضمیمه شد...به روش غیر مستقیم...

Rain_Saeid
سه شنبه 14 خرداد 1392, 23:26 عصر
با تشکر از شما
این راه حل برای اولین بار جواب میده، ولی برای دفعات بعد که میخواهیم اجرا بشه، اصلا دیگه جواب نمیده

اگر راه حل های دیگه ای در نظرتون هست، بی زحمت بفرمایید

تشکر و ممنون از شما اساتید عزیز

vbhamed
چهارشنبه 15 خرداد 1392, 11:40 صبح
سلام

اينجا رو ببينيد، پست شماره 8

http://barnamenevis.org/showthread.php?114431-%D8%AE%D8%B1%D9%88%D8%AC%DB%8C-%D9%81%D8%B1%D8%A7%D9%85%DB%8C%D9%86-%D8%AF%D8%A7%D8%B3-%D8%AF%D8%B1-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87&p=1786053#post1786053