نمایش نتایج 1 تا 9 از 9

نام تاپیک: بستن برنامه با استفاده از مسیر

  1. #1

    بستن برنامه با استفاده از مسیر

    باسلام
    من چطور میتونم یه نرم افزار رو با استفاده از مسیر نرم افزار ببندم؟
    توجه داشته باشید که چون برنامه در هنگام خروج log تولید میکنه واسه همین نمیخوام برنامه از طریق task manager کیل یا بسته بشه
    تاکیدم بر روی مسیر برنامه هست چون از این برنامه دو تا رو سیستم نصب شده و هنگامیکه هر دو برنامه باز هست من میوام یکی از اونهارو با استفاده از مسیر برنامه ببندم
    ممنون میشم راهنماییم کنید.

  2. #2
    کاربر دائمی
    تاریخ عضویت
    تیر 1391
    پست
    1,034

    نقل قول: بستن برنامه با استفاده از مسیر

    نقل قول نوشته شده توسط ali190 مشاهده تاپیک
    باسلام
    من چطور میتونم یه نرم افزار رو با استفاده از مسیر نرم افزار ببندم؟
    توجه داشته باشید که چون برنامه در هنگام خروج log تولید میکنه واسه همین نمیخوام برنامه از طریق task manager کیل یا بسته بشه
    تاکیدم بر روی مسیر برنامه هست چون از این برنامه دو تا رو سیستم نصب شده و هنگامیکه هر دو برنامه باز هست من میوام یکی از اونهارو با استفاده از مسیر برنامه ببندم
    ممنون میشم راهنماییم کنید.
    اول لیست پروسه های در حال اجرا رو بدست میارید. بعد سعی میکنید بازشون کنید که ببینید مسیر فایل اجرایی شون چیه.
    هر کدوم که با دسترسی مناسب کار ما باز شدنی باشن رو باز می کنید و چک می کنید که آیا مسیر فایل اجرایی شون اونی که میخواهید هست یا نه.
    اگر همون مسیر بود بهش فرمان بسته شدن میدید، بزرگی و کوچیکی حروف در مسیر مهم نیست ولی حتما مسیر کامل باشه چون دارید با مسیر کامل مقایسه می کنید، در مسیر نباید موارد نسبی مثل \..\ باشه :

    Private Const MAX_PATH As Long = 260
    Private Const PROCESS_QUERY_INFORMATION As Long = &H400
    Private Const PROCESS_VM_READ As Long = &H10
    Private Const PROCESS_TERMINATE As Long = &H1

    Private Declare Function CloseHandle Lib "kernel32.dll" (ByVal hObject As Long) As Long
    Private Declare Function GetModuleFileNameExW Lib "psapi.dll" (ByVal hProcess As Long, ByVal hModule As Long, ByVal lpFilename As Long, ByVal nSize As Long) As Long
    Private Declare Function OpenProcess Lib "kernel32.dll" (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal dwProcessId As Long) As Long
    Private Declare Function EnumProcesses Lib "psapi.dll" (ByRef lpidProcess As Long, ByVal cb As Long, ByRef cbNeeded As Long) As Long
    Private Declare Function TerminateProcess Lib "kernel32.dll" (ByVal hProcess As Long, ByVal uExitCode As Long) As Long

    Private Sub CloseApp(ByVal path As String)
    Dim idProcess() As Long
    Dim cbNeeded As Long
    Dim cbSize As Long
    Dim i As Integer
    Dim lastIndex As Integer
    Dim handle As Long
    Dim filenameLength As Long
    ReDim idProcess(0 To 1000)
    Dim filenameBuffer() As Byte
    Dim filename As String
    Do
    cbSize = 4 * (UBound(idProcess) + 1)
    If EnumProcesses(idProcess(0), cbSize, cbNeeded) = 0 Then
    MsgBox "Error"
    Exit Sub
    End If
    If cbNeeded < cbSize Then
    Exit Do
    End If
    ReDim idProcess(0 To UBound(idProcess) + 1000)
    Loop While True
    lastIndex = cbNeeded \ 4 - 1
    For i = 0 To lastIndex
    handle = OpenProcess(PROCESS_QUERY_INFORMATION Or PROCESS_VM_READ Or PROCESS_TERMINATE, 0, idProcess(i))
    If handle <> 0 Then
    ReDim Preserve filenameBuffer(0 To MAX_PATH * 2)
    filenameLength = GetModuleFileNameExW(handle, 0, VarPtr(filenameBuffer(0)), MAX_PATH * 2)
    If filenameLength > 0 Then
    ReDim Preserve filenameBuffer(0 To filenameLength * 2 - 1)
    filename = filenameBuffer
    If StrComp(filename, path, vbTextCompare) = 0 Then
    TerminateProcess handle, 0
    End If
    End If
    CloseHandle handle
    End If
    Next
    End Sub

    Private Sub Command1_Click()
    CloseApp "c:\Windows\System32\calc.exe"
    End Sub

  3. #3

    نقل قول: بستن برنامه با استفاده از مسیر

    سلام
    کدی که گذاشتید کار نمیکنه

  4. #4
    کاربر دائمی
    تاریخ عضویت
    تیر 1391
    پست
    1,034

    نقل قول: بستن برنامه با استفاده از مسیر

    نقل قول نوشته شده توسط ali190 مشاهده تاپیک
    سلام
    کدی که گذاشتید کار نمیکنه
    با برنامه ماشین حساب ویندوز امتحان کردید یا مسیر خاص برنامه خودتون؟

  5. #5

    نقل قول: بستن برنامه با استفاده از مسیر

    برنامه ماشین حساب رو هم نمیبنده باهمون مسیر

  6. #6
    کاربر دائمی
    تاریخ عضویت
    تیر 1391
    پست
    1,034

    نقل قول: بستن برنامه با استفاده از مسیر

    نقل قول نوشته شده توسط ali190 مشاهده تاپیک
    برنامه ماشین حساب رو هم نمیبنده باهمون مسیر
    مسیر برنامه ماشین حساب که در سیستم شما همونه؟ درسته؟
    می توانید بین سطر TerminateProcess handle, 0 و If قبلش یک MsgBox با متن دلخواه قرار بدید که ببینیم پروسه رو پیدا می کنه ولی نمیتونه ببندتش یا اصلا پیداش نمی کنه.

  7. #7

    نقل قول: بستن برنامه با استفاده از مسیر

    جواب نمیده

  8. #8

    نقل قول: بستن برنامه با استفاده از مسیر

    برای بستن برنامه با کدهای api می شه مثل hwnd و یا عنوان پنجره برنامه! ولی احتمال می دم خواسته شما اینه که برنامتون زمانی اجراست دوبار اجرا نشه ؟! ک فک کنم باید پراپرتیس برنامه رو دستکاری کنی! چون توی دات نت این مورد توی پراپرتیس پروژه است.
    اگر هم که منظورتون بستن برنامه غیر هست که کدهای api بیشترین کاربرد رو داره. (FindWindow, ...)

    https://barnamenevis.org/showthread....ه-خارجی


    http://www.vbforums.com/showthread.php?515476-RESOLVED-VB6-Close-window-by-its-window-name


    حالا سوال اینجاست که چرا از طریق آدرس؟!؟
    آخرین ویرایش به وسیله ROSTAM2 : یک شنبه 10 آذر 1398 در 09:42 صبح

  9. #9

    نقل قول: بستن برنامه با استفاده از مسیر

    سلام
    چون من از اون برنامه در دو جای ویندوزم نصب کردم و میخوام فقط یک برنامه که طبیعتا با آدرسش منحصر به فرد میشه بسته بشه

تاپیک های مشابه

  1. سوال: استفاده از کوکی و سیشن
    نوشته شده توسط mehran788 در بخش PHP
    پاسخ: 17
    آخرین پست: یک شنبه 22 دی 1392, 11:30 صبح

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •