کسی میتونه به من بگه چطوری میشه دستورات cmd رو در ویژوال بیسیک اجرا کنم؟
Printable View
کسی میتونه به من بگه چطوری میشه دستورات cmd رو در ویژوال بیسیک اجرا کنم؟
سلام این دستورش:
کد:
Shell "دستور"
سلامنقل قول:
دوست عزيز من دستور زير رو ميزنم خطا ميده ميشه يه راهنماي جامع تري بكنيد
نقل قول:
shell "dir"
اشتباه کردم نمیشه [ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]
چون اشتباه کردم خودم رو موظف دونستم بشینم روش فکر کنم:27:
و بعد از یکم فکر یک فکری به کلم رسید:21:
یک کلک زدم:31:
این کد رو کپی کنید توی ویژوال بیسیک:
حالا هر جا خواستید یک دستور از cmd رو اجرا کنید کافیه این رو تایپ کنید:کد:Private Declare Function GetWindowsDirectory Lib "kernel32" Alias "GetWindowsDirectoryA" (ByVal lpwindir As String, ByVal nSize As Long) As Long
Private Declare Function DeleteFile Lib "kernel32" Alias "DeleteFileA" (ByVal lpFileName As String) As Long
Dim windir As String
Private Sub CMD(dastur As String)
Open windir For Output As #1
Print #1, dastur
Close #1
Shell windir
DeleteFile windir
End Sub
Private Sub Form_Load()
windir = String(200, 0)
GetWindowsDirectory windir, Len(windir)
windir = Left$(windir, InStr(1, windir, Chr$(0)) - 1)
windir = windir & "\testcmd.bat"
End Sub
بعد دستور اجرا میشه مثلا می تونین تایپ کنین:کد:Call CMD("دستور")
یا هر کد کلیدی دیگهکد:Call CMD("copy C:\file.BMP d:\file.BMP")
البته کدی مثل dir رو نمی تونین اجرا کنین چون توی این راهی که من رفتم چیزی به نام مسیر فعالی نداریم که dir بگیره برات و البته توی ویبی به دستوراتی مثل dir احتیاج نداریم:27:
نکته دیگه ای هم که این کد داره اینه که میشه صد تا کد رو با هم توی cmd اجرا کرد
یعنی فقط کافیه شما صد تا کد رو توی یک text که قابلیت Multi line ش فعاله به صورت زیر هم بنویسید و بعد این دستور رو تایپ کنید:
مثلا من توی text box تایپ می کنم:کد:call CMD("text1.text")
بعد هر جا خواستم این کدا رو اجرا کنم تایپ می کنم:کد:copy C:\file.BMP d:\file.bmp
copy C:\file.jpg d:\file.jpg
copy C:\file.BMP d:\file.mp3
اینجوری سه تا فایل رو کپی می کنه:46:کد:Call CMD(Text1.Text)
وای حوصلم سر رفت
امیدوارم به دردتون بخوره
سلام
من اين كدي رو كه گفتيد رو گذاشتم توي ويژوال بيسيك ولي دستوري رو اجرا نكرد
مثلا من دستور attrib رو زدم ولي كار نكرد
نمي دونم براي شما چطوري كاركرده
لطفا كمكم كنيد
دستور Attrib هم باید کار کنه
به شرطی آدرس کامل فایل مورد نظرتو وارد کنی
چون مسیر پیش فرض در این جا معنی نداره [ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]
اگر بازم نشد که صد در صد میشه بگو دقیقا چه کار می کنی [ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]
من خودم با cmd کار میکنم و مطمئن هستم که دستورات رو درست وارد می کنم ولی کار نمی کنه.
چیکار کنم؟
میشه دستوری رو که می نویسید اینجا بزارید؟
دستور attrib که نیاز به Cmd نداره با خود ویژوال میشه :
SetAttr "e:\1.exe", vbHidden + vbReadOnly + vbSystem
سلام.
برای attrib نیازی به بچ فایل نیست. با shell امکان پذیره.
Shell "attrib C:\a +h "
ولی راه حرفه ای تر استفاده از SetAttr خود ویبیه.
کلا برای اجرای فایل های موجود در سیستم32 میتونیم از shell استفاده کنیم. ولی اگه دستوری دستور داخلیه خود cmd بود مثل dir باید از بچ فایل استفاده کنیم.
ولی باز برای dir هم راه حرفه ای تر هست. هم به کمک api ها این کار انجام پذیره. هم dirlistbox.
بابا جرا سوال اصلی رو یادتون رفت. فقط که هدف اجرای attrib نیست. مثلا کاری کنید که هم ping و tracert باهم اجراشه
خیلی لطف میکنید اگه برام میل کنید.
[ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]
خب همه این نرم افزار ها رو بدون نیاز به cmd و به تنهایی هم میشه با دستور Shell اجرا کرد//////// :13:نقل قول:
*************
ولی خب اگه اصرار دارید که از طریق cmd این نرم افزار ها رو اجرا کنید//// می تونید از روش زیر استفاده کنید///// :20:
اینجوری Command Line به محض اجرای دستور بسته میشه///////// :27:کد:Shell ("cmd /k دستور")
مثلاً :
Shell ("cmd /k dir > list.txt")
********
موفق باشید! :46: