آژانس هواپیمایی
pop up

مينيمايز شدن پنجره هنگام اجراي برنامه ها

شروع موضوع توسط sylvester ‏6 سپتامبر 2007 در انجمن Visual Basic 6

  1. sylvester

    sylvester Registered User

    تاریخ عضویت:
    ‏26 مارس 2007
    نوشته ها:
    489
    تشکر شده:
    54
    محل سکونت:
    ترکیه
    با اجازه مديران من تاپيك جاي اشتباه زده بودم آوردمش اينجا!
    .................
    سلام! من يه فرم دارم كه دو تا كامند باتم داره. مثلا كامند يك برنامه calculator ويندوز رو ران ميكنه و دومي nopad رو
    ميخوام فرمم طوري باشه كه وقتي هر يك ازاين دو برنامه ران ميشن خودش minimize بشه؟ چطوري كدش رو بنويسم؟؟؟
    البته فكر كنم بايد ار api كامنده
    Private Declare Function WaitForSingleObject Lib "kernel32.dll" (ByVal hHandle As Long, ByVal dwMilliseconds As Long) As Long
    بالا استفادم كنم. ولي بازم نميدونم كد رو چطور بنويسم
     
  2. Shine

    Shine Registered User

    تاریخ عضویت:
    ‏3 ژوئن 2007
    نوشته ها:
    122
    تشکر شده:
    12
    Form1.WindowState = vbMinimized
     
  3. sylvester

    sylvester Registered User

    تاریخ عضویت:
    ‏26 مارس 2007
    نوشته ها:
    489
    تشکر شده:
    54
    محل سکونت:
    ترکیه
    سلام!
    با اضافه كردن اين كد در هر commant bottom درسته كه پنجره فرم ما minimize ميشه و اون برنامه اجرا ولي..
    من ميخوام كه وقتي اون برنامه close ميشه پنجره فرم ما دوباره restore بشه كه اين كد جوابگو نيست. اميدوارم متوجه مشكل من شده باشيد:(
     
  4. m3hrz4d

    m3hrz4d Registered User

    تاریخ عضویت:
    ‏21 سپتامبر 2005
    نوشته ها:
    620
    تشکر شده:
    1
    محل سکونت:
    اصفهان
    سلام.
    یه راهش اینه که با استفاده از CreateProcess برنامه ی مورد نظر رو اجرا کنیم. با این کار تا وقتی برنامه مورد نظر اجرا میشه برنامه ما موقف میشه و کاری نمیتونه انجام بده , در واقع تابع WaitForSingleObject هست که برنامه ی ما رو منتظر میگذاره تا وقتی که برنامه ای که اجرا شده بسته بشه :

    کد:
    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 CreateProcess Lib "kernel32" Alias "CreateProcessA" (ByVal lpApplicationName As String, ByVal lpCommandLine As String, lpProcessAttributes As Any, lpThreadAttributes As Any, ByVal bInheritHandles As Long, ByVal dwCreationFlags As Long, lpEnvironment As Any, ByVal lpCurrentDriectory As String, lpStartupInfo As STARTUPINFO, lpProcessInformation As PROCESS_INFORMATION) As Long
    Private Declare Function WaitForSingleObject Lib "kernel32" (ByVal hHandle As Long, ByVal dwMilliseconds As Long) As Long
    Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long
    
    Private Sub Command1_Click()
        
        Dim si As STARTUPINFO
        Dim pi As PROCESS_INFORMATION
        Dim AppPath As String
        
        
        Me.WindowState = vbMinimized
        
        AppPath = "c:\windows\notepad.exe"
        si.cb = Len(si)
            
        If (CreateProcess(AppPath, _
            AppPath, ByVal 0&, _
            ByVal 0&, _
            False, _
            0, _
            ByVal 0&, _
            vbNullString, _
            si, _
            pi) = False) Then
          
            MsgBox "Unable to execute " & AppPath
            Exit Sub
            
        End If
    
        
        Call WaitForSingleObject(pi.hProcess, -1)
    
        Call CloseHandle(pi.hProcess)
        Call CloseHandle(pi.hThread)
    
        Me.WindowState = vbNormal
        
    End Sub
    
    
     
  5. sylvester

    sylvester Registered User

    تاریخ عضویت:
    ‏26 مارس 2007
    نوشته ها:
    489
    تشکر شده:
    54
    محل سکونت:
    ترکیه