PDA

View Full Version : كنترل موس و كيبرد



programer_2
پنج شنبه 11 آذر 1389, 20:28 عصر
با عرض سلام خدمت دوستان

من ميخوام يه كلاس طراحي كنم كه حالت موس و كيبرد رو برام برگردونه
ميشه منو در اين مورد راهنمايي كنيد
:لبخند:

bad_boy_2007
پنج شنبه 11 آذر 1389, 21:10 عصر
منظورتان از حالت کی بورد چیست ؟؟؟
اگر منظورتان از حالت ماوس موقعیت مکان نما است شاید کد زیر کمکتان کند :

MousePosition.X

programer_2
یک شنبه 14 آذر 1389, 11:14 صبح
منظورتان از حالت کی بورد چیست ؟؟؟
اگر منظورتان از حالت ماوس موقعیت مکان نما است شاید کد زیر کمکتان کند :

MousePosition.X

اين كد رو فقط روي فرم ميشه استفاده كرد ولي من ميخوام يه كلاس موس طراحي كنم كه مستقيم بره از سخت افزار اطلاعات بگيره . ميخاستم بدونم .NET همچين امكاني رو داره يا بايد از Api چيزي استفاده كنم

درضمن من همه حالات موس يعني
click
dbclick
down
up
position
move
,....
رو ميخام
همچنين براي كيبرد
Shift stat
keys
,.....

$M03N$
یک شنبه 14 آذر 1389, 16:30 عصر
یعنی یه کیلاگر میخوای بنویسی دیگه ؟؟؟

programer_2
یک شنبه 14 آذر 1389, 17:31 عصر
یعنی یه کیلاگر میخوای بنویسی دیگه ؟؟؟

نه اون طوري شما ميگي . ميخام به يه سيستمي توي شبكه بفرستم

كسي نيست كمك كنه ؟
كسي در مورد user32 چيزي ميدونه ؟

programer_2
دوشنبه 15 آذر 1389, 18:17 عصر
يعني هيچ كس نيست كه جواب بده ؟ هيچ كس نيست ؟

براي تكميل پروژه كارشناسيم بهش نياز دارم . لطفا كمك كنيد .plz

bad_boy_2007
سه شنبه 16 آذر 1389, 22:09 عصر
هر چند صحیح نیست در بخش سی شارپ کد وی بی بزارم ولی چون فرصت کافی برای تبدیل کد ندارم این کد رو بررسی کنید اگه مشکلی داشتید بگید تا تبدیلش کنم :

Imports System.Runtime.InteropServices
Imports System.Reflection
Imports System.Drawing
Imports System.Threading
Module Keyboard
Public Declare Function UnhookWindowsHookEx Lib "user32" _
(ByVal hHook As Integer) As Integer
Public Declare Function SetWindowsHookEx Lib "user32" _
Alias "SetWindowsHookExA" (ByVal idHook As Integer, _
ByVal lpfn As KeyboardHookDelegate, ByVal hmod As Integer, _
ByVal dwThreadId As Integer) As Integer
Private Declare Function GetAsyncKeyState Lib "user32" _
(ByVal vKey As Integer) As Integer
Private Declare Function CallNextHookEx Lib "user32" _
(ByVal hHook As Integer, _
ByVal nCode As Integer, _
ByVal wParam As Integer, _
ByVal lParam As KBDLLHOOKSTRUCT) As Integer
Public Structure KBDLLHOOKSTRUCT
Public vkCode As Integer
Public scanCode As Integer
Public flags As Integer
Public time As Integer
Public dwExtraInfo As Integer
End Structure
' Low-Level Keyboard Constants
Private Const HC_ACTION As Integer = 0
Private Const LLKHF_EXTENDED As Integer = &H1
Private Const LLKHF_INJECTED As Integer = &H10
Private Const LLKHF_ALTDOWN As Integer = &H20
Private Const LLKHF_UP As Integer = &H80
' Virtual Keys
Public Const VK_TAB = &H9
Public Const VK_CONTROL = &H11
Public Const VK_ESCAPE = &H1B
Public Const VK_DELETE = &H2E
Private Const WH_KEYBOARD_LL As Integer = 13&
Public KeyboardHandle As Integer

' Implement this function to block as many
' key combinations as you'd like
Public Function IsHooked( _
ByRef Hookstruct As KBDLLHOOKSTRUCT) As Boolean
Debug.WriteLine("Hookstruct.vkCode: " & Hookstruct.vkCode)
Debug.WriteLine(Hookstruct.vkCode = VK_ESCAPE)
Debug.WriteLine(Hookstruct.vkCode = VK_TAB)
If (Hookstruct.vkCode = VK_ESCAPE) And _
CBool(GetAsyncKeyState(VK_CONTROL) _
And &H8000) Then
Call HookedState("Ctrl + Esc blocked")
Return True
End If
If (Hookstruct.vkCode = VK_TAB) And _
CBool(Hookstruct.flags And _
LLKHF_ALTDOWN) Then
Call HookedState("Alt + Tab blockd")
Return True
End If
If (Hookstruct.vkCode = VK_ESCAPE) And _
CBool(Hookstruct.flags And _
LLKHF_ALTDOWN) Then
Call HookedState("Alt + Escape blocked")
Return True
End If
Return False
End Function
Private Sub HookedState(ByVal Text As String)
Debug.WriteLine(Text)
End Sub
Public Function KeyboardCallback(ByVal Code As Integer, _
ByVal wParam As Integer, _
ByRef lParam As KBDLLHOOKSTRUCT) As Integer
If (Code = HC_ACTION) Then
Debug.WriteLine("Calling IsHooked")
If (IsHooked(lParam)) Then
Return 1
End If
End If
Return CallNextHookEx(KeyboardHandle, _
Code, wParam, lParam)
End Function

Public Delegate Function KeyboardHookDelegate( _
ByVal Code As Integer, _
ByVal wParam As Integer, ByRef lParam As KBDLLHOOKSTRUCT) _
As Integer
<MarshalAs(UnmanagedType.FunctionPtr)> _
Private callback As KeyboardHookDelegate
Public Sub HookKeyboard()
callback = New KeyboardHookDelegate(AddressOf KeyboardCallback)
KeyboardHandle = SetWindowsHookEx( _
WH_KEYBOARD_LL, callback, _
Marshal.GetHINSTANCE( _
[Assembly].GetExecutingAssembly.GetModules()(0)).ToInt32, 0)
Call CheckHooked()
End Sub
Public Sub CheckHooked()
If (Hooked()) Then
Debug.WriteLine("Keyboard hooked")
Else
Debug.WriteLine("Keyboard hook failed: " & Err.LastDllError)
End If
End Sub
Private Function Hooked()
Hooked = KeyboardHandle <> 0
End Function
Public Sub UnhookKeyboard()
If (Hooked()) Then
Call UnhookWindowsHookEx(KeyboardHandle)
End If
End Sub
End Module






http://www.developer.com/net/vb/article.php/10926_2193301_3

bad_boy_2007
سه شنبه 16 آذر 1389, 22:36 عصر
این رو هم نگاهی بنداز تست کردم جواب داد
http://msdn.microsoft.com/en-us/library/system.windows.input.keyboard.aspx

اول یک ریفرنس به Represents ایجاد کن (روی پروژه راست کلیک و AddRefrence) حالا میتونی به فضای نام system.windows.input دسترسی پیدا کنی ، یک شی از نوع Keyboard از فضای نام ذکر شده ایجاد کن و حالشو ببر . (پست بالایی رو هم بیخیالش شو)

programer_2
پنج شنبه 18 آذر 1389, 19:30 عصر
ميشه توضيح بدين از كجا بايد system.windows.input رو به پروژم اضافه كنم . چون تو ليست رفرنس هاي c# نيست .

bad_boy_2007
جمعه 19 آذر 1389, 00:30 صبح
روی پروژه راست کلیک و AddRefrence را انتخاب کنید ، در پنجره ای که باز میشود PresentationCore.dll را انتخاب کنید . حالا به فضای نام system.windows.input میتونی دسترسی پیدا کنی .
اگه نتونستی یه سر به لینک زیر بزن با تصویر نشون داده که چطور ریفرنس بدی :

http://social.msdn.microsoft.com/Forums/en/vbide/thread/e1a26812-def5-4dc5-b667-88e8b205df56

danial82
دوشنبه 29 آذر 1389, 11:31 صبح
من میخوام موس و تو محیط ویندوز جا به جا کنم فقط باید از api استفاده کنم یا .NET همچين امكاني رو داره ؟

bad_boy_2007
دوشنبه 29 آذر 1389, 23:30 عصر
من میخوام موس و تو محیط ویندوز جا به جا کنم فقط باید از api استفاده کنم یا .NET همچين امكاني رو داره ؟

تا مجبور نشدید به دنبال api ها نروید ، این باعث قابلیت جابجایی بالای برنامه تان میشود .



this.Text = System.Windows.Forms.Cursor.Position.X.ToString()

programer_2
پنج شنبه 30 دی 1389, 19:52 عصر
سلام دوباره
كسي هست كه قبلا از Namespace System.Windows.Input براي كنترل موس استفاده كرده باشه ؟

من ميخوام حالات موس رو روي سيستم(نه روي فرم) Set كنم . به عنوان مثال Set كردن دابل كليك موس. يا كليك كردن موس يا ووو

اگه كسي يه نمونه بزاره واقعا ممنون ميشم .

programer_2
جمعه 01 بهمن 1389, 11:38 صبح
از دوستان كسي نبود كه اين كارو كرده باشه ؟

به عنوان مثال ميخام يه تابع بنويسم كه وقتي اون رو فراخواني ميكنم در مختصات مشخص ، عمل دابل كليك رو انجام بده .
لطفا كسي اگه كدي داره بزاره ....:افسرده::گریه:

programer_2
جمعه 01 بهمن 1389, 14:00 عصر
كسي نيست كمك كنه ؟:ناراحت:

programer_2
شنبه 02 بهمن 1389, 12:21 عصر
من خيلي تلاش كردم ولي نتونستم كاري كنم .
سوال اينه :

من ميخوام حالات موس رو روي سيستم(نه روي فرم) Set كنم . به عنوان مثال Set كردن دابل كليك موس. يا كليك كردن موس يا ووو

اگه راهي يا تكه كدي براي اين كار داريد لطفا مطرح كنيد و يا لااقل بياييد با من همدردي كنيد كه فكر نكنم اينجا تنهام .:لبخند:

programer_2
یک شنبه 03 بهمن 1389, 19:23 عصر
هيچ كس نيست ؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟ ؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟ ؟؟؟