وبلاگ تخصصي برنامه نويسي با VB

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

1 – چگونه مي توان در ويژوال بيسيك برنامه اي نوشت كه بتوان با آن رجيستري  را دستكاري كرد ؟
پاسخ : به آرشيو موضوعي وبلاگ بخش كار با رجيستري مراجعه كنيد .

2 – چگونه مي توان فايلهاي صوتي را به MID تبديل كرد ؟
پاسخ : اگر منظورتان در وي بي است كه بايد دنبال يك OCX يا ActiveX مناسب براي اينكار بگرديد . در غيراينصورت بايد از نرم افزارهاي تبديل كننده فايلهاي صوتي استفاده كنيد .

3 – چگونه مي توان در بانك هاي اطلاعاتي از تاريخ شمسي استفاده كرد ؟
پاسخ : تاريخ را بصورت String در بانك اطلاهاتي ذخيره كنيد و در اينصورت بايستي خودتان روتينهاي مربوط به كار با تاريخ را  بنويسيد .

4 – اگه ما بخواهيم يه HTML بوسيله DHTML Application در ويژوال بيسيك بسازيم هنگام ساختن فايل hTML يه فايل DLL ديگر هم Save ميشود كه در صورت نبود آن ، برنامه ما كار نميكد  و اگر هم بوسيله ويژوال بيسيك كاري كنيم كه همه چيزها فقط در فايل html ذخيره بشود كد هايي كه در قسمت كد نوشتيم در فايل ما ذخيره نميشود به همين خاطر ما نمي توانيم از html ي كه در ويژوال بيسيك ساختيم در يك سرور وب استفاده كنيم چون html موجود در سرور ، ديگر به  dll اي كه ما در كامپيوتر خودمان ساختيم دسرسي ندارد و اگه ما dll را جابجا كنيم هم ديگر html كار نميكند . چگونه مي توان اين مشكل را حل كرد ؟
پاسخ : اين فايل DLL ، در واقع كلاسها و كدهاي كامپايل شده مورد نياز در صفحات DHTML شما مي باشد . شما بايستي اين فايل dll را در كنار صفحات html تان در سرور مربوطه قرار دهيد . همچنين اين فايل dll بايستي در سرور مربوطه رجيستر شود .

5 - - من با وي بي كار مي كنم و تازه سر برنامه نويسي پورتها رفته ام . من ديتا(H378&) وآدرس(مثلا۲۵۵) را مي خواست به من گفتن بايد مبنا ها را ياد بگيري من آنهارا ياد گرفتم (مثلا مبناي ۲، ۱۲۸) اما چه ربطي داشت؟ من الان مي خواهم با وي بي وسايل را كنترل كنم اما شماره پورت و طريقه روشن نگه داشتن چند تاي آنها باهم در يك ديتا مانند مثال ديتا بالايي را نمي دانم .
پاسخ : براي آشنايي با مبناها ، شماره پورتها و برنامه نويسي آنها به كتاب 80X86 IBM PC and Compatible Computers كه هم خود آن و هم ترجمه اش در بازار ايران موجود است مراجعه كنيد . براي آشنايي با چگونكي برنامه نويسي سخت افزار در ويندوز و نيز برنامه نويسي پورت پرينتر به آرشيو موضوعي وبلاگ مراجعه كنيد .

6 - چه جوري ميشه از داخل برنامه اي كه توسط وي بي نوشته ام با فشار بر روي يك CommandButton يا از طريق منويي كه ساخته ام بر نامه اي ديگر مثلا نصب يك برنامه يا ماشين حساب ويندوز را اجرا كرد؟
پاسخ : با استفاده از يك API به اسم ShellExecute  . فرمت كلي استفاده از اين تابع بصورت زير است :

Const SW_SHOW = 1
Const SW_SHOWMAXIMIZED = 3

Public Declare Function ShellExecute Lib "Shell32.dll" Alias "ShellExecuteA" _
  (ByVal hwnd As Long, _
   ByVal lpOperation As String, _
   ByVal lpFile As String, _
   ByVal lpParameters As String, _
   ByVal lpDirectory As String, _
   ByVal nShowCmd As Long) As Long

Sub RunYourProgram()
  Dim RetVal As Long
  On Error Resume Next
  RetVal = ShellExecute(0, "open", "<full path to program>", "<arguments>", "<run in folder>", SW_SHOWMAXIMIZED)
End Sub


7 – چگونه مي توان از پورت پرينتر يكسري اطلاعات بصورت ورودي گرفت ؟
پاسخ :  به آرشيو موضوعي و بخش برنامه نويسي پورت موازي مراجعه كنيد .

8 – چگونه مي توان فلاپي ديسك يا يكي از درايوهاي هاردديسك را توسط ويب بي فرمت كرد ؟
پاسخ : ابتدا دو API زير را در برنامه تان Declare كنيد :

Private Declare Function SHFormatDrive Lib "shell32" _
    (ByVal hwnd As Long, ByVal Drive As Long, ByVal fmtID As Long, _
    ByVal options As Long) As Long


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

سپس كد زير را براي فرمت درايو بنويسيد :

    Dim DriveLetter$, DriveNumber&, DriveType&
    Dim RetVal&, RetFromMsg%
    DriveLetter = UCase(Drive1.Drive)
    DriveNumber = (Asc(DriveLetter) - 65)
    DriveType = GetDriveType(DriveLetter)

    If DriveType = 2 Then
        RetVal = SHFormatDrive(Me.hwnd, DriveNumber, 0&, 0&)
    Else
RetFromMsg = MsgBox("This drive is Not a removeable" & vbCrLf & _
        "drive! Format this drive?", 276, "SHFormatDrive Example")


        Select Case RetFromMsg
            Case 6'Yes
            RetVal = SHFormatDrive(Me.hwnd, DriveNumber, 0&, 0&)
            Case 7'No
            ' Do nothing
        End Select

     End If


9 – چگونه مي توان به يك IP  اطلاعات فرستاد ؟
پاسخ : مي توانيد از كنترل WinSock استفاده كنيد . براي اطلاعات بيشتر به آرشيو موضوعي مراجعه كنيد .

10 – چگونه مي توان ipMACHINENAME هر سيستمي را پيدا كرد ؟
پاسخ : مي توانيد از كنترل WinSock استفاده كنيد . براي اطلاعات بيشتر به آرشيو موضوعي مراجعه كنيد .

11 - چطور ميشه يه برنامه رو تو بك گرا ند اجرا كرد در حالي كه آيكون برنامه در سيني سيستم باشه. مثلا مثل آنتي ويروس ها ؟
پاسخ : به آرشيو موضوعي وبلاگ و بخش " قرار دادن آيكون برنامه در كنار ساعت ويندوز " مراجعه كنيد .

12 – در مورد تابع DoEvents توضيح دهيد .
پاسخ : اين تابع به سيستم عامل اجازه مي دهد ساير event ها را پردازش كند . سينتكس اين تابع بصورت زير است :

DoEvents( )

اين تابع زمانيكه بخواهيم به كاربر اجازه دهيم يك فرايند را در وسط كارش  كنسل كند مفيد مي باشد . براي مثال فرض كنيد برنامه اي  نوشته ايد كه با زدن يك دكمه اطلاعاتي را در يك فايل مي نويسد و با زدن دكمه ديگر از برنامه خارج مي شويد . اگر شما دكمه بستن برنامه را در وسط كار نوشتن اطلاعات در فيل فشار دهيد برنامه تا زمانيكه كار نوشتن انجام نشود بسته نخواهد شد اما اگر دستور DoEvents را جايي در وسط كد مربوط به دكمه نوشتن قرار دهيد اجرا هر زمان به آنجا برسد سيستم event مربوط به كليك شدن دكمه close را اجرا مي كند .

13 - با ويژوال بيسيک چگونه می توان با پورت سريال موازی و يواس بی ارتباط برقرار کرد ؟
پاسخ : براي اينكار ابتدا بايد شماره پورت آنها را بدانيد و سپس با استفاده از dll اي كه در بخش برنامه نوسي سخت افزار در آرشيو موضوعي آورده شده اطلاعات را به اين شماره پورتها بفرستيد يا از آنها بخوانيد .

14 – چگونه مي توانم توسط وي بي دايرکتوری ايجاد کنم يا فايل کپی کنم؟
پاسخ : به آرشيو موضوعي وبلاگ بخش كار با فايلها مراجعه كنيد .

+ حامد شیدائیان ; ٢:۳٩ ‎ب.ظ ; سه‌شنبه ٢٧ آبان ،۱۳۸٢
comment نظرات ()