پاسخ : سورس های کاربردی و پیشرفته توسط این سورس کد می توانید از صفحه دسکتاب خودتان فیلم بگیرید. کد PHP: Private Declare Function StretchBlt Lib "gdi32" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal hSrcDC As Long, ByVal xSrc As Long, ByVal ySrc As Long, ByVal nSrcWidth As Long, ByVal nSrcHeight As Long, ByVal dwRop As Long) As Long Private Declare Function GetDesktopWindow Lib "user32" () As Long Private Declare Function GetDC Lib "user32" (ByVal hwnd As Long) As Long Private Sub Form_Load() AutoRedraw = True End Sub Private Sub Timer1_Timer() Dim handel, DC As Long handel = GetDesktopWindow DC = GetDC(handel) StretchBlt Me.hdc, 0, 0, Width, Height, DC, 0, 0, Screen.Width, Screen.Height, vbSrcCopy Refresh End Sub
پاسخ : سورس های کاربردی و پیشرفته برنامه تان کل سیستم را به هنگ می اندازد؟ در وی بی یک تابع به نام Doevents موجود می باشد که اگر برنامه شما حتی هنگ کند سیستم عامل در نهایت سلامت(بدون هنگ کردن) کار میکند و خیلی راحت برای کاربران این امکان وجود دارد که برنامه هنگ کرده شما را ببندند .چه خوب نه؟ نکته: البته اگر از این تابع زیاد استفاده کنید برنامه شما کند می شود نحوه کار به صورتی است که مثلا در یک حلقه پردازشگر کارها را یکی پس از دیگری انجام می دهد و وقتی به این تابع رسید مروری بر فرمان هایی که به سیستم عامل داده شده است را اجرا میکند(به کارهای سیستم عامل رسیدگی می کند) که این سیستم مانع از هنگ کردن سیستم عامل می شود. 12- کپی اطلاعات به کلیپ برد و استخراج اطلاعات از آن با تابع settext از شی clipboard می توان یک رشته به کلیپ برد خالی کپی کرد به صورت زیر: Clipboard.SetText "salam" *نکته: برای کپی یک متن باید حتما کلیپ برد ویندوز شما خالی باشد. با تابع gettext از شی clipboard می توان به اطلاعات داخل کلیپ برد دسترسی پیدا کرد mohsen = Clipboard.GetText MsgBox mohsen, vbInformation برای خالی کردن کلیپ برد به این صورت عمل کنید. Clipboard.Clear
پاسخ : سورس های کاربردی و پیشرفته مثالی از کاربرد کد : میتونید کاری کنید که توی پروژه شما وقتی روی یک Label کلید کردن قابلیت جابجایی صفحه اجرا بشه !!! کد PHP: API های زیر را از API Viewer ویژوال بیسیک بازخوانی کنید ! SendMessage + ReleaseCapture کد زیر رو تو قابلیت MouseDown در Label قرار بدید ! MousePointer = 15 Call ReleaseCapture (&Call SendMessage(hWnd,&HA1,2,0 MousePointer = 1
پاسخ : سورس های کاربردی و پیشرفته تبدیل تاریخ سیستم به هجری شمسی کد PHP: Function mil2shams(miladi_mm_dd_yyyy As String) As String Dim iran(12), CHRIS(12) CHRIS(1) = 31: CHRIS(2) = 28: CHRIS(3) = 31 CHRIS(4) = 30: CHRIS(5) = 31: CHRIS(6) = 30 CHRIS(7) = 31: CHRIS(8) = 31: CHRIS(9) = 30 CHRIS(10) = 31: CHRIS(11) = 30: CHRIS(12) = 31 For i = 1 To 12: iran(i) = 31 - (i \ 7) - (i \ 12): Next mo = Val(Left(miladi_mm_dd_yyyy, 2)) miladi_mm_dd_yyyyy1 = Val(Mid(miladi_mm_dd_yyyy, 4, 2)) Year1 = Val(Mid(miladi_mm_dd_yyyy, 7, 4)) leap1 = Int((Year1 - 1) / 400) leap2 = Year1 - 1 - 400 * leap1 leap3 = leap2 \ 100 leap4 = leap2 Mod 100 leap5 = leap4 \ 4 CHRIS(2) = 28 If ((Year1 Mod 4) = 0 And (Year1 Mod 100) <> 0) Or _ (Year1 Mod 400) = 0 Then CHRIS(2) = 29 miladi_mm_dd_yyyyy11 = miladi_mm_dd_yyyyy1 For i = 1 To mo - 1 miladi_mm_dd_yyyyy11 = miladi_mm_dd_yyyyy11 + CHRIS(i) Next i miladi_mm_dd_yyyyy1num = 365 * (Year1 - 1) + _ miladi_mm_dd_yyyyy11 + 97 * leap1 + 24 * leap3 + leap5 miladi_mm_dd_yyyyy1num = miladi_mm_dd_yyyyy1num - 221056! iry1 = Int(miladi_mm_dd_yyyyy1num / 12053) iry2 = miladi_mm_dd_yyyyy1num - 12053 * iry1 iry = 33 * iry1 - 16 If iry2 > 365 Then iry = iry + 1: iry2 = iry2 - 365 iry3 = iry2 \ 1461 iry4 = iry2 Mod 1461 iry5 = iry4 \ 365 iry6 = iry4 Mod 365 iry = iry + 1 + 4 * iry3 + iry5 iran(12) = 29 esfand = (8 * iry + 22) / 33 - 0.001 esfand = esfand - Int(esfand) If esfand > 0.77 Then iran(12) = 30 For i = 1 To 12 If iry6 > iran(i) Then iry6 = iry6 - iran(i) _ Else irm = i: miladi_mm_dd_yyyyy11 = iry6: Exit For Next i miladi_mm_dd_yyyyy11 = miladi_mm_dd_yyyyy11 + 5
پاسخ : سورس های کاربردی و پیشرفته ساختن فایل در وی بی تا حالا شده دوست داشته با شین که برنامه تون یک مقدار رو توی یک فایل ذخیره کنه ؟ خب اگه دوشت دارین با ما همراه بشین... ابتدا باید فایل را با روش خاصی و با شماره منحصر بفردی باز کرد تا با توابع دیگر بتوان بر روی آن اطلاعاتی نوشت. Open "c:\s.txt" for binary as 1 این طوری فایل باز میشه که اسم فایل (اس.تکست ) است و روش باز کردن آن دودویی است یعنی هم برای خواندن اطلاعات و هم برای ذخیره اطلاعات. با این کد می توان سلام را در فایل شماره 1 نوشت Put #1,1,"salam" بعضی مواقع هم می خواهیم اطلاعات نوشته شده در فایل را بخوانیم که به صورت زیر است Open "c:\s.txt" For Binary As 1 Input #1, sa MsgBox sa این فایل باز شد و اطلاعان خط اول آن در متغیر سا ذخیره شد حالا نوبت به بستن فایل است Close #1
پاسخ : سورس های کاربردی و پیشرفته چگونه یک عدد صد رقمی را در سه رقمی با استفاده از آرایه ها ضرب کنیم. در حالت عادی ضرب عددی صد رقمی در سه رقمی باعث ایجاد خطای Over Flow می گردد. جهت برطرف نمودن این مشکل ما از الگوریتم زیر استفاده می نمائیم. ابتدا باید عدد 100 رقمی و 3 رقمی گرفته شود سپس ارقام آن به طور جداگانه در خانه های آرایه قرار گیرد. سپس عملیات ضرب را آغاز می کنیم. کد PHP: Option Base 1 ' باعث می شود اندیس آرایه از یک شروع شود F=false Help2[1]=0 Help3[1]=0 Help3[2]=0 I=0 Temp=Val(InputBox("Enter First Number: ")) ' عدد صد رقمی را وارد کنید Do While temp>0 I=i+1 Hundred[i]=Temp mod 10 Help2[j+1]=Temp mod 10 Sec=Temp\10 Overf=true Else if (Temp>9) and (j=i) then Help2[j+1]=Temp mod 10 Help2[j+2]=Temp\10 Overf=False Else Help2[j+1]=Temp End If Case 3: If (Temp>9) and (j< SPAN> Help3[j+2]=Temp mod 10 Sec=Temp\10 Overf=True Else if (Temp>9) And (j=i) then Help3[j+2]=Temp mod10 Help3[j+3]=Temp\10 Overf=False LP=J+3 Else Help3[j+2]=Temp End if End Select Next j Next k For z=1 to LP If (overf=true) then Temp=(Help1[z]+Help2[z]+Help3[z])+Sec) Else Temp=(Help1[z]+Help2[z]+Help3[z]) End if If (Temp>9) and (z=LP) then Final[z]=Temp mod 10 Final[z+1]=Temp\10 Else Final[z]=Temp Overf=False End if Next z Temp=Temp\10 Loop Indx=0 Temp=Val(InputBox("Enter Second Number: ")) 'عدد سه رقمی را وارد کنید Do While Indx<=3 Indx=Indx+1 Three[Indx]=Temp mod 10 Temp=Temp\10 Loop For k=1 to 3 For j=1 to i If overf=true then Temp=(Three[k]*Hundred[j])+sec Overf=false Else: Temp=Three[k]*Hundred[j] End if Select case k Case 1: If (Temp>9) and (j Help1[j]=Temp mod 10 Sec=temp\10 Overf=True Else if (Temp>9) and (j=i) then
پاسخ : سورس های کاربردی و پیشرفته تبدیل کد رنگ vb به html : ویژوال بیسیک کد رنگ را به صورت BBGGRR ذخیره می کند ؛ ما باید قالب رنگ را به RRGGBB# تبدیل کنیم ؛ یعنی جای کد رنگ قرمز با آبی باید عوض شود. تابع زیر اینکار را انجام می دهد: کد PHP: Function VB2HTMLColor(color As Long) As String Dim aux As String aux = Right("00000" & Hex(color), 6) VB2HTMLColor = "#" & Right(aux, 2) & Mid(aux, 3, 2) & Left(aux, 2) End Function
پاسخ : سورس های کاربردی و پیشرفته دست آوردن IP و نام سيستم ميزبان برای امروز قصد دارم يک پروژه ساده را به شما معرفی کنم. شما ظرف چند دقيقه ميتوانيد اين پروژه را در ويژوال بيسيک بسازيد. ابتدا ويژوال بيسيک را باز کنيد سپس کنترلر های زير را روی فرم قرار دهيد : دو عدد TextBox و دو عدد WinSock حالا روی فرم دو بار کليک کرده و در رويداد لود فرم کدهای زير را وارد کنيد : کد PHP: Text1.Text = Winsock1.LocalIP Text2.Text = Winsock2.LocalHostName برنامه را اجرا کنيد . اين برنامه آی پی و پورت سيستم ميزبان را در اختيار شما قرار ميدهد. لازم به ذکر است بعدا که به مرحله ساخت اسب های تراوا رسيديم خدمت شما عرض خواهم کرد که کاربرد اين برنامه در هک سيستم قربانيان چيست
پاسخ : سورس های کاربردی و پیشرفته انتقال اطلاعات از یک پایگاه به پایگاه داده دیگر : » شاید یکی دیگر از جنبه های برنامه نویسی پایگاه داده توانایی کپی کردن اطلاعات از پایگاه داده ای به پایگاه داده دیگر است که بیشترین کاربرد این عمل در پشتیبان گیری یا انتقال اطلاعات از جدول فرعی به جدول اصلی ( مادر ) مشخص می شود . » برای انجام این انتقال دو نوع روش وجود دارد. روش اول این است که ما اطلاعات را به صورت رکورد به رکورد از جدول فرعی خوانده و به صورت رکورد به رکورد در جدول اصلی قرار دهیم و مراقب باشیم که اطلاعات تکراری در این عملیات کپی نگردند ، که انجام کد نویسی برای این روش به نظر من کاری مشکل و دشوار است . روش دوم استفاده از دستورات SQL است که برای انجام چنین عملیاتی ایجاد شده اند و امکان انجام همه این کارها را در یک خط کد نویسی فراهم می نمایند . در این درس من می خواهم روش دوم را به شما عزیزان آموزش دهم . » برای مثال شما دو پایگاه داده با نام های mdb1 ( پایگاه داده مادر ) و mdb2 ( پایگاه داده فرعی ) که دارای ساختار یکسانی هستند را در نظر بگیرید . ما قصد داریم اطلاعات موجود در پایگاه داده فرعی را بر روی اطلاعات موجود در پایگاه داده مادر بیفزاییم . پس در این حالت اطلاعاتی باید از پایگاه داده فرعی یا رابط به پایگاه داده مادر کپی گردند که نظیری در پایگاه داده مادر ندارند تا به این صورت از ذخیره سازی داده های تکراری در پایگاه داده مادر جلوگیری شود . _ به دلیل این که انجام این کار در یک خط کد نویسی صورت می گیرد ما دیگر توانایی مراقبت از ورود داده های تکراری را نداریم . پس بهتر است که انجام این کار را هم بر عهده خود دستور قرار دهیم . به این صورت که اگر ما در پایگاه داده مادر فیلدی را به عنوان کلید قرار دهیم در هنگام انتقال داده ها این کلید به طور خودکار اجازه ورود داده های تکراری را نخواهد داد و فقط داده های کپی خواهند شد که در فیلد کلید نظیری ندارند . برای مثال شما دو پایگاه داده را به صورت زیر تنظیم نمایید : » پایگاه داده مادر ( mdb1 ) : --> یک جدول با نام Table1 دارای فیلد های زیر : > ID : از نوع عددی به عنوان کلید > Name : از نوع متن > Family : از نوع متن » پایگاه داده فرعی ( mdb2 ) : --> یک جدول با نام Table2 دارای فیلد های زیر : > ID : از نوع عدد > Name : از نوع متن > Family : از نوع متن » دستور : جدول فرعی SELECT _ FROM ' مسیر و نام جدول اصلی ' IN جدول اصلی INSERT INTO _در این دستور فقط مسیر و نام پایگاه داده مقصد ذکر می شود و پایگاه داده مبدا باید در اجرای برنامه گشوده شود . حال مثال را کامل می کنیم . ابتدا شما باید از دیالوگ References گزینه Microsoft DAO 3.51 Object Libraryرا تیک بزنید و کد زیر را در دکمه ای قرار دهید : ()Private Sub CmdCopy_Click Dim DBase AsDatabase Dim SQL As String (Set DBase = OpenDatabase(App.Path & "\mdb2.mdb", True, False " SQL = " INSERT INTO Table1 IN '" & App.Path & "\mdb1.mdb' SELECT * FROM Table2 DBase.Execute SQL " vbInformation , " Copy Completed , " عمل انتقال اطلاعات با موفقیت به پایان رسید" Msgbox
پاسخ : سورس های کاربردی و پیشرفته چگونه می توان هندل ( Handle ) یک Textbox را در یک پنجره بدست آورد ؟ پاسخ : برای بدست آوردن هندل پنجره برنامه ای که هم اکنون باز است از تابع FindWindow استفاده کنید . نحوه declare کردن آن بصورت زیر است : Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long فرض کنید caption فرم برنامه مورد نظرتان در متغیر strWindowName قرار داشته باشد . با دستور زیر می توانید هندل پنجره آنرا بدست آورید : Dim hwndFound As Long hwndFound = FindWindow(vbNullString, strWindowName) نکته : برای پیدا کردن هندل پنجره برنامه ای که caption آنرا بطور دقیق نمی دانید می توانید از تابع FindWindowLike استفاده کنید . حال که هندل پنجره مورد نظرتان را استخراج کردید می توانید با استفاده از تابع FindWindowEx هندل اشیا موجود در آن پنجره را بدست آورید . نحوه declare کردن این تابع بصورت زیر است : Private Declare Function FindWindowEx Lib "user32" Alias "FindWindowExA" (ByVal hWnd1 As Long, ByVal hWnd2 As Long, ByVal lpsz1 As String, ByVal lpsz2 As String) As Long این تابع را بصورت زیر استفاده کنید : htextbox = FindWindowEx(hwndFound, ByVal 0&, "ThunderRT6TextBox", vbNullString) که ThunderRT6Textbox نام کلاس Rich Textbox ها در ویژوال بیسیک 6 است . دستور فوق هندل اولین Textbox موجود در پنجره را به شما بر می گرداند . برای بدست آوردن هندل سایر Textbox ها از حلقه زیر استفاده کنید : Dim lChild As Long Dim lLast As Long Do lLast = lChild lChild = FindWindowEx(lParent, lChild, "ThunderRT6Textbox", vbNullString) Loop While lChild