• پایان فعالیت بخشهای انجمن: امکان ایجاد موضوع یا نوشته جدید برای عموم کاربران غیرفعال شده است

نمونه برنامه های VB6 -آموزش از روی مثال

sinbad68

Registered User
تاریخ عضویت
6 دسامبر 2006
نوشته‌ها
272
لایک‌ها
21
يك برنامه ساده.

اين برنامه معدل يه دانش آموز يا دانشجو رو دريافت مي كنه وبه شما ميگه كه خوبه يا بده . اين موضوع رو به صورت نوشتاري و رنگ به كاربر اعلام ميكنه.

اجزاي اين برنامه شامل زير است:
يك عدد Command
سه عدد label

کد:
Private Sub Command2_Click()
Dim num As Variant
num = InputBox("Please enter your average")
If num >= 1 And num <= 10 Then
Label3.BackColor = vbRed
Label1.BackColor = vbWhite
Label2.BackColor = vbWhite
Else
If num > 10 And num <= 15 Then
Label2.BackColor = vbYellow
Label1.BackColor = vbWhite
Label3.BackColor = vbWhite
Else
If num > 15 Then
Label1.BackColor = vbGreen
Label2.BackColor = vbWhite
Label3.BackColor = vbWhite
End If
End If
End If
End Sub

براي امروز بسه.

تا بعد.
 

sinbad68

Registered User
تاریخ عضویت
6 دسامبر 2006
نوشته‌ها
272
لایک‌ها
21
نحوه نگاتيو کردن عکس، در يک خط!

سلام.

امروز می خوام یه چیز جالب رو براتون ها بگم.

می دونستید که شما با یک خط کد می تونید یک عکس رو نگاتیو (Invert) کنید!؟

يک Picture Box ايجاد کنيد (با اسم Picture1) و عکسي رو هم براش انتخاب کنيد. حالا کافيه که کد زير رو وارد برنامه کنيد:
Picture1.PaintPicture Picture1.Picture, 0, 0, , , , , , , vbDstInvert

به جاي vbDstInvert مي شه چيز هاي ديگه هم گذاشت تا افکت هاي ساده ي ديگه اي هم اعمال بشه!
 

sinbad68

Registered User
تاریخ عضویت
6 دسامبر 2006
نوشته‌ها
272
لایک‌ها
21
فرمان Shell

فرمان Shell يکي از فرمان هاي مهم است که در VB پر کاربرد است.

با کمک آن مي توانيد هر پرونده اي رو باز کنيد تقريبا ً مثل RUN ويندوز.

حالا چند نکته و چند دستور رو اينجا ياد آوري مي کنيم:

نکات:

Shell فقط پرونده های اجرایی را اجرا می کند
مثل:
EXE;COM;BAT
که باز کردن پسوند هاي ديگه هم راه حل خودشونو دارن.
در قبل و بعد آدرس بايد علامت کاما (") گذاشته شود

دستور ها:

شکل استفاده از دستور:
"Shell "Command

در قسمت Command، نام برنامه را مي گذاريد.
از اين دستور مي تونين اکثر برنامه هاي ويندوز را فقط با دادن نام آنها، اجرا کنيد، مثل Explorer.exe و Notepad.exe.

اما براي ديگر برنامه ها بايد نام و مسير کامل آنها داده بشه.
 

sinbad68

Registered User
تاریخ عضویت
6 دسامبر 2006
نوشته‌ها
272
لایک‌ها
21
Filenameنام پرونده اي با پسوند cpl هست که مي خواهيد اجرا کنيد. اين پرنده ها مربوط به خود ويندوز هستن. و در قسمت t آخر، شماره tab يا همون سربرگ رو مي ذاريم.

براي اينکه بهتر درک کنيد اين آدرس رو امتحان کنيد:
Rundll32.exe shell32.dll,Control_RunDLL main.cpl,@0,1

حالا چند تا از همين مثال ها را براتون ميذارم تا بهتر بفهميد:
باز کردن پوشه system32
rundll32.exe shell32.dll,ShellExec_RunDLL
باز کردن اضافه يا حذف برنامه ها در صفحه تنظيم:
RUNDLL32.EXE shell32.dll,Control_RunDLL appwiz.cpl,,0

اگه خواستيد فايل هاي بيشتري رو باز کنيد بريد توي پوشه سيستم 32 (C:\Windows\System32) اونجا دنبال فايلهاي cpl بگرديد.
تا بعد.
 

sinbad68

Registered User
تاریخ عضویت
6 دسامبر 2006
نوشته‌ها
272
لایک‌ها
21
با سلام.

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

Calc
Write
Notepad
Spider
Winmine
Mshearts
freecell
Regedit
Taskmgr
control fonts
control desktop
control mouse
control keyboard
osk
magnify
utilman
mstsc
cmd
control admintools
cleanmgr
winchat
clipbrd
dcomcnfg
control printers
charmap
eudcedit
perfmon
control netconnections
dxdiag
cliconfg
sysedit
ddeshare
diskpart
chkdsk
verifier
sigverif
packager
iexpress
fsquirt
drwtsn32
 

sinbad68

Registered User
تاریخ عضویت
6 دسامبر 2006
نوشته‌ها
272
لایک‌ها
21
Shutdown –l –t 0
Shutdown –s –t 0
Shutdown –r –t 0

به این سه دستور توجه کنید. شما میتونید از این دستورات برای Log Off ، Restart و یا Shutdown کردن ویندوزتون استفاده کنید. فقط کافیه که دستور دلخواه رو جلوی دستور Shell تایپ کنید.

دستور زیر باعث میشه که ویندوز Shutdown بشه :
Shell "Shutdown –s –t 0"

و امّا اون عدد صفر که آخر دستور نوشته شده مدّت زمانیه که تعیین میکنه چند ثانیه بعد از اجرای دستور ویندوز Shutdown بشه که در اینجا اونو صفر قرار دادیم تا بلافاصله اینکار انجام بشه.
 

sinbad68

Registered User
تاریخ عضویت
6 دسامبر 2006
نوشته‌ها
272
لایک‌ها
21
ساعت عقربه ای (آنالوگ)
یک پروژه جدید باز کنید و تو فرمتون یک Timer بذارید و Interval اونو 1000 بذارید، حالا کد زیر رو تو قسمت جنرال فرمتون کپی کنید :
کد:
Private Sub Form_Load() 
    Me.BackColor = vbBlack 
End Sub 

Private Sub Timer1_Timer() 
    Form1.Refresh 
    X = Form1.Width / 2 
    Y = Form1.Height / 2.2 
    Circle (X, Y), Y - 200, vbWhite 
    Circle (X, Y), Y - 220, vbWhite 
    For i = 1 To 12 
        Circle (X + (Y - 400) * Cos(i * 22 / 42), Y + (Y - 400) * Sin(i * 22 / 42)), 50, vbRed 
    Next 
    h = Hour(Time()) 
    If h > 12 Then 
        h = h - 12 
    End If 
    m = Minute(Time()) 
    s = Second(Time()) 
    Line (X, Y)-(X + (Y - 600) * Cos((66 / 14 + s * (44 / 420))), Y + (Y - 600) * Sin((66 / 14 + s * (44 / 420)))), vbBlue 
    Line (X, Y)-(X + (Y - 800) * Cos((66 / 14 + m * (44 / 420))), Y + (Y - 800) * Sin((66 / 14 + m * (44 / 420)))), vbYellow 
    Line (X, Y)-(X + (Y - 1200) * Cos(66 / 14 + h * (44 / 84) + (m / 12) * (44 / 420)), Y + (Y - 1200) * Sin(66 / 14 + h * (44 / 84) + (m / 12) * (44 / 420))), vbWhite 
End Sub
حالا برنامه رو اجرا کنید و ببینید که ساعت به چه زیبایی کار میکنه.

موفق باشید.

تا بعد.
 

zeus_titan

کاربر تازه وارد
تاریخ عضویت
17 مارس 2007
نوشته‌ها
157
لایک‌ها
8
سلام
دنبال یه برنامه می گشتم ،دیدم برنامه ها خیلی جالب ان بیشترشون رو اجرا کردم.به خصوص اون برنامه که فایل های wav رو پخش می کرد.
دستتون درد نکنه.
thanks.gif

راست اش دارم برنامه نویسه شبکه رو یاد می گیرم.;)
برنامه ی چت بین client و server رو نوشتم،(با استفاده از winsock) برنامه ای که می خوام:
مثلا کلاینت باید دو عدد رو بگیره با زدن یه کلید به سرور ارسال بشه و سرور مثلا جمعشون کنه و نتیجه رو یه کلاینت بفرسته!بهم گفته بودن بودن برم دنبال
(نتونستم منبع فارسی خوبی پیدا کنم،توی کتاب هم خیلی گنگ بود،اگر منبعی می شناسید ...) dcom ،activex و...اما از طریق اونها به نتیجه ای نرسیدم.
امیدوارم بتونید سورس یه برنامه مشابه این برنامه رو برام بزارید، یا راهنمایی ام بکنید.
یه مقدار عجله دارم ، ممنون
!
 

balabala

کاربر قدیمی پرشین تولز
کاربر قدیمی پرشین تولز
تاریخ عضویت
22 می 2005
نوشته‌ها
8,362
لایک‌ها
5,745
سن
42
محل سکونت
یه خورده اونورتر
سلام
دنبال یه برنامه می گشتم ،دیدم برنامه ها خیلی جالب ان بیشترشون رو اجرا کردم.به خصوص اون برنامه که فایل های wav رو پخش می کرد.
دستتون درد نکنه.
thanks.gif

راست اش دارم برنامه نویسه شبکه رو یاد می گیرم.;)
برنامه ی چت بین client و server رو نوشتم،(با استفاده از winsock) برنامه ای که می خوام:
مثلا کلاینت باید دو عدد رو بگیره با زدن یه کلید به سرور ارسال بشه و سرور مثلا جمعشون کنه و نتیجه رو یه کلاینت بفرسته!بهم گفته بودن بودن برم دنبال
(نتونستم منبع فارسی خوبی پیدا کنم،توی کتاب هم خیلی گنگ بود،اگر منبعی می شناسید ...) dcom ،activex و...اما از طریق اونها به نتیجه ای نرسیدم.
امیدوارم بتونید سورس یه برنامه مشابه این برنامه رو برام بزارید، یا راهنمایی ام بکنید.
یه مقدار عجله دارم ، ممنون
!
سلام
شانس شما الان وقت داشتم :D
این مثال msdnه با یکمی تغییر تا همون کاری که خواستی رو بکنه. در واقع سرور یک port رو باز میکنه و گوش میده برای یک کانکت. بعد از شنیدن یه کانکت دو تا عدد رو با هم میفرسته و طرف کلاینت هم IP و port سرور رو ست میکنید و کانکت میشید و بعد از گرفتن عدد جمعش رو میفرستید.

http://rapidshare.com/files/76532495/serverclient.zip.html
 

zeus_titan

کاربر تازه وارد
تاریخ عضویت
17 مارس 2007
نوشته‌ها
157
لایک‌ها
8
سلام
شانس شما الان وقت داشتم :D
این مثال msdnه با یکمی تغییر تا همون کاری که خواستی رو بکنه. در واقع سرور یک port رو باز میکنه و گوش میده برای یک کانکت. بعد از شنیدن یه کانکت دو تا عدد رو با هم میفرسته و طرف کلاینت هم IP و port سرور رو ست میکنید و کانکت میشید و بعد از گرفتن عدد جمعش رو میفرستید.

http://rapidshare.com/files/76532495/serverclient.zip.html

ممنون! پس چقدر من خوش شانسم
3120.gif


این برنامه کلک مرغابی زده، برنامه باید با یه منطق خاص نوشته بشه که هنوز پیداش نکردیم فعلا در مورد Rpc دارم می خونم.اسم تابع همراه با ورودی ها و فضای خالی برای جمع اعداد باید به سرور فرستاده شه مثل یه پکیج!همون پکیج که حالا مقدار جمع اعداد رو داره به کلاینت برگردونه!
072.gif
یه چیزی توی مایه های عکس
 

فایل های ضمیمه

  • 11.bmp
    279.5 KB · نمایش ها: 33

mehdi_7070

Registered User
تاریخ عضویت
13 نوامبر 2005
نوشته‌ها
74
لایک‌ها
6
سلام

من میخواستم توی برنامه MyNotes که balabala جان زحمت آموزش اون را کشیده بودند یک تغییر بدهم .
به این صورت که وقتی توی TextBox اینتر کردیم ، به خط بعدی بره و اول خط یک فاصله (space) گذاشته بشه .
مثلا :
سلام
enter
خوبی؟
(به space قبل از "خوبی؟" توجه کنید)

با تشکر
 

sinbad68

Registered User
تاریخ عضویت
6 دسامبر 2006
نوشته‌ها
272
لایک‌ها
21
با سلام.

امروز چند تا برنامه براتون می زارم.

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

کد:
If val(text1)<val(text2)Then 
I=text2 
Text4=i 
Else 
I=text1 
Text4=i 
End if 
If i<val(text3) then 
I=text3 
Text4=i 
End if

برنامه ای که روزهای ماه را دریافت کرده و ایام هفته را مشخص کند.

کد:
Dim a as integer 
Dim b as integer 
A=val(text1) 
B=a mod 7 
If b=0 then 
Text2="جمعه" 
End if 
If b=1 then 
Text2="شنبه" 
End if 
If b=2 then 
Text2="یکشنبه" 
End if 
If b=3 then 
Text2="دوشنبه" 
End if 
If b=4 then 
Text2="سه شنبه" 
End if 
If b=5 then 
Text2="چهارشنبه" 
End if 
If b=6 then 
Text2="پنجشنبه"
 

sinbad68

Registered User
تاریخ عضویت
6 دسامبر 2006
نوشته‌ها
272
لایک‌ها
21
برنامه ای که شکل زیر را درست کند.

*
* *
* * *
* *
*
کد:
For I =1 to 3 
For j =1 to i 
Print "*" spc (1); 
Next j 
Print 
Next i 
For I =2 to 1 step-1 
For j =1 to i 
Print "*" spc (1); 
Next j 
Print 
Next i

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

1 2 3 4 5 6 7
1 2 3 4 5
1 2 3
1
کد:
K=30 
For I =7 to 1 step-2 
K=k+2 
Print ; tab (k); 
For j =1 to i 
Print j ; 
Next j 
Print 
Next i
 

sinbad68

Registered User
تاریخ عضویت
6 دسامبر 2006
نوشته‌ها
272
لایک‌ها
21
برنامه ای که خروجی زیر را تولید کند.

1
1 2 3
1 2 3 4 5
1 2 3 4 5 6 7
1 2 3 4 5
1 2 3
1
کد:
K=29 
For I =1 to 3 
K= k-4 
Print ; tab (k) ; 
For j =1 to 2 * I -1 
Print j ; spc (1) ; 
Next 
Print 
Next 
K= 9 
For I =7 to 1 step-2 
K = k+4 
Print ; tab (k) ; 
For j =1 to i 
Print j ; spc (1) ; 
Next 
Print 
Next

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

1 2 3 4
1 2 3
1 2
1
1 2
1 2 3
1 2 3 4
کد:
For I =4 to 1 step-1 
For j =1 to i 
Print j ; 
Next j 
Print 
Next i 
For I =2 to 4 
For j =1 to i 
Print j ; 
Next j 
Print 
Next i

برای امروز بسه.

از موقعی که جناب آقا سعید از اینجا رفته دیگه این بخش سوت و کور شده.

تا بعد.
 

sinbad68

Registered User
تاریخ عضویت
6 دسامبر 2006
نوشته‌ها
272
لایک‌ها
21
تابع SendKeys

سلام به همگی .

در حالت عادی شما برای درج هر کراکتری و یا انجام هر عملی دکمه های مورد نظرتون رو از کیبورد تایپ می کنید.
کار این تابع همونطور که از اسمش هم پیداست اینه که شما هر دکمه ای رو که می خواهید از صفحه کلید به سیستم عامل یا برنامه مورد نظر ارسال کنید رو از طریق کد نویسی ارسال می کنه.

اینم شکل کلی تابع : SendKeys string

اینم از مقادیری که که باید در آرگومان String قرار بدین :

کلید در کیبورد کد

BACKSPACE {BACKSPACE}, {BS}, or {BKSP}
BREAK {BREAK}
CAPS LOCK {CAPSLOCK}
DEL or DELETE {DELETE} or {DEL}
DOWN ARROW {DOWN}
END {END}
ENTER {ENTER}or ~
ESC {ESC}
HELP {HELP}
HOME {HOME}
INS or INSERT {INSERT} or {INS}
LEFT ARROW {LEFT}
NUM LOCK {NUMLOCK}
PAGE DOWN {PGDN}
PAGE UP {PGUP}
PRINT SCREEN {PRTSC}
RIGHT ARROW {RIGHT}
SCROLL LOCK {SCROLLLOCK}
TAB {TAB}
 

sinbad68

Registered User
تاریخ عضویت
6 دسامبر 2006
نوشته‌ها
272
لایک‌ها
21
UP ARROW {UP}
F1 {F1}
F2 {F2}
F3 {F3}
F4 {F4}
F5 {F5}
F6 {F6}
F7 {F7}
F8 {F8}
F9 {F9}
F10 {F10}
F11 {F11}
F12 {F12}
F13 {F13}
F14 {F14}
F15 {F15}
 

sinbad68

Registered User
تاریخ عضویت
6 دسامبر 2006
نوشته‌ها
272
لایک‌ها
21
اینا هم مربوط به کلید های کنترلی میشه :

SHIFT +
CTRL ^
ALT %

حالا یه مثال می زنم کلی حال کنیم :

دستور زیر کار کلید های ترکیبی Alt+F4 رو انجام میده یعنی هر پنجره ای رو که فعال باشه می بنده و نهایتا پنجره ShutDown رو نشون میده.
SendKeys "%{F4}"

مثلا این یکی یه متن رو داخل یه تکست باکس Select می کنه :

Text1.SetFocus
SendKeys "{Home}+{End}"

که تو اینجا Text1 همون تکست باکسیه که می خوایم متنش Select بشه.

تا بعد.

بای بای.
 

sinbad68

Registered User
تاریخ عضویت
6 دسامبر 2006
نوشته‌ها
272
لایک‌ها
21
آشنايي با آرايه در برنامه نويسي

با سلام.

امروز در مورد آرایه ها در VB براتون می نویسم.

تعريف آرايه : به تعدادي متغير از يك نوع در حافظه را كه پشت سر هم قرار مي گيرند آرايه گفته مي شود.

طرز تعريف آرايه :

Dim ArrayName ( n ) as DataType

با توجه به اعلان بالا :

Dim : كليد واژه اعلان آرايه و متغير است.
ArrayName : نام دلخواه تعريف آرايه است.
n : تعداد خانه هاي آرايه است. ( يك عدد صحيح غير صفر ) ( تعداد خانه ها = n+۱ )
DataType : نوع آرايه ( Integer و String و … )

تذكر :‌

پايين ترين شماره آرايه ( پايين ترين انديس ) صفر است كه اگر هيچ دستوري قبل از آن به نام Option Base تعريف نشده باشد. اين دستور پايين ترين انديس يك آرايه را مشخصي مي كند.

تا بعد.
 

sinbad68

Registered User
تاریخ عضویت
6 دسامبر 2006
نوشته‌ها
272
لایک‌ها
21
توليد اعداد تصادفي ( Random ) :

با سلام.

براي توليد اين نوع اعداد از تابع RND استفاده مي شود.

مثال :

a = Int(Rnd * 10)
Print a

اگر هر بار دكمه را بفشاريد يك عدد صحيح بين صفر تا ۱۰ توليد مي شود. ( قطعه كد ذكر شده را در در يك دكمه بنويسيد )
 

sinbad68

Registered User
تاریخ عضویت
6 دسامبر 2006
نوشته‌ها
272
لایک‌ها
21
امروز در باره ي اشياي FileListBox ، DirectoryListBox و DriveListBox صحبت مي كنيم.

اين سه شي به ترتيب جعبه ليست هاي فايل و فهرست و درايو مي باشند.

البته هيچ كدام به تنهايي كاربرد ندارند و بايد ميان آن ها ارتباط برقرار كرد و آن ها را به هم پيوند زد.

طرز ارتباط اين سه شي :

Private Sub Drive1_Change()
Dir1.Path = Drive1.Drive
End Sub
Private Sub Dir1_Change()
File1.Path = Dir1.Path
End Sub

دستور اول پيوند فهرست به درايو مربوطه و دستور دوم نسبت دهي فايل انتخابي به فولدري كه فايل در آن قرار دارد مي باشد.

خواص مهم FileListBox :

FileName : نام فايل انتخاب شده در جعبه فايل.
Path : مسير فايل انتخابي.
Pattern : الگو فايل را در جعبه فايل تعين مي كند.

نمونه بارز کار با این برنامه ها در برنامه ACD See هست.

تا بعد.

بای بای.
 
بالا