View Full Version : دیدن مانیتور کلاینت ها
Mehdi0016
سه شنبه 26 آبان 1383, 23:27 عصر
سلام
چطوری با winsock میتونم با کلاینت ها طوری ارتباط برقرار کنم که بتونم دسکتاپ اونها رو ببینم؟؟
آیا میشه دستور sendkeys رو برای کلاینت فرستاد و از کلید PrintScreen استفاده کرد ؟
:گیج:
MM_Mofidi
چهارشنبه 27 آبان 1383, 03:48 صبح
Mehdi0016 عزیز
قبلا هم مطرح شده winsock فقط برای شما یک کانال ارتباطی میسازد محتوای اطلاعات منتقل شده و نحوه درخواست(sendkey or ETC>) با شما است
Mehdi0016
چهارشنبه 27 آبان 1383, 19:19 عصر
ببینید من چند تا نمونه برنامه از اینترنت گرفتم که کارمو راه میندازه ولی من تا یه چیزی رو
شیر فهم (... فهم) نشم ازش استفاده نمیکنم. :oops:
این که winsock فقط ارتباط رو برقرار میکنه درست ولی تهیه screenshot از کلاینتها رو نمیدونم چکار کنم .
لطف میکنید راهنماییم کنید؟؟
MM_Mofidi
پنج شنبه 28 آبان 1383, 13:44 عصر
یک راه گرفتن تصویر از دسکتاپ (مثل Prn Screen) و ارسال در قالب فایل یا ... و نمایش در پنجره طرف دیگر برای شبیه سازی حرکت ماوس هم میشود کارهایی کرد ولی کلا همه مدیریت را خودت انجام میدهی.
اگر از برنامه های مخصوص این کار استفاده کنی حتما ایده های مناسبی میگیری ضمنا به کندی نمایش تصویر در همه توجه کن.بعلاوه اینکه اگر مدیر از راه دور اقدام به کنترل سیستم کند کاربر میفهمد(مثلا ماوسش جابجا میشود یا ...)
mah.yar
چهارشنبه 21 فروردین 1387, 20:22 عصر
نکته:پست های قبل چیزی حدود سه سال پیش مطرح شد.
------------------------------------------------------------
من میخوام یه پروژه تحت عنوان مدیریت کافی نت(برای ارائه به دانشگاه) شروع کنم و از لحاظ API مشکلی ندارم و ...
یه مکانیزمی ارائه بدین که بتونم به بهترین نحو مانیتور سمت کلاینت رو ببینم و کنترل سیستم رو دراختیار بگیرم.
به عنوان مثال همونطور که در پست های قبل بحث شد آیا عکس گرفتن از مانیتور کلاینت به صورت پی در پی و ارسال برای سرور راه حل منطقی هست(با توجه به اینکه عکس مربوطه باید توسط سرور دریافت بشه و تاخیر ناشی از این کار)؟
برای در اختیار گرفتن کنترل سیستم کلاینت توسط کاربر سرور:روش پیشنهادی من--> کاربر وقتی روی عکس(Full screen) کلاینت کلیک میکنه مختصات محل کلیک به کلاینت ارسال و در اونجا عمل کلیک انجام بشه و ...
نظر شما چیه؟
با تشکر
meysam_meysam74
چهارشنبه 21 فروردین 1387, 21:55 عصر
خوب با سکت یه کانال درست میکنن با تابع هایه api می تونی عکس از تسک تاپ بگیری با یه دلل که الا نحضور ذهن ندارم می تونی عکستو تا حد مکس یعنی موربع موربع حجهم هر عکس میشه 40 کیلو بایت یا کمتر بعدشم با مدیریت رویه سکت می تونی عکس رو برایه سرور بفرستی
خوب کار زیاد سختی نیست اگه با سکت و ای پی ای و اون دی ال ال اشنایی داشته باشید
mah.yar
چهارشنبه 21 فروردین 1387, 22:40 عصر
من دقیقاً یه همچین برنامه رو توی همین تعطیلات عید نوشتم .
اتفاقاً یه نظرسنجی هم در این مورد توی همین Forum قرار دادم ولی متاسفانه حذف شد .
تا حالا که مشتری واسش پیدا نشده .
اگه امکانش هست لطف کنید دررابطه با مکانیزم دراختیار گرفتن کلاینت توضیح بدید.شما هم از روش عکسبرداری از صفحه استفاده کردید.
برای حرکت ماوس چطور؟
mah.yar
شنبه 24 فروردین 1387, 23:17 عصر
کسی نظری،پیشنهادی،نمونه برنامه ای نداره؟
noorsoft
دوشنبه 26 فروردین 1387, 08:01 صبح
گرفتن عکس و ارسال از طریق سوکت راه منطقی نیست
چرا که شما مجبور میشین تمام باند شبکه را اشغال کنید بهترین راه استفاده از فرکانسهای کارت گرافیک می باشد یعنی برنامه تشخیص می دهد چه موقع کدام قسمت مونیتور تغییر کرده و فقط همان قسمت را برای کامپیوتر مقصد ارسال میکند ) با این روش شما مجبور نیستید برای یک تغییر کوچک در صفحه نمایش تمام صفحه را عکس بگیرید و ارسال کنید
Evil 69
دوشنبه 26 فروردین 1387, 09:24 صبح
برای دیدین دیکتاپ که می شه با api از اون عکس گرفت و اون رو فرستاد ولی برای کنترل سیستم باید بگم شما دو نوع کنترل داری یکی این که بخای کنترل سیستم رو به طور کامل در دست بگیری یعنی این که کاربر client دیگه هیچ کنترلی حتی روی ماوس و صفحه کلید هم نداشته باشه و یکی دیگه این که یک سری از مجوز ها رو از client بگیری یا بهش بدی و یا ان که بدون اطلاع اون یک سری فایل ازش بگیری یا بهش بدی
خوب اگر کنترل به شکل اول باشه که با استفاده از چند تا api به ساده گی میشه و اگر هم حالت دوم رو بخای می تونی یک سری پالس از پیش تعیین شده به فایل سرور برنامت که روی client هست بفرستی تا اون کار های لازم رو بکنه برای خوندن و یا نوشتن فایل هم که می تونی اون ها رو بفرستی و یا بگیری به راحتی ولی اگر بخای به شکل کامل هارد client رو داشته باشی یکم کار سخته البته میشه ولی سرعت شبکه کم میشه
mah.yar
دوشنبه 26 فروردین 1387, 16:48 عصر
گرفتن عکس و ارسال از طریق سوکت راه منطقی نیست
چرا که شما مجبور میشین تمام باند شبکه را اشغال کنید بهترین راه استفاده از فرکانسهای کارت گرافیک می باشد یعنی برنامه تشخیص می دهد چه موقع کدام قسمت مونیتور تغییر کرده و فقط همان قسمت را برای کامپیوتر مقصد ارسال میکند
جالبه، آیا این روش قابل پیاده سازی هست؟(چگونه؟)
اگه در مورد کار با فرکانس های کارت گرافیک سرنخی دارید از ما دریغ نکنید. API?
با تشکر
noorsoft
سه شنبه 27 فروردین 1387, 06:35 صبح
من یک فایل PDF دارم که توضیحات کاملی در این رابطه داده ببینید این سیستم که من گفتن همون سیستمی است که برای تشخیص حرکت در دوربینهای مداربسته روی کامپیوتر استفاده میشه و نورم افزار قدرتمند NET SUPPORT هم از همین سیستم استفاده میکنه با این روش شما میتونین حتی از صفحه SAVE SETTING در SHUT DOWN هم تصویرر داشته باشین.
یک نکته دیگه هم که باید اضافه کنم این کار با API نیست من قبلا یک برنامه نوشتم که مونیتور یک کامپیوتر را بر روی 50 کامپیوتر بصورت همزمان نشون میده و صفحه کلید و موس اونها را هم از کار میندازه ولی از همون روش قدیمی عکس گرفتن.
بعد به راه حل بهتری رسیدم که توانستم تشخیص بدم آیا در صفحه تغییراتی صورت گرفته که من به کلاینتها ارسال کنم یا نه که اگر مایل باشید میتونم ان را مفصل براتون توضیح بدم در واقع با این روش ارسال تصاویر بسیار اندک شد.
ولی با دیدن برنامه NET SUPPORT و سرعت عجیب و غریبی که این برنامه داشت شروع به تحقیق زیادی کرم و به تغییرات فرکانسی در مونیتور رسیدم
اگر کسی مایل باشه میتونم طریقه ارسال و تشخیص تصاویر و نحوه ارسال با حد اقل استفاده از شبکه را توضیح کامل بدم
mah.yar
سه شنبه 27 فروردین 1387, 07:59 صبح
اگر کسی مایل باشه میتونم طریقه ارسال و تشخیص تصاویر و نحوه ارسال با حد اقل استفاده از شبکه را توضیح کامل بدم
:تشویق: سراپا گوشیم...
Evil 69
سه شنبه 27 فروردین 1387, 11:01 صبح
لطفا هر چه سریع تر این کار رو بکن که من نمی تونم صبر کنم
noorsoft
سه شنبه 27 فروردین 1387, 18:09 عصر
من برای این کار هر چند مرتبه یک بار یک تصویر از صفحه نمایش می گرفتم و بعد بصورت بیت مپ درون آرایه ذخیره میکردم و هر بار آرایه جدید را با آرایه قبلی مقایسه می کردم تا متوجه تغییرات بشم اگه هر دو آرایه یکی بودن پس تصویر تغییر نکرده بود و نیاز به ارسال نداشت و اگه تغییر کرده بود برای کلاینتها ارسال می شد البته قبل از ارسال با فورمت Jpg فشردش می کردم و بعد ارسال می کردم .
اگه باز هم لازم میدونین توضیح بدم
یا اگه لازم میدونین نمونه برنامه ای که نوشتم براتون آپلود کنم
BraveMind
سه شنبه 27 فروردین 1387, 20:11 عصر
کارهایی که گفتید راه حل منطقی این کار هست اما قکر کنم که مقایسه کردن خیلی طول میکشه
اگه لطف بکنیدفایل رو بزارید ممنون میشم
BraveMind
سه شنبه 27 فروردین 1387, 20:18 عصر
کارهایی که گفتید راه حل منطقی این کار هست اما قکر کنم که مقایسه کردن خیلی طول میکشه
اگه لطف بکنیدفایل رو بزارید ممنون میشم
mah.yar
سه شنبه 27 فروردین 1387, 22:44 عصر
منم فکر کنم که مقایسه دو تا آرایه طول بکشه.
اگه براتون مقدوره نمونه برنامتون رو آپلود کنید
با تشکر
Kourosh_Wise
پنج شنبه 29 فروردین 1387, 16:52 عصر
برای این کار باید چند تا کار سخت انجام بدی
تو برنامه ای که روی کلاینتها نصب میشه باید این کارها رو انجام بدی:
1-یه کانکشن Winsocket برای ارسال تصاویر درست کن
2-با استفاده از Api ها تصویر مانیتور رو بگیری(یا با روشی شبیه printScreen
3-با توابع کلیپبورد vb (اگر از printscreen استفاده کردی) تصویر گرفته شده رو توی یک شی picturbox ذخیره کن
4-داده های تصویر ذخیره شده رو با توابع api bitmapبگیر و توی یه بافر ذخیره کن
5-مهمترین قسمت فشرده کردن تصاویر با استفاده از تابع "ICImageCompress" این تابع رو توی msdn میتونی پیدا کنی
6-بهترین را فشرده کردن با کدک mpeg4
7-ارسال فریم به فریم تصاویر از طریق winsocket
برنامه سرور
1-گرفتن تصویر فشرده شده از winsocket
2-دکمپرس کردن آن با تابع api "ICImageDecompress"
3-نمایش تصویر دکمپرس شده روی یه picturebox با استفاده از تابع api Drawdib
البته نه به این سادگی!
Evil 69
شنبه 31 فروردین 1387, 07:01 صبح
بابا یک نفر هم پیدا نمی شه که بتونه به ما بگه که کتابخونه کارت گرافیک اسمش چیه ؟:گریه:
meysam_meysam74
شنبه 31 فروردین 1387, 09:22 صبح
خوب به نظر شما نمیشه عکس رو اول طول و عرضشو کم کرد بعد پیکسل به پکسل خوند و مغایسه کرد و پیکسل هایی رو که فرق میکنن رو تویه یک پیکچر زخیره کرد و فرستاد یان جوری هجمش دیگه خیلی کم میشه
noorsoft
شنبه 31 فروردین 1387, 13:09 عصر
دوستان برای مقایسه کردن احتیاج به مقایسه پیکسل به پیکسل نیست اجازه بدین من برنامش را مینویسم و آپلود میکنم این کار در کمتر از 1 ثانیه انجام میشه
_alish_
شنبه 31 فروردین 1387, 14:22 عصر
با سلام
اگر دوست گرامی این لطف را بکنید ، بنده به نوبه خود از شما ممنون می شم. امیدوارم این بحث به سرمنزل مقصود برسد.
پیشنهاد بنده این است ، که صفحه نمایش را به ابعادمساوی تقسیم و مقایسه این آرایه BitMap را به یک thread محول نمود و در صورت بروز اختلاف این تیکه از صفحه بصورت معمول در مانیتور کشیده شود نه تمام قسمت و نه ارسال کل تصویر چون به هر حال هر فایل تصویری در حافظه لود و کشیده می شود بهتر است این عمل را با ارسال آرایه bitMap با ابعاد کوچکتر خودمان آرنرا پیاده سازی نماییم.
meysam_meysam74
شنبه 31 فروردین 1387, 22:30 عصر
دوست عزیز خوب کار شما باعث میشه که سی سیستم همیشه فعال باشه خوب این برایه هیچ کسی خوش ایند نیست بعد هم ما با ریسمان ها توی وی بی واقا مشکل داریم من فکر می کنم که ریسمان ها برایه وی بی 7 به بالا باشه تویه وی بی 6 نمیشه برنامه رو exe کرد ازش استفاده کرد. حتی تویه سرس هم بعضی جا ها دونت سنت می گیره !
Evil 69
یک شنبه 01 اردیبهشت 1387, 07:03 صبح
سلام
من شنیدم که دلیل اینکه فایل های jpg حجم کمتری دارن اینه که مثل فایل های bmp تمام نقاط رو ذخیره نمی کنند بلکه با استفاده از یک سری دستور ریاضی دسته ای از نقاط رو کد می کنه و بعد اونا رو ذخیره می کنه خوب اگر ما هم بتونیم این کار رو انجام بدیم دیگه لازم نیست که این همه نقطه رو ذخیره کنیم تازه میتونیم عکس رو با ابعاد کوچک ترم هم در نطر بگیریم تا کار ها کمتر بشه ( با این روش مقایسه های کمتری انجام میشه و اطلاعت کمتری لازم هست که فرستاده بشه )
meysam_meysam74
یک شنبه 01 اردیبهشت 1387, 09:00 صبح
خوب من یه موژوال دارم که یه عکس 1024 768 رو به 40 یا 50 کلوبایت تبدیل می کنه ولی کیفیت عکس خیلی پایین میاد .
از dll استفاده می کنه .
Evil 69
دوشنبه 02 اردیبهشت 1387, 11:19 صبح
من تو یک کتاب هوش مصنوعی خوندم که برای تشخیص چهره از روش تشخیص درصدی استفاد ه می کنن یعنی تک تک پیکسل های تصویر رو میگیرن و بعد اونها رو با پیکسل هایی که قبلا گرفتن مقایسه می کنن اگر تفاوت از اون درصدی که انتظار دارن بیشتر باشه مشخصات اون پیکسل رو ذخیره می کنن خوب ما هم همین طور که اون دوستمون گفت می تونیم از این روش استفاده کنیم و بعد از گرفتن اطلاعات اون پیکسل ها رو در تصویرمون اعمال کنیم
البته من سرم خیلی شلوغه ( امتحان میان ترم و پروژه و ...) اگر کسی وقت داره این کارو بکنه و به ما هم نتیجش رو بگه .
noorsoft
سه شنبه 03 اردیبهشت 1387, 07:23 صبح
دوستان من دارم برنامش را مینویسم به زودی تو همین تاپیک میزارم
مهران رسا
جمعه 15 آذر 1387, 20:41 عصر
دوستان من دارم برنامش را مینویسم به زودی تو همین تاپیک میزارم
جناب ما هنوز منتظریم ... :لبخندساده:
butterfly8528
جمعه 13 شهریور 1388, 03:44 صبح
دوستان من دارم برنامش را مینویسم به زودی تو همین تاپیک میزارم
فکر کنم دوستمون این تاپیک رو یادش رفته !
همچنان منتظریم . . .
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.