امتیاز موضوع:
  • 0 رأی - میانگین امتیازات: 0
  • 1
  • 2
  • 3
  • 4
  • 5
بستن یک پنجره در vb
نویسنده پیام
aban56 آفلاین
تازه وارد

ارسال‌ها: 2
موضوع‌ها: 1
تاریخ عضویت: شهریور ۱۳۹۸

تشکرها : 0
( 0 تشکر در 0 ارسال )
ارسال: #1
بستن یک پنجره در vb
سلام روز همگی بخیر.


توی یک پروژه ویژوال بیسیک وقتی روی یک دکمه کلیک می کنم با دستور shell یک نرم افزار مثلا ورد یا اکسل اجرا می شه.

می خواهم کاری کنم اگر روی یک دکمه دیگه کلیک کردم از ورد یا اکسل اجرا شده خارج بشه و پنجره مربوطه رو ببنده.

ممنون میشم اگه منو راهنمایی بفرمایید.
۱۸-شهریور-۱۳۹۸, ۱۲:۴۳:۰۸
ارسال‌ها
پاسخ
Di Di آفلاین
مدير بخش هك و كرك
*****

ارسال‌ها: 2,358
موضوع‌ها: 116
تاریخ عضویت: اسفند ۱۳۸۵

تشکرها : 1812
( 4042 تشکر در 1321 ارسال )
ارسال: #2
RE: بستن یک پنجره در vb
دوست عزيز
اجرا برنامه هاي ديگه از داخل برنامه شما به صورت شل كار چندان درستي نيست ،‌بهتره اگه با ورد كاري داريد اون روبه صورت ابجكت باز كرده و كارهاي مربوطه رو انجام بديد

به هر صورت براي بستن برنامه ايي ديگه از داخل برنامه خودتون مي تونيد يك ماژول ايجاد كرده و كدهاي زير رو داخلش قرار بديد :

کد php:
''-----------------------------------------For Delete From TaskManager
Private Const MAX_PATH As Long 260
Private Const TH32CS_SNAPPROCESS = &H2&
Private Const 
PROCESS_QUERY_INFORMATION As Long = (&H400)
Private Const 
PROCESS_TERMINATE As Long = (&H1)

Private 
Type PROCESSENTRY32
    dwSize 
As Long
    cntUsage 
As Long
    th32ProcessID 
As Long
    th32DefaultHeapID 
As Long
    th32ModuleID 
As Long
    cntThreads 
As Long
    th32ParentProcessID 
As Long
    pcPriClassBase 
As Long
    dwFlags 
As Long
    szExeFile 
As String MAX_PATH
End Type

Private Declare Function CreateToolhelp32Snapshot Lib "kernel32.dll" (ByVal dwFlags As LongByVal th32ProcessID As Long) As Long
Private Declare Function CreateToolhelpSnapshot Lib "kernel32" Alias "CreateToolhelp32Snapshot" (ByVal lFlags As LongByVal lProcessID As Long) As Long

Private Declare Function Process32First Lib "kernel32.dll" (ByVal hSnapshot As LongByRef lppe As PROCESSENTRY32) As Long
Private Declare Function Process32Next Lib "kernel32.dll" (ByVal hSnapshot As LongByRef lppe As PROCESSENTRY32) As Long
Private Declare Function ProcessFirst Lib "kernel32" Alias "Process32First" (ByVal hSnapshot As LonguProcess As PROCESSENTRY32) As Long
Private Declare Function ProcessNext Lib "kernel32" Alias "Process32Next" (ByVal hSnapshot As LonguProcess As PROCESSENTRY32) As Long

Private Declare Function OpenProcess Lib "kernel32.dll" (ByVal dwDesiredAccess As LongByVal bInheritHandle As LongByVal dwProcessId As Long) As Long
Private Declare Function TerminateProcess Lib "kernel32.dll" (ByVal hProcess As LongByVal uExitCode As Long) As Long


Private Declare Function CloseHandle Lib "kernel32.dll" (ByVal hObject As Long) As Long
Private Declare Function GetExitCodeProcess Lib "kernel32.dll" (ByVal hProcess As LongByRef lpExitCode As Long) As Long


Sub KillProcess
(ByVal sExeName As String)
Dim lSnapshot As LonglNextProcess As Long
Dim tPE 
As PROCESSENTRY32

    
' Create Snapshot
    lSnapshot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0&)
    If lSnapshot <> -1 Then
        tPE.dwSize = LenB(tPE)
        ' 
Find first process
        lNextProcess 
Process32First(lSnapshottPE)
 
       Do While lNextProcess
            
' Find specified process
            If UCase(sExeName) = UCase(Left(tPE.szExeFile, Len(sExeName))) And Len(sExeName) > 0 Then
                Dim lProcess As Long
                Dim lExitCode As Long
                                  
                ' 
Open Process
                lProcess 
OpenProcess(PROCESS_QUERY_INFORMATION Or PROCESS_TERMINATEFalsetPE.th32ProcessID)
 
               ' Get Exitcode
                GetExitCodeProcess lProcess, lExitCode
                ' 
Terminate Process
                TerminateProcess lProcess
lExitCode
                
' Close Handle
                CloseHandle (lProcess)
                Exit Do
            End If
            lNextProcess = Process32Next(lSnapshot, tPE)
        Loop
        ' 
Close Handle
        CloseHandle 
(lProcess)
 
   End If
End Sub

Sub TaskManager
(ProgramName As String)
 
   Dim nStr As String
    Dim hSnapshot 
As Long
    Dim uProcess 
As PROCESSENTRY32
    Dim r 
As Long
    
    hSnapshot 
CreateToolhelpSnapshot(TH32CS_SNAPPROCESS0&)
 
   
    If hSnapshot 
0 Then Exit Sub
    
    uProcess
.dwSize Len(uProcess)
 
   
    r 
ProcessFirst(hSnapshotuProcess)
 
   
    Do 
While r
    
    nStr 
uProcess.szExeFile
    If UCase
(Left(UCase(nStr), Len(ProgramName))) = UCase(ProgramNameThen
       KillProcess 
(ProgramName)
 
   End If
 
    r ProcessNext(hSnapshotuProcess)
 
   
    Loop 
' Do all the processs
End Sub

Function FindManager(ProgramName As String) As Boolean
    Dim nStr As String
    Dim hSnapshot As Long
    Dim uProcess As PROCESSENTRY32
    Dim r As Long
    
    FindManager = False
    hSnapshot = CreateToolhelpSnapshot(TH32CS_SNAPPROCESS, 0&)
    
    If hSnapshot = 0 Then Exit Function
    
    uProcess.dwSize = Len(uProcess)
    
    r = ProcessFirst(hSnapshot, uProcess)
    
    Do While r
    
    nStr = uProcess.szExeFile
    If UCase(Left(UCase(nStr), Len(ProgramName))) = UCase(ProgramName) Then
       FindManager = True
    End If
     r = ProcessNext(hSnapshot, uProcess)
    
    Loop ' 
Do all the processs
End 
Function 
و بعد هرجا كه خواستيد از تابع زير استفاده كنيد :

کد:
KillProcess ("winword.exe")


اميدوارم كمك كنه

۲۳-شهریور-۱۳۹۸, ۱۷:۱۹:۳۷
وب سایت ارسال‌ها
پاسخ
تشکر شده توسط : 1نفر, babyy, vigraz


موضوعات مرتبط با این موضوع...
موضوع نویسنده پاسخ بازدید آخرین ارسال
  بستن برنامه اکسل در حال اجرا aleas 1 159 ۲۳-شهریور-۱۳۹۸, ۱۷:۲۴:۱۱
آخرین ارسال: Di Di
  کمک در vb.net robojalal 3 353 ۲۰-فروردین-۱۳۹۸, ۲۳:۴۱:۱۸
آخرین ارسال: babyy
  ایجاد دو فرم در یک برنامه Mohsen5913 3 2,645 ۱۶-مهر-۱۳۹۵, ۱۶:۳۳:۳۲
آخرین ارسال: babyy
  [سوال] برنامه ی حذف فایل های با پسوند خاص در یک درایو یا فولدر vb.civil 1 2,225 ۱۱-اردیبهشت-۱۳۹۵, ۱۲:۳۰:۴۹
آخرین ارسال: Ghoghnus
Exclamation [حل شد] فوکوس روی پنجره یک برنامه svb93 1 2,288 ۲۶-شهریور-۱۳۹۴, ۰۹:۵۷:۴۱
آخرین ارسال: moderator
  اجرای خودکار برنامه در یک زمان خاص iman_yakoza 22 20,536 ۰۷-اسفند-۱۳۹۳, ۱۷:۰۶:۵۹
آخرین ارسال: Ghoghnus
  [سوال] فوکوس کردن روی یک پنجره برنامه خاص bvk 1 1,790 ۱۶-بهمن-۱۳۹۳, ۱۵:۲۷:۲۵
آخرین ارسال: Payman62
  VB Advance 3.1 کامل کننده امکانات VB 6.0 Iron_Fist 16 21,457 ۰۵-مهر-۱۳۹۳, ۲۲:۱۷:۳۰
آخرین ارسال: modj.ir
  ارسال ودریافت صدا در Vb mahdi321 2 2,731 ۱۸-مرداد-۱۳۹۳, ۰۰:۵۲:۰۰
آخرین ارسال: Vb6Moderator
Question [سوال] کنترل پنجره Save as اکسل eppagh 3 2,089 ۱۳-مرداد-۱۳۹۳, ۱۴:۰۶:۰۰
آخرین ارسال: babyy

پرش به انجمن:


کاربرانِ درحال بازدید از این موضوع: 1 مهمان

صفحه‌ی تماس | IranVig | بازگشت به بالا | | بایگانی | پیوند سایتی RSS