دستوري در ويژوال بيسيك كه بتونه يك فايل اجرايي را اجرا كنه.

شروع موضوع توسط saalek110 ‏7 دسامبر 2005 در انجمن منطق و الگوریتم برنامه‌نویسی

  1. saalek110

    saalek110 Active Member

    ارسال‌ها:
    2,428
    تشکر شده:
    1,267
    امتیاز دستاورد:
    36
    بي زحمت دستورات اجراي فايل را در ويژوال بيسيك بگيد.
    آيا فقط اجرايي ها را ميشه اجرا كرد؟
    يا هر نوع فايلي ميشه؟
    .ممنون
    .
     
    نوشته شده توسط saalek110 در ‏7 دسامبر 2005
  2. re_elhami_27

    re_elhami_27 New Member

    ارسال‌ها:
    22
    تشکر شده:
    2
    امتیاز دستاورد:
    1
    فكر كنم كارتون با دستور winexe راه بيفته
    با تشكر
     
    نوشته شده توسط re_elhami_27 در ‏6 مارس 2006
    saalek110 از این پست تشکر کرده است.
  3. saalek110

    saalek110 Active Member

    ارسال‌ها:
    2,428
    تشکر شده:
    1,267
    امتیاز دستاورد:
    36
    ممنون.
    امتحان مي كنم.
     
    نوشته شده توسط saalek110 در ‏6 مارس 2006
  4. MnavidM

    MnavidM Active Member

    ارسال‌ها:
    2,962
    تشکر شده:
    503
    امتیاز دستاورد:
    36
    سلام.

    اینجا رو ببین [پایین Page رو نگاه کن].

    با استفاده از دستور Shell می تونید این کار رو انجام بدید .

    موفق باشی.
    نوید.
     
    نوشته شده توسط MnavidM در ‏7 مارس 2006
  5. saalek110

    saalek110 Active Member

    ارسال‌ها:
    2,428
    تشکر شده:
    1,267
    امتیاز دستاورد:
    36
    با تشكر از پاسخ اساتيد.
    صفحه اي كه مديريت فرستادند را نقل مي كنم.
    از:
    http://www.experts-exchange.com/Programming/Q_21306777.html

    dear sir ,
    how can i run an exe file from a visual basic command
    thanks
    چطور مي توانم يك فايل exe را با دستورات ويژوال بيسيك اجرا كنم؟


    You mean like another file? Use

    Shell "program.exe"
    where program.exe is another exe program.

    There are also several options around Shell - in the VB environment, it should show you the options (options including window state - foreground or background - etc.).
    اين جوري بنويس:

    کد (Text):

    Shell "program.exe"
     
    و program.exe برنامه اجرايي ديگري غير از برنامه وي بي شماست.
    دستور shell داراي option هايي هست. Option شامل حالت پنجره و بك گراند و فورگراند است.


    Hi,
    Here are some examples.
    ------------
    Most common example:
    Dim lngReturn As Long
    lngReturn = Shell("C:\Windows\Notepad.exe", vbNormalFocus)

    ----------------
    Example with cmdline switches:
    Shell "c:\crc95 -gd -k \keyfile export.txt export.crc", vbNormalNoFocus

    ------------------------
    Example with Variables:
    Dim result as Long
    mypath = App.Path
    myfile = mypath & "\Help.pdf"
    result = Shell("c:\program files\internet explorer\iexplore.exe " & myfile, vbNormalFocus)


    ---------------
    Yet another example...
    Shell("wordpad filename.rtf")
    ---------------
    Example where the shelled program is maximized.
    retval = Shell("...", vbMaximizedFocus)


    ** ** ** ** ** ** ** ** ** ** ** ** **

    در ادامه مطلب(فكر كنم) مي خواهد كه برنامه وي بي بياستد تا فايل اجرا شده خاتمه يابد. شايد مورد نياز شما نباشد توجه نكنيد.



    If you want to stop the vba-program until the started program ends, then use this code:

    ' Dieser Code benutzt die Win32-API-Funktionen
    ' CreateProcessA und WaitForSingleObject um
    ' auf das Ende eines Shell-Befehls zu warten.

    کد (Text):

    Option Compare Database
    Option Explicit

       Private Type STARTUPINFO
          cb As Long
          lpReserved As String
          lpDesktop As String
          lpTitle As String
          dwX As Long
          dwY As Long
          dwXSize As Long
          dwYSize As Long
          dwXCountChars As Long
          dwYCountChars As Long
          dwFillAttribute As Long
          dwFlags As Long
          wShowWindow As Integer
          cbReserved2 As Integer
          lpReserved2 As Long
          hStdInput As Long
          hStdOutput As Long
          hStdError As Long
       End Type

       Private Type PROCESS_INFORMATION
          hProcess As Long
          hThread As Long
          dwProcessID As Long
          dwThreadID As Long
       End Type

       Private Declare Function WaitForSingleObject Lib "kernel32" (ByVal _
          hHandle As Long, ByVal dwMilliseconds As Long) As Long

       Private Declare Function CreateProcessA Lib "kernel32" (ByVal _
          lpApplicationName As Long, ByVal lpCommandLine As String, ByVal _
          lpProcessAttributes As Long, ByVal lpThreadAttributes As Long, _
          ByVal bInheritHandles As Long, ByVal dwCreationFlags As Long, _
          ByVal lpEnvironment As Long, ByVal lpCurrentDirectory As Long, _
          lpStartupInfo As STARTUPINFO, lpProcessInformation As _
          PROCESS_INFORMATION) As Long

       Private Declare Function CloseHandle Lib "kernel32" (ByVal _
          hObject As Long) As Long

       Private Const NORMAL_PRIORITY_CLASS = &H20&
       Private Const INFINITE = -1&

    Public Sub ExecCmd(cmdline$)
          Dim proc As PROCESS_INFORMATION
          Dim start As STARTUPINFO
          Dim ReturnValue As Integer

          ' Initialisierung  der STARTUPINFO Struktur:
          start.cb = Len(start)

          ' Starten der ausf�hrbaren Anwendung:
          ReturnValue = CreateProcessA(0&, cmdline$, 0&, 0&, 1&, _
             NORMAL_PRIORITY_CLASS, 0&, 0&, start, proc)

          ' Warten bis die ausf�hrbare Anwendung bendet ist:
          Do
             ReturnValue = WaitForSingleObject(proc.hProcess, 0)
             DoEvents
             Loop Until ReturnValue <> 258

          ReturnValue = CloseHandle(proc.hProcess)
    End Sub

    Sub Testing()
          ExecCmd "NOTEPAD.EXE"
          MsgBox "Anwendung beendet"
    End Sub
     


    To use it just type "Testing" and it starts a notepad and waits until the windows closes.



    use the shell execute command to run any ,exe application......
    U will find the way to do that in the MSDN help files and believe me its truly easy.............
    u just have to use simle coding style like this
    shell(application path + nameoffile.exe)

    and do not forget to add a reference to the shell commands from the
    project -> reference dialogoue box

    فراموش نكنيد كه در قسمت reference ، منوي پروجكت ، reference ديالوگ باكس ، يك رفرنس اضافه كنيد.
    .
     
    آخرین ویرایش: ‏7 مارس 2006
    نوشته شده توسط saalek110 در ‏7 مارس 2006
  6. sh_sepehr

    sh_sepehr Member

    ارسال‌ها:
    109
    تشکر شده:
    7
    امتیاز دستاورد:
    16
    اجرای یک برنامه در ویژوال بیسیک

    سلام
    من میخواستم یه برنامه مثل مثلاً نت پد یا مثلاً یه فایل ماله Help رو در ویژوال با زدن یک کلید اجرا بشه ! میخواستم ببینم چه جوری امکان پذیره !
     
    نوشته شده توسط sh_sepehr در ‏17 آوریل 2006
  7. crash

    crash Member

    ارسال‌ها:
    31
    تشکر شده:
    6
    امتیاز دستاورد:
    6
    نوشته شده توسط crash در ‏17 آوریل 2006
  8. sh_sepehr

    sh_sepehr Member

    ارسال‌ها:
    109
    تشکر شده:
    7
    امتیاز دستاورد:
    16
    خیلی ممنون! کارمو تا حدودی راه انداخت !
    ولی این فقط فایلهای exe رو اجرا میکنه ! من میخوام یک فایل برام با پسوند Hlp یا CHM که یک فایل کمکی هست رو اجرا کنه ! وقتی اینحا میزنم خطا میده !
     
    نوشته شده توسط sh_sepehr در ‏18 آوریل 2006
  9. nimja

    nimja Member

    ارسال‌ها:
    74
    تشکر شده:
    23
    امتیاز دستاورد:
    6
    کمک برای یک کار ساده در وی بی

    سلام
    من در وی بی یک Command دارم.میخوام وقتی روش کلیک کنم یه فایل exe به نام test.exe را در درایو c (c:\test.exe) اجرا کنه و در یک پنجره جدید باز کنه. چه کدی را باید بنویسم؟
    ممنون
     
    نوشته شده توسط nimja در ‏15 اکتبر 2008
  10. EMIRATES

    EMIRATES Active Member

    ارسال‌ها:
    2,151
    تشکر شده:
    1,046
    امتیاز دستاورد:
    36
    با سلام

    با دستور Shell میتونید این کار رو انجام بدید.

    shell "C:\test.exe"

    اتوماتیک در یک پنجره جدید باز میشه.

    با تشکر.
     
    نوشته شده توسط EMIRATES در ‏16 اکتبر 2008
  11. explode

    explode New Member

    ارسال‌ها:
    3
    تشکر شده:
    0
    امتیاز دستاورد:
    1
    با سلام خدمت تمام اساتید عزیز
    من یک مشکل تو vb دارم اونم اینه که میخوام یک ادرس از کاربر بگیرم بعد کاربر اون ادرس رو که داد مثلآ یک فایل تکست یا یک عکس یا یک برنامه exe اجرا بشه میخوام همه اینها رو ساپورت کنه از shell هم استفاده کردم ولی فقط مخصوص یک کاره تازه جواب هم نمیدهد میگه فایل پیدا نشد!!!!!!!!!
    ممنون میشم جواب بدید
     
    نوشته شده توسط explode در ‏18 اکتبر 2008
  12. EMIRATES

    EMIRATES Active Member

    ارسال‌ها:
    2,151
    تشکر شده:
    1,046
    امتیاز دستاورد:
    36
    با سلام

    دوست عزیز تاپیک ماله 2005 ئه!!

    شما باید درخواستتونو تو یه تاپیک جدید مطرح کنید.

    با تشکر.
     
    نوشته شده توسط EMIRATES در ‏18 اکتبر 2008
  13. saalek110

    saalek110 Active Member

    ارسال‌ها:
    2,428
    تشکر شده:
    1,267
    امتیاز دستاورد:
    36
    Emirates جان برای یک موضوع واحد تاپیکهای متعدد داشتن باعث سردگمی و اتلاف وقت است. من موضوعات را در تاپیکهای سنجاق شده لیست کردم تا باعث سهولت دسترسی بشود. اجازه دهید این موضوع در این تاپیک دنبال شود. البته در فرومهای دیگر این قانونی که شما فرمودید هست ولی دیده شده مثلا برای یک سئوال واحد دهها بار تاپیک زده شده.
     
    نوشته شده توسط saalek110 در ‏18 اکتبر 2008
  14. the_king

    the_king مدیرکل انجمن

    ارسال‌ها:
    10,357
    تشکر شده:
    10,310
    امتیاز دستاورد:
    113
    ده جا هم در مورد نحوه فراخوانی فایلهای غیر اجرایی بنویسیم، باز نفر یازدهم همین سوال رو می کنه.
    حالا چه ده تا گفتگو قبلی وجود داشته باشه، چه یه دونه گفتگو.
    وقتی قبل از پرسیدن سوالشون، زحمت جستجو بخودشون ندن چه فایده؟

    برای فراخوانی فایلهای غیر اجرایی مثل txt یا mp3 یا pdf و همچنین فراخوانی یک فایل صرفا توسط یک برنامه خاص
    استفاده از تابع ShellExecute موجود در API ویندوز را توصیه می کنم.

    برای بکارگیری ساده تر این تابع، من یک Module با نام ModuleShell ساختم که به همراه یک پروژه نمونه ضمیمه
    این پست می باشد. در این Module دو تابع عمومی را ایجاد کرده ام :

    تابع اول
    OpenFile

    این تابع دو پارامتر دارد که اولی مسیر یک فایل است که قرار است بازش کنیم، مثلا C:\File.txt
    پارامتر دوم این تابع اختیاری است و مشخص می کند که فایل برای چه منظوری باز شود، مقادیر قابل استفاده
    بستگی به نوع فایل و تعاریف سیستم عامل دارد ولی مقادیر عمومی اینها هستند :
    "open"
    "edit"
    "print"
    "explore"

    مثلا اگر قصد باز کردن عادی یک فایل را داریم از مقدار "open" استفاده می کنیم.
    یا اگر قصد ویرایش کردن یک فایل را داریم از مقدار "edit" استفاده می شود.
    یا اگر قصد چاپ کردن یک فایل را داریم از مقدار "print" استفاده می شود.
    یا اگر بخواهیم یک پوشه را در پنجره Explorer ویندوز باز کنیم از مقدار "explore" استفاده می شود.

    اگر مقدار پارامتر دوم را مشخص نکنیم، فایل با متد پیشفرض باز می شود که در اغلب موارد شبیه عملکرد "open" است.

    مثال 1 :
    فایل C:\Text1.txt را بصورت عادی باز می کنیم.
    کد (Text):

    [B]OpenFile[/B] "C:\Text1.txt"
     
    مثال 2 :
    فایل C:\Text1.txt را برای چاپ کردن باز می کنیم.
    کد (Text):

    [B]OpenFile[/B] "C:\Text1.txt", "print"
     
    مثال 3 :
    پوشه C:\MyFolder را با Explorer باز می کنیم.
    کد (Text):

    [B]OpenFile[/B] "C:\MyFolder", "explore"
     
    تابع دوم
    OpenWithFile

    این تابع برعکس تابع قبلی مشخص می کند که فلان فایل با کدام برنامه باز شود. مثلا می توانید مشخص کنید که
    فایل mp3 فقط با WinAmp باز شود. این تابع هم دو پارامتر دارد که اولی نام برنامه ای است که می خواهید فایل
    را با آن باز کنید، مثلا C:\Program Files\Winamp\winamp.exe

    پارامتر دوم مسیر فایلی است که قرار است باز شود، مثلا C:\Track01.mp3

    مثال 1 :
    فایل C:\Track01.mp3 را با WinAmp باز می کنیم.
    کد (Text):

    [B]OpenWithFile[/B] Environ("ProgramFiles") & "\WinAmp\WinAmp.exe", "C:\Track01.mp3"
     
    توجه کنید که بجای استفاده مستقیم از مسیری مثل C:\Program Files از تابع Environ("ProgramFiles") استفاده شده است.
    با این ترفند، همواره مسیر صحیح Program Files را در اختیار خواهیم داشت که ممکن است در کامپیوتر های مختلف
    یکسان نباشد.

    مثال 2 :
    فایل C:\Track01.mp3 را با Windows Media Player باز می کنیم.
    کد (Text):

    [B]OpenWithFile[/B] Environ("ProgramFiles") & "\Windows Media Player\wmplayer.exe", "C:\Track01.mp3"
     
    پروژه به همراه فایل اجرایی و یک فایل wav نمونه و یک فایل txt نمونه ضمیمه این پست شده است. ابتدا محتویات فایل
    zip را در یک پوشه باز کنید و پروژه را در داخل آن پوشه اجرا نمایید تا در استفاده از فایلهای ضمیمه شده در برنامه
    مشکلی نداشته باشید.
     

    پیوست ها:

    • OpenFile.zip
      اندازه فایل:
      کیلوبایت 32
      نمایش ها:
      117
    نوشته شده توسط the_king در ‏18 اکتبر 2008
    arash.arya43 و i_lover3000 از این پست تشکر کرده اند.
  15. hsshhchb

    hsshhchb New Member

    ارسال‌ها:
    1
    تشکر شده:
    0
    امتیاز دستاورد:
    1
    خیلی ممنون از برنامتون خیلی به دردم خورد :wink:
    ماژول خیلی به دردبخوریه :rose:
     
    نوشته شده توسط hsshhchb در ‏28 اکتبر 2008
  16. rezabehmanesh

    rezabehmanesh New Member

    ارسال‌ها:
    6
    تشکر شده:
    0
    امتیاز دستاورد:
    1
    سلام اساتید بزرگوار
    من شدیدا نیازمند کد vba هستم که بتونه یک فایل نرم افزار gams گمز را اجرا کنه.میخوام این دستور را در اکسل بنویسم که از طریق یک دکمه فایل مورد نظر را باز و اجرا کنه.
    دستور shell نمیتونه فایل گمز مثلا file.gms را باز کنه.خطا میده. یک تابعی بنام gamsrun در جستجو پیدا کردم ولی باز خطا میده.ممنون میشم راهنمایی کنید.
     
    نوشته شده توسط rezabehmanesh در ‏3 جولای 2017
  17. the_king

    the_king مدیرکل انجمن

    ارسال‌ها:
    10,357
    تشکر شده:
    10,310
    امتیاز دستاورد:
    113
    شما فقط کافیه بدونید که اون فایل Gams.exe روی سیستم تون جا است، مسیر فایلش رو که بدونید دیگه بقیه اش راحته. همون Shell میتونه فایل اجرایی gams رو با مسیر یک فایل gms که پشت سرش نوشته میشه اجرا کنه :
    کد (Text):
    Public Sub RunGams(ByVal path As String)
        Shell """C:\Program Files (x86)\Gams\gams.exe"" """ + path + """", vbNormalFocus
    End Sub
    مثلا اگه مسیر C:\Program Files (x86)\Gams\gams.exe درست باشه با این فرمان میشه فایل test.gms رو باز کرد :
    کد (Text):
        RunGams "C:\My Folder\test.gms"
     
    تو همون منوی Start ویندوز اگه روی Gams راست کلیک کنید و Properties اش رو انتخاب کنید تو مسیر Target نوشته شده که فایل اجراییش کجا است.
     
    نوشته شده توسط the_king در ‏4 جولای 2017
    arash.arya43، rezabehmanesh و SajjadKhati از این ارسال تشکر کرده اند.
  18. rezabehmanesh

    rezabehmanesh New Member

    ارسال‌ها:
    6
    تشکر شده:
    0
    امتیاز دستاورد:
    1
    دوست عزیز بسیار سپاسگزارم از راهنماییتون خیلی کمک کردید. ایا دستوری هست که برنامه مورد نظر اجرا بشه؟ با این دستورات فقط فایل تست را باز میکنه .من میخوام برنامه خودش اجرا بشه برای فایل متلب چنین دستوری پیدا کردم که همزمان باز میشه اجرا میشه و برنامه بسته میشه.ممنون میشم راهنمایی کنید
     
    نوشته شده توسط rezabehmanesh در ‏4 جولای 2017
  19. the_king

    the_king مدیرکل انجمن

    ارسال‌ها:
    10,357
    تشکر شده:
    10,310
    امتیاز دستاورد:
    113
    در راهنماش که نوشته اجراش می کنه، نه فقط اینکه بازش کنه. من خودم gams رو ندارم ولی راهنماش اینطور میگه :
    Running GAMS from the command line

    Alphabetic list of all GAMS command line parameters
     
    نوشته شده توسط the_king در ‏4 جولای 2017
    rezabehmanesh و SajjadKhati از این پست تشکر کرده اند.
  20. rezabehmanesh

    rezabehmanesh New Member

    ارسال‌ها:
    6
    تشکر شده:
    0
    امتیاز دستاورد:
    1
    بسیار ممنون
     
    نوشته شده توسط rezabehmanesh در ‏4 جولای 2017

به اشتراک بگذارید