مشاهده دست آورد نظرسنجی: نظرتون در باره ی این تاپیک چیه؟

رای دهنده
2. شما نمی توانید در این رای گیری رای بدهید
  • خیلی خوب

    1 50.00%
  • خوب

    0 0%
  • متوسط

    0 0%
  • ضعیف

    1 50.00%
نمایش نتایج 1 تا 5 از 5

نام تاپیک: بررسی کلید های فشرده شده در هر جای ویندوز

  1. #1
    کاربر دائمی آواتار ali.hojjati
    تاریخ عضویت
    خرداد 1387
    محل زندگی
    کرج
    پست
    188

    بررسی کلید های فشرده شده در هر جای ویندوز

    با سلام من در حال نوشتن یک برنامه هستم می خواهم وقت برنامه اکتیو نیست و برنامه های دیگر در حال اجرا هستند وقتی یک کلید ترکیبی مشخص در هر جایی از ویندوز که فشرده شد برنامه اکتیو بشه. منظورم اینه که چجوری می شه روی کلید های فشرده شده بر ری کیبورد در همه حال در زمانی که برنامه در حال اجرا شدن است اشراف داشت. من یک کدی را داشتم که در محیط vb6 بود و فقط تک کلید را بر می گرداند و این کد به کارم نیومد.
    لطفا راهنمایی کنید

  2. #2

    نقل قول: بررسی کلید های فشرده شده در هر جای ویندوز

    دوست عزیز بایستی از API استفاده کنی و توی سایت Code Project من یه چنین پروژه ای را دیده ام. در صورتی که پروژه ای را که گفتی بگذاری شاید بهتر بتونیم کمکت کنیم

  3. #3
    کاربر دائمی آواتار ali.hojjati
    تاریخ عضویت
    خرداد 1387
    محل زندگی
    کرج
    پست
    188

    نقل قول: بررسی کلید های فشرده شده در هر جای ویندوز

    اگه ممکنه اون سورس را برام بگزارید تا هم من و هم بقیه بتونن استفاده کنن.
    با تشکر.

  4. #4

    نقل قول: بررسی کلید های فشرده شده در هر جای ویندوز

    نقل قول نوشته شده توسط ali.hojjati مشاهده تاپیک
    اگه ممکنه اون سورس را برام بگزارید تا هم من و هم بقیه بتونن استفاده کنن.
    با تشکر.
    دوست عزیز برنامه را باید بگردم و پیدا کنم میتونی یه سرچ توی CodeProject بکنی و اگه پیدا نکردی یه خبری بده تا .....

  5. #5
    کاربر دائمی آواتار mostafaaa
    تاریخ عضویت
    دی 1386
    محل زندگی
    جزیره کیش
    پست
    723

    نقل قول: بررسی کلید های فشرده شده در هر جای ویندوز

    سلام دوست من
    این باید کارت رو راه بندازه
        Imports System.Runtime.InteropServices
    Public Class Form1
    Private Declare Function RegisterHotKey Lib "user32" (ByVal hwnd As IntPtr, ByVal id As Integer, _
    ByVal fsModifiers As Integer, ByVal vk As Integer) As Integer
    Private Declare Function UnregisterHotKey Lib "user32" (ByVal hwnd As IntPtr, ByVal id As Integer) As Integer
    Private Declare Function GlobalAddAtom Lib "kernel32" Alias "GlobalAddAtomA" (ByVal lpString As _
    String) As Short
    Private Declare Function GlobalDeleteAtom Lib "kernel32" (ByVal nAtom As Short) As Short
    Private Const MOD_ALT As Integer = 1
    Private Const MOD_CONTROL As Integer = 2
    Private Const MOD_SHIFT As Integer = 4
    Private Const MOD_WIN As Integer = 8
    Private Sub Form1_Closed(ByVal sender As Object, ByVal e As EventArgs) Handles MyBase.Closed
    ' unregister the hotkey (NEVER FORGET THIS!)
    UnregisterGlobalHotKey()
    End Sub
    ' unregister a global hotkey
    Public Sub UnregisterGlobalHotKey()
    If Me.hotkeyID <> 0 Then
    UnregisterHotKey(Me.Handle, hotkeyID)
    ' clean up the atom list
    GlobalDeleteAtom(hotkeyID)
    hotkeyID = 0
    End If
    End Sub
    ' the id for the hotkey
    Dim hotkeyID As Short
    ' register a global hot key
    Public Sub RegisterGlobalHotKey(ByVal hotkey As Keys, ByVal modifiers As Integer)
    Try
    ' use the GlobalAddAtom API to get a unique ID (as suggested by MSDN docs
    Dim atomName As String = AppDomain.GetCurrentThreadId.ToString("X8") & Me.Name
    hotkeyID = GlobalAddAtom(atomName)
    If hotkeyID = 0 Then
    Throw New Exception("Unable to generate unique hotkey ID. Error code: " & _
    Marshal.GetLastWin32Error().ToString)
    End If
    ' register the hotkey, throw if any error
    If RegisterHotKey(Me.Handle, hotkeyID, modifiers, CInt(hotkey)) = 0 Then
    Throw New Exception("Unable to register hotkey. Error code: " & _
    Marshal.GetLastWin32Error.ToString)
    End If
    Catch ex As Exception
    ' clean up if hotkey registration failed
    UnregisterGlobalHotKey()
    End Try
    End Sub
    Protected Overrides Sub WndProc(ByRef m As System.Windows.Forms.Message)
    ' let the base class process the message
    MyBase.WndProc(m)
    ' if this is a WM_HOTKEY message, notify the parent object
    Const WM_HOTKEY As Integer = &H312
    If m.Msg = WM_HOTKEY Then
    ' do whatever you wish to do when the hotkey is pressed
    ' in this example we activate the form and display a messagebox
    Me.WindowState = FormWindowState.Normal
    Me.Activate()
    End If
    End Sub
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    ' register the Shift+Ctrl+F6 hot key
    RegisterGlobalHotKey(Keys.F6, MOD_SHIFT Or MOD_CONTROL)
    End Sub
    End Class


    یا علی

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

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