سلام b7rv1 عزيز
. ممنون از لطفت، خوشحال ميش.م بتوانم كمكي كنم....
....
به برنامه منتقل ميكنم ايراد ميگيره!!!؟؟؟
.مثلا اين كد:
>Tools.Shell /output cmd /c dir /s /b """c:\My Documents\*.doc"""
....
. من متوجه نشدم اين Tools.Shell چيه ديگه!؟ اما تابع Shell به شكل عادي قابل استفاده هست. البته شايد در نسخه 2005 نياز باشه كه از يه سري Namespace قبلش استفاده نماييد. (مثلن چيزي شبيه اين System.Shell) اما در 2008 تابع Shell Function در MSDN به اين شكل هست:
لينك را مطالعه نماييد. پس Syntax اين تابع به شكل زير هست:
کد:
Public Function Shell( _
ByVal PathName As String, _
Optional ByVal Style As AppWinStyle = AppWinStyle.MinimizedFocus, _
Optional ByVal Wait As Boolean = False, _
Optional ByVal Timeout As Integer = -1 _
) As Integer
. در مثالي ديگر به نمونه كدي كه نوشتم توجه نماييد:
کد:
[LEFT][COLOR=Blue]Public Class[/COLOR] Form1
[COLOR=Blue]Private Sub[/COLOR] Button1_Click([COLOR=Blue]ByVal [/COLOR]sender [COLOR=Blue]As [/COLOR]System.Object, [COLOR=Blue]ByVal [/COLOR]e [COLOR=Blue]As [/COLOR]System.EventArgs) [COLOR=Blue]Handles[/COLOR] Button1.Click
Shell("[COLOR=DarkRed]c:\1.bat[/COLOR]")
Shell("[COLOR=DarkRed]mem /c > c:\2mem.txt[/COLOR]", AppWinStyle.Hide, [COLOR=Blue]True[/COLOR])
Shell("[COLOR=DarkRed]c:\windows\notepad.exe c:\2mem.txt[/COLOR]", AppWinStyle.NormalFocus)
[COLOR=Blue] End Sub
End Class[/COLOR][/LEFT]
. در كد تابع Sell اول فايل
o1.batرا اجرا ميكند. نوشتن فايل Batch فايل خيلي سادست! يك فايل Text معمولي درست نماييد، سپس پسوندش را به bat تغيير دهيد! حالا فرمانهايي كه در Prompt داس پشت سر هم مينويسيد را درون آن و در خطوط مجزا بنويسيد. براي اينكه در زمان اجراي فايل bat، خود دستورات نشان داده نشوند
ميتوانيد در خط اول دستور
o@Echo off را بنويسيد. براي مثال كد موجود در فايل
o1.batاين هست:
o
@ECHO OFF
DIR /W > C:\1dirC.txt
DIR C:\Windows >C:\1dirWin.txt
DIR "C:\Documents and Settings" > C:\1dirDocs.txt
MD C:\Test
CD C:\Test
C:
DIR >C:\1dirTest.txt
. در Shell دوم هم خروجي برنامه MEM در فايلي ذخيره ميشه اما چون قرار نتيجه آن در Shell بعدي در برنامه Notepad ويندوز نمايش داده بشه پس من پارامتر سوم را True گذاشتم كه به معني توقف در همين دستور هست تا زماني كه كار برنامه صدا زده شده در آن به اتمام نرسيده است.
. در Shell سوم هم كه برنامه Notepad فايل خروجي دستور MEM را از Shell پيشين را نمايش ميدهد.
. توجه نماييد زماني نياز هست از " هاي چندتايي استفاده نماييد كه در بين Path (مسير) برنامه يا نام آن يا پارامترها و سويچهاي آن (اگر پارامترهايش چند حرفي و چند كلمهاي باشند) Space (فاصله) وجود داشته باشد.
پ.ن.: (چون Shell يك تابع هست و مقداري را باز ميگرداند، كه در اينجا يه عدد Integer هست و نشان دهنده Process ID برنامه هست، اگر نميخواهيد از مقدار بازگشتي آن استفاده نماييد، بهتر هست قبل از نام اين تابع دستور Call را بنويسيد، كه اصوليتر و صحيتر باشه!)
موفق باشيد.
خداحافظ
IgImAx
88/04/01