پاسخ به سوالات-۱۳

1 -  چگونه می توان برنامه ای نوشت که وقتی روی یکی از سیستمهای یک شبکه محلی LAN اجرا شد عملیات زیر را انجام دهد : - Domain فعال شبکه و کامپیوترهای آنرا پیدا کند ؟ - یک برنامه را در تمام کامپیوترهای شبکه کپی کند – فایلهای کپی شده را اجرا کند و اینکار بدون استفاده از winsock انجام شود ؟
پاسخ : بخش دوم و سوم مربوط بیشتر به بحث Hacking و exploit کردن سیستم ها بطوریکه بتوان فایلی را روی آنها اجرا کرد مربوط می شود . این زمینه بهتر است به سایت www.tur2.com مراجعه کنید . اما در مورد قسمت اول سوال برای بدست آوردن domain شبکه و کامپیوترهای موجود در آن از توابع یک کتابخانه به اسم mpr.dll استفاده می شود . توابع مورد استفاده از این کتابخانه عبارتند از WNetOpenEnum ، WNetEnumResource و WNetCloseEnum . برای اطلاعات بیشتر و دریافت یک نمونه برنامه به این آدرس مراجعه کنید .

2 – چگونه می توان با کارت ویدیوی یا همان Capture توسط وی بی ارتباط برقرار کرد ؟ چگونه می توان با webCam توسط وی بی ارتباط برقرار کرد ؟
پاسخ : یکی از راهها استفاده از کنترلی به اسم ezVidCap می باشد . این کنترل را می توانید از این آدرس دریافت کنید .

در اینجا می توانید راهنمای استفاده از این کنترل را بخوانید .

در اینجا و اینجا نیز برنامه هایی نمونه برای کار با Video Capture وجود دارد .

در این آدرس نیز روش دیگری برای ارتباط با کارت ویدیویی بیان شده است .

3 – چگونه می توان درایو ( یا درایوهای ) سی دی را توسط وی بی تشخیص داد ؟
پاسخ : برای اینکار از دو تابع از کتابخانه kernel32 به نامهای GetLogicalDriveStrings و GetDriveType استفاده می شود . این دو تابع را بصورت زیر declare کنید :

Private Declare Function GetLogicalDriveStrings Lib "kernel32" Alias "GetLogicalDriveStringsA" (ByVal nBufferLength As Long, ByVal lpBuffer As String) As Long

Private Declare Function GetDriveType Lib "kernel32" Alias "GetDriveTypeA" (ByVal nDrive As String) As Long

سپس ابتدا متغیر allDrives را که رشته ای 64 کاراکتری از space است بصورت زیر تعریف کنید :

allDrives$ = Space$(64)

حال با استفاده از تابع GetLogicalDriveStrings لیست کلیه درایوهای سیستم  را استخراج می کنیم :

ret& = GetLogicalDriveStrings(Len(allDrives$), allDrives$)
allDrives$ = Left$(allDrives$, ret&)

حال با استفاده از یک حلقه و چک کردن درایوها با استفاده از تابع GetDriveType می توانیم تشخیص دهیم این درایو مربوط به سی دی است یا نه . برای اینکار اگر مقدار بازگشتی تابع به ازای یک درایو برابر عدد 5 باشد آن درایو سی دی است .

Do
   pos% = InStr(allDrives$, Chr$(0))
     If pos% Then
     JustOneDrive$ = Left$(allDrives$, pos% - 1)

     allDrives$ = Mid$(allDrives$, pos% + 1, Len(allDrives$))

     DriveType& = GetDriveType(JustOneDrive$)
             If DriveType& = 5 Then
                MsgBox UCase$(JustOneDrive$) & " is a CD Drive"
             End If
     End If
Loop Until allDrives$ = ""

4 – بجای استفاده از winsock32.ocx از چه روش دیگری می توان در برنامه نویسی شبکه استفاده کرد ؟
پاسخ : شما می توانيد از کتابخانه Winsock.dll استفاده کنید و در اینصورت نیاز به فایل کمکی خاصی نیز ندارید . قبلاً در بخش پرسش و پاسخها ، لینکهایی در مورد این کتابخانه معرفی کرده ام و در صورتیکه فرصت کردم در مورد این کتابخانه توضیحاتی خواهم داد .

5 – چگونه می توان مانند تروجان های معمول ، username و password یک اکانت را بدست آورید  ؟
پاسخ : من تست نکردم اما به احتمال زیاد با استفاده از توابع کتابخانه RasApi قادر به اینکار خواهید بود . برای آشنایی با توابع این کتابخانه به این آدرس مراجعه کنید .

6 – منظور از درایور دیتا بیس چیست ؟ آیا همان برنامه ای است که دیتابیس را با آن می نویسیم ( مثلاً اکسس ) ؟ چگونه می توان از یک فایل Text بجای بانک اطلاعاتی استفاده کرد ؟
پاسخ : درایور یک دیتابییس شامل یکسری توابع واسط برای اتصال و کار با آن دیتابیس است برای مثال با استفاده از داریور JET OLE DB می توان به دیتابیسهای اکسس متصل شد . زمانیکه شما یک برنامه در وی بی می سازید که به یک دیتابیس متصل می شود برای اینکه بتوانید آنرا در کامپیوتر دیگری نیز اجرا کنید بایستی فایلهای درایور مربوطه نیز بهمراه آن کپی شوند . با استفاده از ابزار Package and Deployment Wizard می توانید فایلهای مورد نیاز برنامه را پیدا کنید و همچنين یک فایل Setup برای برنامه تان بسازید . در مورد فایلهای text نیز بله می توان اطلاعات جدول خود را در آن قرار دهید اما باید فرمت قرارگیری را خودتان تعریف کنید .

7 – فایلهای اجرایی من حتی اگر بدون یک اکتیو ایکس هم باشد در کامپیوتری که فاقد ویژال بیسيک است اجرا نمی شود . چرا ؟
پاسخ : ساده ترین برنامه های وی بی نیز برای اجرا شدن احتیاج به کتابخانه VB Runtime and OLE Automation دارند . همانطور که در سوال قبل نیز توضیح داده ام می توانید با استفاده از  برنامه های ساخت Setup مشکل خود را حل کنید .

8 - من در حال نوشتن برنامه اي هستم كه در آن امكان شماره گيري نيز مي باشد. مي خواستم بپرسم چگونه مي توان اشغال بودن خط را تشخيص داد تا بتواند به طور اتوماتيك قطع و دوباره شماره گيري بنمايد.؟
پاسخ : برای نوشتن برنامه تان از Ras Api استفاده کنید . این کتابخانه توابعی که مشکل شما را حل کند در خود دارد .

9 – چگونه می توان برنامه ای نوشت که بتوان با آن سورس یک صفحه وب را با دادن آدرس آن صفحه مشاهده کرد ؟
پاسخ : برای اینکار component ای در وی بی به اسم Internet Transfer که قبلاً در مورد آن مطالبی نوشته ام وجود دارد . به آرشیو موضوعی سایت و بخش برنامه نویسی شبکه مراجعه کنید .

10 -  در مورد برنامه Multimedia Builder سایت یا کتاب معرفی کنید .
پاسخ : من با این برنامه زیاد کار نکرده ام اما با جستجو در Google می توانید سایتهای بسیار زیادی پیدا کنید . یک کتاب فارسی نیز در مورد این نرم افزار وجود دارد .

11 – در برنامه های نمونه Msdn به ITLegacyCallMediaControl برخوردم . در مورد آن توضیح دهید .
پاسخ : این واسط یک از واسطهای TAPI می باشد که از برنامه هایی که بایستی بطور مستقیم با یک دستگاه ارتباط داشته باشند پشتیبانی می کند . برای اطلاعات بیشتر به اینجا مراجعه کنید .


12 – چگونه می توان فایل مربوط به یک برنامه را به ویندوز شناساند بطوریکه وقتی روی آن فایل کلیک می شود ویندوز برنامه مربوط به آنرا اجرا کند ؟
پاسخ : اینکار با استفاده از نوشتن کلیدهای خاصی در رجیستری امکان پذیر است . قبلاً در بخش آموزش کار با رجیستری به این مطلب اشاره کرده و کلیدهای مربوط به آنرا معرفی کردم . به آرشیو موضوعی و بخش کار با رجیستری مراجعه کنید .

 

/ 31 نظر / 109 بازدید
نمایش نظرات قبلی
مصطفی

سلام.یه برنامه میخوام که در اینده که خود من ان ایندهرا مشخص میکنم به من هشدار بده .مثل یک ساعت که اون را کوک می کنیم

مهدي

با سلام من از وبلاگ شما خيلي استفاده مي كنم. در ضمن من خودم شروع به ساختن يك وبلاگ در مورد ويژوال بيسيك و انديشه و فلسفه كرده ام.وبلاگ شما را هم به ليست وبلاگ ها اضافه كرده ام . شما هم وبلاگ مرا اضافه كنيد با سپاس

صالح

سلام سایت بسیار مفیدی داری.ممنونم برنامه مربوط به کارت capture كامپايل نشدند!

اعظم فرزادمنش

با سلام من میخوام بدونم برای پروژه اخر ترمم شما چی پیشنهاد میدید؟ ممنون میشم اگه کمکم کنید. بای

موسی

سلام و خسته نباشي ميخواستم بگم که اگه ميشه منو تو وبلاگت لينک کني هر وقت لينک کردي به من بگو تا تو رو با چه عنواني لينک کنم.يادت نره ها!@};- عنوان:World Of the computer www.p-c.loxblog.com

رمضان

سلام خسته نباشید بنده می خواستم از شما بپرسم که می خواهم در ویژوال بیسیک کد ی بنویسم که اگر لبل 1 بزرگتر از 5ومساوی10 باشد (یعنی فقط اعداد بین پنج تا ده) فرم شماره2 باز شود. واگر لبل1 کوچکتر از 20 و مساوی 15 باشد(یعنی اعدادبین 15تا20)فرم شماره 3 بازشود . چه کدی را باید تایپ کنم. اگر میشه جوابش را به ایمیلم بفرستید javidi130@yahoo.com

دانیال

سلام. میخواستم بدونم چه جوری میشه یک Ado را در یک در یک فرم تغییر بدم و Update کنم و بدون اینکه برنامه خاتمه پیدا کنه نتایج تغییرات رو تو یه فرم دیگه در DataGrid ببینم. زمانی که ado را update میکنم و فرم را میبندم توی فرم دیگه که DateGrid توش هست به روز نمیشه؟ اگه گذاشتین توی وبلاگتون یه میل بزنید که بیام ببینم یا اگه تونستید میل کنید. با تشکر.

ابوالفضل

برنامه ای بنویسید کهیک رشته حداکثر 20 کارکتری را از ورودی بخواند بعد از هر پنج کارکتر یک فضای خالی ایجاد کند و در نهایت رشته جدید را چاپ کند؟ دمت گرم سریع بنویس نیازش دارم بعدم یه ندا بدا بیام سراغت هم میتونی بایی وبلاگ و نظر بدی هم ایمیل بزنی منتظرم

shzaa123

سلام- درباره vbscript یک سوال داشتم می خوام به جای این که نتایج دستورات به روی صفحه نشان داده بشه در یک متغیر سراسری قرار بگیره که بعدش بتونم از اون متغیر در محیط cmd استفاده کنم مثلا فایل 1.bat شامل دستور زیر است call 1.vbs echo %a% =a که فایل 1.vbs شامل یک سری دستور است که خروجی نهایی به جای نمایش در صفحه در متغیر a ذخیر شود و سپس کنترل برنامه به خط بعدی رفته و محتوی متغیر a در صفحه داس نمایش داده میشود درواقع ما فایل 1.bat را اجرا می کنیم که این فایل فایل 1.vbs را فراخوانی می کنند و با خروجی 1.vbs در ادامه کار میکند می خواستم ببینم این انتساب خروجی به یک متغیر در زبان vbscript چگونه است؟ لطفا اگه ممکنه کمی سریعتر من کمی عجله دارم shzaa123@gmail.com با تشکر فراوان

shzaa123

سلام- درباره vbscript یک سوال داشتم می خوام به جای این که نتایج دستورات به روی صفحه نشان داده بشه در یک متغیر سراسری قرار بگیره که بعدش بتونم از اون متغیر در محیط cmd استفاده کنم مثلا فایل 1.bat شامل دستور زیر است call 1.vbs echo %a% =a که فایل 1.vbs شامل یک سری دستور است که خروجی نهایی به جای نمایش در صفحه در متغیر a ذخیر شود و سپس کنترل برنامه به خط بعدی رفته و محتوی متغیر a در صفحه داس نمایش داده میشود درواقع ما فایل 1.bat را اجرا می کنیم که این فایل فایل 1.vbs را فراخوانی می کنند و با خروجی 1.vbs در ادامه کار میکند می خواستم ببینم این انتساب خروجی به یک متغیر در زبان vbscript چگونه است؟ لطفا اگه ممکنه کمی سریعتر من کمی عجله دارم shzaa123@gmail.com با تشکر فراوان