آدرس دهی
آهنگ سلطان قلبم تو هستی تو هستی
داستانی بسیار جالب از دوست عزیزم (آقا مسعود)
توضیحاتی در مورد راز قانون جاذبه(The Secret)
Zip Password: www.anyproject.blogfa.com
انواع آهنگها برای دانلود (رایگان)
آهنگ سلطان قلبم تو هستی تو هستی
داستانی بسیار جالب از دوست عزیزم (آقا مسعود)
توضیحاتی در مورد راز قانون جاذبه(The Secret)
Zip Password: www.anyproject.blogfa.com
انواع آهنگها برای دانلود (رایگان)
وی بی یک تابعی به اسم ()Command دارد که آدرس فایلی که را باز کردیم برمیگرداند .
مثلا اگر این کد را بنویسیم :
()Private Sub Form_Load
()Me.Caption=Command
End Sub
و از فایل خود exe بگیریم (با نام Project1.exe)
بعد اگر یک فایل متن که در درایو C است را با برنامه خود OpenWith کنیم ، می بینیم که تیتر فرم ما به
"C:\Text1.txt" تبدیل شده است . برای اینکه این فایل خوانا شود باید دوتا گیومه را از اول و آخر آن برداریم
پس :
(me.Caption=Mid(Command(),2,Len(Command())-2
خوب حالا آدرس ما منطقی شد . می تونیم بگیم :
if Me.Caption<>"" Then
CommonDialog1.Filename=Me.Caption
WindowsMeidaPlayer1.FileName=Me.Caption
RichTextBox1.LoadFile(Me.Caption,SelRTF) 'Load Rtf File
Image1.Picture = LoadPicture(Me.Caption) ' Load An image
End IF
ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ
خوب منم بر خودم واجب دونستم که چی ..
تو این درس می خوام همه کی کد ها را بگم + برنامه نویسی آن ها
کی کدها عبارتند از :
دکمه
A ---------------> 65
B ---------------->66
C ---------------> 67
D ---------------->68
E ---------------> 69
F---------------->70
G ---------------> 71
H ---------------->72
I ---------------> 73
J ---------------->74
K ---------------> 75
L ---------------->76
M ---------------> 77
N ---------------->78
O ---------------> 79
P ---------------->80
Q ---------------> 81
R ---------------->82
S ---------------> 83
T ---------------->84
U ---------------> 85
V---------------->86
W ---------------> 87
X ---------------->88
Y ---------------> 89
Z---------------->90
برای اعداد هم از ۰ تا ۹ به ترتیب از ۴۸ است تا ۵۷
برای F ها باید از این ساختار بروی : vbKeyF1
برنامه نویسی : این خط کد میگه اگر دکمه A را زد Print کند :
(Private Sub Form__KeyDown(KeyCode as Integer,Shift as Integer
if KeyCOde=65 then
"Me.Print "You Press A Key
end if
End Sub
بعضی خواص فرم ها
1-appearance =این خاصیت مشخص میکند که فرم به صورت سه بعدی (3D) باشد یا تخت (flat)
2-Back Color=این خاصیت رنگ زمینه فرم را مشخص میکند
3-Border style=این خاصیت اگر بر روی(0-None)باشد فرم را بدون حاشیه و دکمه های مینیمایز و ماکسیمایز وبستن نشان میدهد و کاربر نمی تواند آن را تغییر اندازه بدهد و اگر بر روی(1-Fixed single)باشد فرم را با حاشیه و دکمه بستن نشان میدهد و کاربر نمی تواند آن را تغییر اندازه بدهد و اگر بر روی(2-Sizable) باشد تمام دکمه ها و حاشیه فرم را نشان میدهد.
4-Icon=این خاصیت آیکون برنامه را مشخص می کند
5-Max button=این خاصیت فعال یا غیر فعال بودن دکمه ماکسیمایز را مشخص می کند
6- Min button=این خاصیت فعال یا غیر فعال بودن دکمه مینیمایز را مشخص می کند
7-Mouse icon=این خاصیت شکل نشانگر موس را تعیین می کند
8-Mouse Pointer=این خاصیت نوع شکل نشانگر موس را مشخص می کند مثل ساعت شنی یا دست شدن نشانگر
9-Movable=این خاصیت مشخص میکند که آیا کاربر اجازه دارد که فرم را جابجا کند یا نه
10-Picture=عکس زمینه فرم را مشخص می کند
11-ShowIn Taskbar=مشخص می کند که برنامه در تسکبار دیده شود یا نه
12-Startup position=محل قرار گرفتن فرم در هنگام شروع برنامه را مشخص می کند
13-Window state=نوع نمایش پنجره در هنگام شروع برنامه(مینیمایز/ماکسیمایز/نرمال)
راه اندازی مجدد سیستم !!!!
shell ("shutdown -r -t 0")
چگونگی ساخت یک Splash Screen برای برنامه هایی که مینویسیم را براتون شرح بدم . خوب باز هم باید توابع مورد نیاز را فراخوانی کرده و همچنین ثوایت مورد نیاز را تعریف کنیم
Const LWA_COLORKEY = &H1
Const LWA_ALPHA = &H2
Const GWL_EXSTYLE = (-20)
Const WS_EX_LAYERED = &H80000
Private Declare Function GetWindowLong Lib "user32" Alias _
"GetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long) As Long
Private Declare Function SetWindowLong Lib "user32" Alias _
"SetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long, ByVal _
dwNewLong As Long) As Long
Private Declare Function SetLayeredWindowAttributes Lib _
"user32" (ByVal hWnd As Long, ByVal crKey As Long, ByVal bAlpha _
As Byte, ByVal dwFlags As Long) As Long
نوع نمایش این Splash Screen به گونه ای است که میزان شفافیت فرم آن از 0 به 255 رسیده و دوباره کاهش یافته به صفر می رسد (یا بعبارت دیگر از حالت نامرئی به شفافیت کامل رسیده و دوباره از شفافیت آن کاسته شده و نامرئی می شود ) . خوب تنها Control که برای این برنامه نیاز داریمTimer می باشد . کدی که در Form_Load می بینید باعث می شود که فرم در ابتدای امر نامرئی باشد چون مقدار bAlfa آنرا 0 داده ام
Private Sub Form_Load()
Dim Ret As Long
'Set the window style to 'Layered'
Ret = GetWindowLong(Me.hWnd, GWL_EXSTYLE)
Ret = Ret Or WS_EX_LAYERED
SetWindowLong Me.hWnd, GWL_EXSTYLE, Ret
'SetLayeredWindowAttributes Me.hWnd,0,(0-255),LWA_ALPHA
SetLayeredWindowAttributes Me.hWnd,0,0,LWA_ALPHA
Timer1.interval = 1
End
End Sub
در مرحله بعد برای اینکه فرم از حالت نامرئی به مرئی برسد (یعنی مقدار آن از 0 به 255 برسد) یک حلقه For نوشتم . حال برای اینکه فرم دوباره از حالت مرئی به نامرئی برشد یک حلقه For دیگر با گام افزایش -1 نوشتم تا مقدار آنرا کاهش دهد .
Private Sub Timer1_Timer()
For i = 1 To 255
SetLayeredWindowAttributes Me.hWnd,0,CByte(i),LWA_ALPHA
Next i
For i = 255 To 1 Step -1
SetLayeredWindowAttributes Me.hWnd,0,CByte(i),LWA_ALPHA
Next i
Timer1.Enabled = False
End Sub
چگونه می توانیم دستورات Dos را از طریق ویژوال بیسیک اجرا کنیم ؟
ابتدا Command Prompt را فراخوانی می کنیم , خوب برای فراخوانی از تابع Shell استفاده میکنیم که قبلا در مورد این تابع توضیح داده ام :
Shell "cmd.exe"
:: اکنون یک شیء ایجاد می کنیم تا بتوانیم از طیق آن به هسته Dos دسترسی داشته باشیم :
Dim WinShell
Set WinShell = CreateObject("Wscript.shell")
خوب حالا می توانید به راحتی هر دستوری که دارید میتوانید اجرا کنید در آخر هم دستور تابع Sendkeys کلید Enter را اجرا کرده و دستور اجرا میشود:
WinShell.SendKeys " Dos دستور مورد نظر برای اجرا در "
WinShell.SendKeys "{ENTER}"
به مثاهای زیر توجه کنید که به ترتیب اولی برای ایجاد پوشه ای به نام Visual Basic در درایو C و دستور دوم برای نمایش پوشه های موجود در درایو C و دستور سوم برای Format فلاپی دیسک می باشد .
'For Create Folder With Dos Prompt :
WinShell.SendKeys "MD C:\Visual" & " Basic"
WinShell.SendKeys "{ENTER}"
'For Showing C Directory :
WinShell.SendKeys "Dir C:\"
WinShell.SendKeys "{ENTER}"
'For Format Floppy Disk Of Dos :
WinShell.SendKeys "format A:"
WinShell.SendKeys "{ENTER}"
توی ویگذر دیدم از امریکا هم اومده بودن بازدید . خداییش صفا دادین . بابا حداقل نظر که بدین . من هم به میمنت این کار و در خواست یکی از بروبچ سورس ToxicCv رو براتون گذاشتم .
چگونه فرم هایی بصورت دایره و یا بیضی در ویژوال بیسیک طراحی کنیم . خوب ایتدا به فراخوانی توابع مورد نیاز ویندوز می پردازیم :
Private Declare Function SendMessage Lib "USER32" Alias "SendMessageA" (ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
Private Declare Function ReleaseCapture Lib "USER32" () As Long
Private Declare Function CreateEllipticRgn Lib "gdi32" _
(ByVal X1 As Long, ByVal Y1 As Long, ByVal X2 As Long, _
ByVal Y2 As Long) As Long
Private Declare Function SetWindowRgn Lib "USER32" _
(ByVal hWnd As Long, ByVal hRgn As Long, _
ByVal bRedraw As Boolean) As Long
خوب اکنون کد زیر را در رویداد (Event) مربوط به لحظه ای که کلید موس را بروی فرم فشردیم قرار می دهیم تا بتوانیم با فشردن موس در هر جای فرم به راحتی آن را جابجا کنیم .
Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
MousePointer = 15
Call ReleaseCapture
Call SendMessage(hWnd, &HA1, 2, 0&)
MousePointer = 1
End Sub
حال تابع SetWindowRgn را مقدار دهی میکنیم . ( این قطعه کد را در رویداد Form_Load بنویسید ) :
SetWindowRgn hWnd, CreateEllipticRgn(0, 0, 200, 200), True
مثلا مقادیر 200 و 200 شکل فرم بصورت دایره در می آید برای شکل بیضی شما میتوانید این مقادیر را 200 و 300 اختیار کنید .( بهتر است که خاصیت boarderStyle را 0-None در نظر بگیرید)
نرم افزار اکروبات ریدر باشد تا بتوانید از سوالات استفاده کنید حتما دانلودش کنید.
این برنامه به درد بچه هایی می خوره که رشته ی کامپیوتر هستن (منظورم از نظر کاربرد این برنامه هست) , این برنامه برای یافتم مسیر در گراف با استفاده از الگوریتم دایجسترا هست . در این برنامه از نظر گرافیکی خیلی خوب کارشده , این برنامه برای کسایی که می خوان کار با Pixel و مسائل مربوط به گرافیک در VB رو یاد بگیرن خوبه .
حالا وقتش رسيده كه يك فايل يا برنامه را با هر پسوندي اجرا كنيم
براي اجرا برروي فرم نياز به يك كامند داريم تا يكي از دو مثالهاي زير را درون آن وارد كنيم
Call ShellExecute(Me.hwnd, vbNullString, "آدرس فايل يا برنامه ", "", "", SW_SHOWNORMAL)
Call ShellExecute(Me.hwnd, vbNullString, "www.baliv.blogfa.com", "", "", SW_SHOWNORMAL)
Call ShellExecute(Me.hwnd, vbNullString, "C:\WINXPSP1\regedit.exe ", "", "", SW_SHOWNORMAL)
این كد را در قسمتMouseDown تا بتوان هنگام فشردن موس فرم را به هرجاي صفحه كه ميخواهيد درگ كنيد Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
MousePointer = 1
Call ReleaseCapture
Call SendMessage(hWnd, &HA1, 2, 0&)
MousePointer = 1
End Sub
چه جوری میتوان در ویژوال بیسیک فرمها را به شکل دایره یا
.بیضی در آورد این کد فرم را به شکل دایره و بیضی در می آورد
Private Declare Function SendMessage Lib "USER32" Alias "SendMessageA" (ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
Private Declare Function ReleaseCapture Lib "USER32" () As Long
Private Declare Function CreateEllipticRgn Lib "gdi32" _
(ByVal X1 As Long, ByVal Y1 As Long, ByVal X2 As Long, _
ByVal Y2 As Long) As Long
Private Declare Function SetWindowRgn Lib "USER32" _
(ByVal hWnd As Long, ByVal hRgn As Long, _
ByVal bRedraw As Boolean) As Long
خوب اکنون کد زیر را در رویداد (Event) مربوط به لحظه ای که کلید موس را بروی فرم فشردیم قرار می دهیم تا بتوانیم با فشردن موس در هر جای فرم به راحتی آن را جابجا کنیم .
Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
MousePointer = 15
Call ReleaseCapture
Call SendMessage(hWnd, &HA1, 2, 0&)
MousePointer = 1
End Sub
حال تابع SetWindowRgn را مقدار دهی میکنیم . ( این قطعه کد را در رویداد Form_Load بنویسید ) :
SetWindowRgn hWnd, CreateEllipticRgn(0, 0, 200, 200), True
مثلا مقادیر 200 و 200 شکل فرم بصورت دایره در می آید برای شکل بیضی شما میتوانید این مقادیر را 200 و 300 اختیار کنید .( بهتر است که خاصیت boarderStyle را 0-None در نظر بگیرید)
سلام , امروز می خوام به سوالاتی که برخی از دوستان پرسیده اند پاسخ بدهم .
1. چگونه می توان در ویژوال بیسیک فرمی ساخت که Always on Tpo (یعنی همیشه روی همه ی فرم ها قرار بگیره) باشد ؟
Option Explicit
Const SWP_NOMOVE = 2
Const SWP_NOSIZE = 1
Const FLAGS = SWP_NOMOVE Or SWP_NOSIZE
Const HWND_TOPMOST = -1
Const HWND_NOTOPMOST = -2
Private Declare Function SetWindowPos Lib "user32" _
(ByVal hwnd As Long, _
ByVal hWndInsertAfter As Long, _
ByVal x As Long, _
ByVal y As Long, _
ByVal cx As Long, _
ByVal cy As Long, _
ByVal wFlags As Long) As Long
'
'
Private Function SetTopMostWindow(hwnd As Long, Topmost As Boolean) _
As Long
If Topmost = True Then 'Make the window topmost
SetTopMostWindow = SetWindowPos(hwnd, HWND_TOPMOST, 0, 0, 0, 0, FLAGS)
Else
SetTopMostWindow = SetWindowPos(hwnd, HWND_NOTOPMOST, 0, 0, 0, 0, FLAGS)
SetTopMostWindow = False
End If
End Function
Private Sub Form_Load()
Dim lR As Long
lR = SetTopMostWindow(Form1.hwnd, True)
End Sub
چگونه می توانیم دستورات Dos را از طریق ویژوال بیسیک اجرا کنیم ؟
ابتدا Command Prompt را فراخوانی می کنیم , خوب برای فراخوانی از تابع Shell استفاده میکنیم که قبلا در مورد این تابع توضیح داده ام :
Shell "cmd.exe"
:: اکنون یک شیء ایجاد می کنیم تا بتوانیم از طیق آن به هسته Dos دسترسی داشته باشیم :
Dim WinShell
Set WinShell = CreateObject("Wscript.shell")
خوب حالا می توانید به راحتی هر دستوری که دارید میتوانید اجرا کنید در آخر هم دستور تابع Sendkeys کلید Enter را اجرا کرده و دستور اجرا میشود:
WinShell.SendKeys " Dos دستور مورد نظر برای اجرا در "
WinShell.SendKeys "{ENTER}"
به مثاهای زیر توجه کنید که به ترتیب اولی برای ایجاد پوشه ای به نام Visual Basic در درایو C و دستور دوم برای نمایش پوشه های موجود در درایو C و دستور سوم برای Format فلاپی دیسک می باشد .
'For Create Folder With Dos Prompt :
WinShell.SendKeys "MD C:\Visual" & " Basic"
WinShell.SendKeys "{ENTER}"
'For Showing C Directory :
WinShell.SendKeys "Dir C:\"
WinShell.SendKeys "{ENTER}"
'For Format Floppy Disk Of Dos :
WinShell.SendKeys "format A:"
WinShell.SendKeys "{ENTER}"
![]()
![]()
![]()
******************************************
چگونه از اجراي مجدد يک برنامه در ويژوال بيسيک جلوگيري شود ؟
خوب با استفاده از تيکه کد زير در فرم اصلي برنامه تان مي توانيد از اجراي مجدد (Duplicate) برنامه جلوگيري کنيد
Private Sub Form_Load()
If App.PrevInstance = True Then
Dim Result As Integer
Result = MsgBox("برنامه در حال اجراست", vbInformation, "Warnnig")
Unload Me
End If
End Sub
Private 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
حال فرض کنید می خواهید در مسیر D:\TestShell\ فایلی به اسم Test.exe را توسط برنامه تان اجرا کنید . کد زیر بدین منظور نوشته شده است :
Call ShellExecute(Me.hwnd, vbNullString, "D:\TestShell\Test.exe", "", "", SW_SHOWNORMAL)