PDA

View Full Version : سوال: مشكل no journal hook avilable در كامپوننت ماكروريكوردر tms



online_com
سه شنبه 26 آبان 1394, 15:57 عصر
سلام
از كامپوننت macrorecorder مجموعه tms براي ضبط و اجراي مجدد فعاليت هاي كاربر استفاده كرده ام برروي سيستم خودم كه winxp است و با دلفي7، به خوبي كار مي كنه اما زمان اجرا برروي سيستم هاي كاربران با ويندوزهاي 7و8و10 پيام no journal hook available مي دهد در سايت شركت tms راه حل زير رو ارائه داد:


Microsoft decided that the API used for functionality of the TMacroRecorder component is a security risk
on Windows Vista. Therefore, Microsoft disabled the API used for recording & playing mouse & keyboard events
back in Windows Vista by default. In order to have this functionality enabled for your applications it is required:
Digitally sign your executable. See http://stackoverflow.com/questions/252226/signing-a-windows-exe-file
Run your executable as adminstrator or elevate rights to administrator
With this applied, TMacroRecorder works fine on Windows Vista/Windows 7


من اين مراحل رو به اين صورت انجام دادم كه از signtool ويندوز 10 براي sign كردم استفاده كردم اما مشكل اينه كه براي ويندوزهاي زير 8 اين ابزار كار نمي كنه
از مانيفست هم براي run as admin استفاده كردم
حالا مشكل فقط در ويندوزهاي 10 رفع شد
و در ويندوزهاي 8 هم ركورد انجام مي شه و موقع پخش عملكرد، پيام kmod_exception_not_handel(win32k.sys) مي دهد و سيستم ريست مي شود
و در ويندوزهاي 7 كه اصلا اجرا نمي شود
خيلي تو سايت هاي فارسي و انگليسي گشتم ولي راه حل مناسبي پيدا نكردم
لطفا دوستان كمك كنند:عصبانی++::گریه:

ابوالفضل عباسی
چهارشنبه 27 آبان 1394, 11:15 صبح
سلام
زیاد درمورد ماکرو رکوردر tms اطلاعاتی ندارم ولی ببین این برنامه کمکت میکنه یا نه:(برای دلفی پیدا نکردم)
برنامه win Macro با زبان C (http://www.codeproject.com/Articles/7466/Writing-a-Macro-Recorder-Player-using-Win-Journa)

online_com
چهارشنبه 27 آبان 1394, 14:28 عصر
ممنون از شما
من اين صفحه رو قبلا هم ديده بودم
كامپوننت ماكرو ريكوردر هم از همين تابع SetWindowsHookEx استفاده مي كنه اما مشكل اينكه كه ماكروسافت از اوايل ارائه ويندوز سون به اين نتيجه رسيد كه اين تابع جز توابعي است كه ممكن است مورد سو استفاده قرار بگيره براي همين هم جلوي عملكرد اين تابع رو به صورت معمولي گرفته و با اجراي يكسري شرايط خاص اجازه اين كار رو ميده البته ويژوال استديو براي رفع اين مشكل راه حل هايي داره اما در دلفي 7 راه حل مناسبي وجود نداره يا شايد هم من پيدا نكردم:گریه::گریه:
البته مي دونيد كه هرچه نسخه ويندوز بالاتر بره خود فريم ورك هايي كه نصب هستند هم جلوي اين عملكرد رو مي گيرند از نسخه 4 به بعد فريم وررك، كلا جلوي هوك كردن معمولي گرفته شده

ابوالفضل عباسی
چهارشنبه 27 آبان 1394, 14:55 عصر
من توی tms آشنایی چندانی دارم ولی
با کامپوننت یا نمونه کد دیگه ای نمی تونید از فعالیت کاربران رکورد کنی؟
من برات دنباله نمونه کد میگردم ولی فکرنکنم جز tms چیز دیگری پیدا بشه.:عصبانی:

online_com
چهارشنبه 27 آبان 1394, 16:47 عصر
ممنون:خجالت:
نمونه كد كه زياده و آخر همشون به تابع SetWindowsHookEx و توابع مشابه API ختم مي شه
دنبال اينم كه محدوديت SetWindowsHookEx رو از طريق كدنويسي بردارم ولي نمي دونم چي كار كنم اكثر ويندوز هاي مورد استفاده كاربرانم 7 و 8 و 10 كه نسخه هاي مختلف اون استفاده مي كنند و تا حالا نتونستم يه راه حل ثابت براي هموشون پيدا و استفاده كنم:متفکر:
البته من اين تابع رو به تنهايي هم استفاده كردم و خروجي صفر يا منفي داره و ازطريق متد getlasterror ارور Access is denied ديدم

خلاصه كلا سركارم:عصبانی:

Mask
چهارشنبه 27 آبان 1394, 20:26 عصر
بهترین روش نوشتن تمام این هوکها بصورت اختصاصی برای نسخه های ویندوز هست.