تبلیغات :
ماهان سرور
آکوستیک ، فوم شانه تخم مرغی ، پنل صداگیر ، یونولیت
دستگاه جوجه کشی حرفه ای
فروش آنلاین لباس کودک
خرید فالوور ایرانی
خرید فالوور اینستاگرام
خرید ممبر تلگرام

[ + افزودن آگهی متنی جدید ]




صفحه 1 از 2 12 آخرآخر
نمايش نتايج 1 به 10 از 15

نام تاپيک: تشخیص فایلی که در حال اجرا هست؟!!!!!!

  1. #1
    پروفشنال MichaelQwerty's Avatar
    تاريخ عضويت
    Apr 2007
    محل سكونت
    روبروی مانیتور کامپیوترم
    پست ها
    770

    13 تشخیص فایلی که در حال اجرا هست؟!!!!!!

    سلام دوستان
    می خواستم بدونم چطور می شه برنامه ای که در حال اجرا هست مثلا در مسیر system32 یا هر مسیر دیگه ای رو تشخیص داد نکته: نمی خوام از Process استفاده بشه منظورم دستوراتی مثل openProcess و از این قبیل
    Last edited by MichaelQwerty; 20-12-2008 at 19:47.

  2. #2
    پروفشنال MichaelQwerty's Avatar
    تاريخ عضويت
    Apr 2007
    محل سكونت
    روبروی مانیتور کامپیوترم
    پست ها
    770

    13

    یک اندیشمند جواب ما را بدهد
    _____________________________________

  3. #3
    اگه نباشه جاش خالی می مونه
    تاريخ عضويت
    Jul 2006
    محل سكونت
    ++3D
    پست ها
    259

    پيش فرض

    سلام

    اولا بیشتر توضیح بدید. (دقیقا بگید که چه کاری میخواید انجام بدید. یه جوری بگید که ما سطح پایینها هم بفهمیم!)

    دوما چرا نمخواین از process استفاده کنید؟

  4. #4
    پروفشنال MichaelQwerty's Avatar
    تاريخ عضويت
    Apr 2007
    محل سكونت
    روبروی مانیتور کامپیوترم
    پست ها
    770

    پيش فرض

    میخوام بدونم فایلی که در مسیر خاصی وجود داره آیا اجرا شده و داره کار می کنه یا نه؟
    سرعت کار برنامه میآد پایین

  5. #5
    پروفشنال hoax3r's Avatar
    تاريخ عضويت
    Oct 2007
    پست ها
    699

    پيش فرض

    میتونی از این راه استفاده کنی، از On Error Go استفاده میکنیم که هر موقع برنامه مشکل پیدا کرد به err_handler که تعریف شده بپره

    حالا اون برنامه اگه مسیرشو داری با دستور Open در حالت Output باز کن اگه باز بشه یعنی اجرا نیست
    ولی اگه برنامه اجرا باشه چون برنامه نمیتونه دسترسی نوشتن روی فایل رو بگیره به err_handler میپره بعد هر کاری خاستی این قسمت میتونی انجام بدی

    مثلا من در این کد فایل notepad.exe رو تست کردم

    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    این راه برای زمانی هست که تو مسیر فایل رو داشته باشه اگه نه همون بهتره از توابع پروسه ها استفاده کنی

    شاد باشید

  6. 3 کاربر از hoax3r بخاطر این مطلب مفید تشکر کرده اند


  7. #6
    اگه نباشه جاش خالی می مونه بهرام_62's Avatar
    تاريخ عضويت
    Jan 2008
    پست ها
    343

    پيش فرض

    ايول
    بهترين راهه
    آموزش استفاده از پروسه ها رو هم ميزارين؟

  8. #7
    پروفشنال MichaelQwerty's Avatar
    تاريخ عضويت
    Apr 2007
    محل سكونت
    روبروی مانیتور کامپیوترم
    پست ها
    770

    پيش فرض

    دوست عزیز دستت درد نکنه ممنونم

  9. #8
    پروفشنال hoax3r's Avatar
    تاريخ عضويت
    Oct 2007
    پست ها
    699

    پيش فرض

    دوست عزیز دستت درد نکنه ممنونم
    ايول
    بهترين راهه
    آموزش استفاده از پروسه ها رو هم ميزارين؟
     
    قابل شما رو نداشت
     
    و در مورد پروسه ها، راه های مختلفی هست عمومی ترینش استفاده از این API ها هست
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
     
    به این صورت که اول با CreateToolhelp32Snapshot اصطلاحا یک snapshot از پروسه ها گرفته میشه
    بعد با توابع Process32First و Process32Next اطلاعات تک تک پروسه ها رو میگریم
    اطلاعات گرفته شده شامل این موارد هست. مثلا szExeFile نام پروسه هست و ...
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
     
    یه سورس هم میزارم برای اینکه بهتر متوجه بشین
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
     
    برای اطلاعات بیشتر اون توابع رو تو MSDN بگردین اطلاعت کاملی اونجا هست، ولی باز اگه سوالی بود بپرسین
     
    شاد باشید

  10. این کاربر از hoax3r بخاطر این مطلب مفید تشکر کرده است


  11. #9
    اگه نباشه جاش خالی می مونه بهرام_62's Avatar
    تاريخ عضويت
    Jan 2008
    پست ها
    343

    پيش فرض

    ایولا
    بعد اگر بخوام از با استفاده از همین پروسه ها یک فایل در حال اجرا رو ببندم باید چه کار کنم؟

  12. #10
    پروفشنال MichaelQwerty's Avatar
    تاريخ عضويت
    Apr 2007
    محل سكونت
    روبروی مانیتور کامپیوترم
    پست ها
    770

    پيش فرض

    Option Explicit
    'EndProcess
    Private Declare Function GetCurrentProcessId Lib "kernel32" () As Long
    Private Declare Function CreateToolhelp32Snapshot Lib "kernel32" (ByVal dwFlags As Long, ByVal th32ProcessID As Long) As Long
    Private Declare Function Process32First Lib "kernel32" (ByVal hSnapshot As Long, lppe As PROCESSENTRY32) As Long
    Private Declare Function Process32Next Lib "kernel32" (ByVal hSnapshot As Long, lppe As PROCESSENTRY32) As Long
    Private Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal dwProcessId As Long) As Long
    Private Declare Function TerminateProcess Lib "kernel32" (ByVal hProcess As Long, ByVal uExitCode As Long) As Long
    Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long
    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 * 260
    End Type
    Private Const TH32CS_SNAPALL = &HF
    Private Const PROCESS_ALL_ACCESS = &H1F0FFF
    'EndProcess
    Private Sub EndProcess(strProcessName As String)
    Dim strEXEName As String
    Dim hSnapshot As Long, lngNextProcess As Long, lngProcessHandle As Long
    Dim ProcessInfo As PROCESSENTRY32
    hSnapshot = CreateToolhelp32Snapshot(TH32CS_SNAPALL, 0)
    ProcessInfo.dwSize = Len(ProcessInfo)
    lngNextProcess = Process32First(hSnapshot, ProcessInfo)
    While lngNextProcess <> 0
    strEXEName = Left(ProcessInfo.szExeFile, InStr(ProcessInfo.szExeFile, vbNullChar) - 1)
    If UCase(strEXEName) = UCase(strProcessName) Then
    If ProcessInfo.th32ProcessID = GetCurrentProcessId Then ProcessInfo.th32ProcessID = 0
    lngProcessHandle = OpenProcess(PROCESS_ALL_ACCESS, 0&, ProcessInfo.th32ProcessID)
    TerminateProcess lngProcessHandle, 0&
    DoEvents
    End If
    lngNextProcess = Process32Next(hSnapshot, ProcessInfo)
    Wend
    CloseHandle (hSnapshot)
    End Sub
    Private Sub Command1_Click()
    EndProcess Text1.Text
    End Sub

  13. این کاربر از MichaelQwerty بخاطر این مطلب مفید تشکر کرده است


صفحه 1 از 2 12 آخرآخر

Thread Information

Users Browsing this Thread

هم اکنون 1 کاربر در حال مشاهده این تاپیک میباشد. (0 کاربر عضو شده و 1 مهمان)

User Tag List

قوانين ايجاد تاپيک در انجمن

  • شما نمی توانید تاپیک ایحاد کنید
  • شما نمی توانید پاسخی ارسال کنید
  • شما نمی توانید فایل پیوست کنید
  • شما نمی توانید پاسخ خود را ویرایش کنید
  •