تبليغاتX
به وبلاگ تخصصی (Amin (Norton خوش آمدید

به وبلاگ تخصصی (Amin (Norton خوش آمدید

آدرس دهی

+ نوشته شده در  پنجشنبه بیست و هشتم آذر 1387ساعت 10:2  توسط امین اکرمی  | 

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

وی بی یک تابعی به اسم ()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=نوع نمایش پنجره در هنگام شروع برنامه(مینیمایز/ماکسیمایز/نرمال)

 

+ نوشته شده در  پنجشنبه بیستم تیر 1387ساعت 21:41  توسط امین اکرمی  | 

اینهم یک تکه برنامه که همه دنبال ش توی این وب و آن وب مبگردند

راه اندازی مجدد سیستم !!!!

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}"

 

 

 

 

+ نوشته شده در  جمعه دهم خرداد 1387ساعت 2:30  توسط امین اکرمی  | 

سلام .

توی ویگذر دیدم از امریکا هم اومده بودن بازدید . خداییش صفا دادین . بابا حداقل نظر که بدین . من هم به میمنت این کار و در خواست یکی از بروبچ سورس 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 در نظر بگیرید)

 

+ نوشته شده در  پنجشنبه بیست و نهم فروردین 1387ساعت 22:27  توسط امین اکرمی  | 

من دراینجا برای شما سوالات امتحانی گزاشتم که البته میبا یست سیستم شما مجهز به

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

دانلود سوالات امتحانی

+ نوشته شده در  پنجشنبه بیست و یکم تیر 1386ساعت 20:16  توسط امین اکرمی  | 

 این برنامه به درد بچه هایی می خوره که رشته ی کامپیوتر هستن (منظورم از نظر کاربرد این برنامه هست) , این برنامه برای یافتم مسیر در گراف با استفاده از الگوریتم دایجسترا هست . در این برنامه از نظر گرافیکی خیلی خوب کارشده , این برنامه برای کسایی که می خوان کار با Pixel و مسائل مربوط به گرافیک در VB رو یاد بگیرن خوبه .

 دریافت برنامه

+ نوشته شده در  پنجشنبه بیست و یکم تیر 1386ساعت 20:8  توسط امین اکرمی  | 

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

     دریافت برنامه

+ نوشته شده در  پنجشنبه بیست و یکم تیر 1386ساعت 19:45  توسط امین اکرمی  | 

چه جوري ميتوان به وسيله ويژوال بيسيك هر فايل وبرنامه اي را در هرجاي سيستم اجرا كرد ؟
خوب من در اينجا برنامه اي براي شما نوشتم كه به وسيله ي آن ميتوان هر فايل و برنامه اي با هر پسوندي كه ميخواهد باشد
اجرا كرد
 
خوب همين طور كه ميدانيد مي بايست توابع مورد نياز ويندوز را فراخواني كر د كه من اين كار را براي شما انجام ميدهم
اين برنامه را در قسمت جنرال فرم تعريف كنيد
وبعد هرجايي از فرم كه مي خواهيد آن را صدا بزنيد
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

حالا وقتش رسيده كه يك فايل يا برنامه را با هر پسوندي اجرا كنيم
براي اجرا برروي فرم نياز به يك كامند داريم تا يكي از دو مثالهاي زير را درون آن وارد كنيم
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)   

+ نوشته شده در  یکشنبه ششم خرداد 1386ساعت 19:53  توسط امین اکرمی  | 

 شاید تا به حال برای شما سوال پیش آمده باشد که فرمهایی که خاصیتborderstyle=None چجوری میتوان جابجا کرد  
اين جا تكه برنامه اي نوشتم كه باعث ميشود كه هرجاي فرم را كه با اشارگر موس فشار بدهيد  و درگ كنيد باعث جابه جايي آن شود
اين تكه برنامه را در قسمت جنرال وارد كنيد
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

  این كد را در قسمت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

+ نوشته شده در  یکشنبه ششم خرداد 1386ساعت 19:45  توسط امین اکرمی  | 

تغیر شکل فرم در ویژوال بیسیک

چه جوری میتوان در ویژوال بیسیک فرمها را به شکل دایره یا

.بیضی در آورد این کد فرم را به شکل دایره و بیضی در می آورد

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 در نظر بگیرید)

+ نوشته شده در  جمعه چهارم خرداد 1386ساعت 20:41  توسط امین اکرمی  | 

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

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

+ نوشته شده در  پنجشنبه سوم خرداد 1386ساعت 22:14  توسط امین اکرمی  | 

چگونه می توانیم دستورات Dos را از طریق ویژوال بیسیک اجرا کنیم ؟

چگونه می توانیم دستورات 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

 

 

 

+ نوشته شده در  پنجشنبه سوم خرداد 1386ساعت 22:5  توسط امین اکرمی  | 

چگونه می توان در وی بی یک فایل با هر پسوندی را در یکی از درایوها اجرا کرد ؟

چگونه می توان در وی بی یک فایل با هر پسوندی را در یکی از درایوها اجرا کرد ؟
پاسخ : همانطور که قبلاً گفته ام برای Run کردن یک فایل اجرایی در وی بی بایستی از تابع ShellExecute استفاده نمایید . نحوه declare کردن آن بصورت زیر است :

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)

+ نوشته شده در  چهارشنبه دوم خرداد 1386ساعت 22:15  توسط امین اکرمی  |