ايران ويج

نسخه‌ی کامل: تشخیص یوزر لاگ این از یوزر های سویچ یوزر شده
شما در حال مشاهده‌ی نسخه‌ی متنی این صفحه می‌باشید. مشاهده‌ی نسخه‌ی کامل با قالب بندی مناسب.
صفحه‌ها: 1 2 3
چگونه مي توان يوزر لاگ اين كه كاربر هم اكنون در
ان است را از يوزر هاي ديگر كه سوييچ يوزر شده اند و
غير فعالند تشخيص داد ؟
دوستان خواهشآ هركي بلده دريغ نكنه
چون خيلي كارم گيره اين قضيه است
اي بابا هيچكس بلد نيست يا كسي حال نداره جواب بده ؟
اگه اينطوره ما ديگه سوال نكنيم ؛ كسي كه جواب نمي ده ؟
اقا اشكان اين پست رو قفل كن كه كسي جواب نمي ده و دارم با خودم گفتگو مي كنم
احتمال ميدم با تابع CreateToolhelp32Snapshot بشه يه كارايي كرد كه اصلا بهت بگه مربوط به چه User ميشه . من وقت نمي كنم چك كنم ، خودت يه امتحان كن .
نه این تابعی که گفتی مال اینه که لیست فایل های اجرایی رو
که که اجرا شده و در حافظه موجود است رو بر می گردونه
در حالی که منظور من اینه که براتون عرض می کنم :

ببینید من یه برنامه نوشتم که می خواهم تو تمام یوزر ها اجرا
بشه و می خواهم وقتی که یه رویدادی مثل وصل شدن اینترنت اتفاق می افته
برنامه تشخیص بده که یوزری که هم اکنون کاربر در آن است و فعال است کدام
است و برنامه در یوزر های غیر فعال که Switch User شده اند
و فقط باز هستند وفعال نیستند غیر فعال شود چون در صورت کار
برنامه در تمام یوزر ها برنامه دچار اشکال می شود

حالا سوال اينجاست كه چجوري مي شه فهميد اين يوزر فعال كه هم اكنون كاربر
در ان است كدام يك از يوزر هاست
نقل قول: نه این تابعی که گفتی مال اینه که لیست فایل های اجرایی رو
که که اجرا شده و در حافظه موجود است رو بر می گردونه
به اضافه كلي اطلاعات راجع به تك تك پروسس ها از قبيل تريد ها ، ماژول ها ، ... كه فكر مي كردم Owner پروسس رو هم نشون بده كه الان msdn رو ديدم ، اين يه قلم رو نداره ! Biggrin
نقل قول: ببینید من یه برنامه نوشتم که می خواهم تو تمام یوزر ها اجرا
بشه و می خواهم وقتی که یه رویدادی مثل وصل شدن اینترنت اتفاق می افته
برنامه تشخیص بده که یوزری که هم اکنون کاربر در آن است و فعال است کدام
است و برنامه در یوزر های غیر فعال که Switch User شده اند
و فقط باز هستند وفعال نیستند غیر فعال شود چون در صورت کار
برنامه در تمام یوزر ها برنامه دچار اشکال می شود
يه فكري الان به ذهنم اومد ، اونم اينكه بياي تو هر برنامه كه اجرا هست ، چك كني كه كاربر به اينترنت متصل هست يا نه ، به محض اينكه وصل شد ، بياي مثلا يه جايي تو رجيستري بنويسي amir:1 كه در اينجا amir اسم همون يوزي هست كه برنامه توشه !
و بعد بقيه برنامه ها بيان همون قسمت رو چك كنن ، ببينن كه آيا يوزر اونها با اون مقدار رجيستري مطابقت داره يا نه ، اگر نداشت غير فعال بشن ! اينطوري فكر نكنم ديگه تداخلي پيش بياد .
براي بدست آوردن يوزر نيم همون يوزري كه توشي هم ميتوني از اين كد ساده استفاده كني :
کد:
a = Environ("TMP")
b = Mid(a, 13)
c = InStr(b, "\")
d = Left(b, c - 1)
MsgBox d
اگر متوجه نشدي ، بگو كه بيشتر توضيح بدم :wink:
با عرض شرمندگي ايده خوبي نيست
چون مثلا چهار تا يوزر داريم كه يكي از آنها فعال و كاربر در آن است
و سه تا ديگر Switch User شده اند حالا اگر ما به اينترنت وصل شديم
شانس درست عمل كردن 25٪ است چون ممكن است هر يك از سه يوزر
ديگر كه غير فعالند اون مقداري كه گفتي رو اول درست كنن و يوزر هاي ديگه
غير فعال شه

تنها راه حل اينه كه ما چك كنيم ببينيم كه يوزر فعال كه الان كار بر توشه
كدامه ؛ بعد ان نام را با نام يوزر هاي مختلف چك كنيم هر كدام كه با نام ان يوزر
برابر بود ؛ آن يوزر اجازه كار پيدا كند و ما بقي غير فعال شوند

اون كدي هم كه دادي فكر كنم كار همون تابع GetUserName رو بكنه و نام
همون يوزري كه برنامه توش اجرا هست رو برگردونه نه نام يوزر كه كاربر در ان
است و فعال است يعني ربطي به فعال يا فعال نبودن ندارد و در هر صورت نام
همون يوزري كه برنامه توش اجرا هست رو بر مي گردونه
اي بابا ؛ باز هم اگر كسي متوجه نشد يه جور ديگه توضيح بدم
تا دوستان متوجه شن
Iron_Fist نوشته است:اي بابا ؛ باز هم اگر كسي متوجه نشد يه جور ديگه توضيح بدم
تا دوستان متوجه شن

من خيلي خيلي خنگ هستم از اول هم نفهميدم منظورت چيه اگه دقيق تر بگي ميخواي چه كار كني بهتره اصلا دقيق دقيق بگو منظورت از اين كار چيه و ميخواي چه نتيجه اي بگيري؟
آره راست ميگي اين عملي نيست

اما يه فكر مسخره ديگه به كلم زد ! اينكه بيايم اطلاعات رو از تو تب Users ، تسك مننيجر بكشيم بيرون ! 8O فقط مشكلش اينه كه سطح دسترسي يوزر ، حتما بايد ادمين باشه . :cry:

حالا اين برنامه نمونه رو ببين ، ببين كارت با يه همچين چيزي راه ميفته يا نه ، اگه راه ميفته كه بگو سورسش رو بزارم تو سايت : http://www.techmix.persiangig.com/other/who.exe
صفحه‌ها: 1 2 3