۱۳۸۷ آذر ۲۹, جمعه

windows colors

خب حالا میخواهیم یکمی سیستم رنگ بندی کامپیوتر رو دست کاری کنیم.
برای این کار از یک api به نام setsyscolors استفاده میکنیم.
خیلی کارساده ای هست فقت باید نام یک فلگ و یک عدد از نوع long که همان رنگ هست رو بهش بدین.

Private Declare Function SetSysColors Lib "user32.dll" (ByVal nChanges As Long,_ ByRef lpSysColor As Long, ByRef lpColorValues As Long) As Long

و فلگ هاش هم در زیر اومده.

private Const COLOR_3DDKSHADOW As Long = 21
private Const COLOR_3DLIGHT As Long = 22
private Const COLOR_ACTIVEBORDER As Long = 10
private Const COLOR_ACTIVECAPTION As Long = 2
private Const COLOR_BACKGROUND As Long = 1
private Const COLOR_BTNSHADOW As Long = 16
private Const COLOR_BTNTEXT As Long = 18
private Const COLOR_CAPTIONTEXT As Long = 9
private Const COLOR_HIGHLIGHT As Long = 13
private Const COLOR_HIGHLIGHTTEXT As Long = 14
private Const COLOR_HOTLIGHT As Long = 26
private Const COLOR_MENU As Long = 4
private Const COLOR_MENUTEXT As Long = 7
private Const COLOR_SCHEMES As Long = 715
private Const COLOR_SCROLLBAR As Long = 0
private Const COLOR_WINDOW As Long = 5
private Const COLOR_WINDOWFRAME As Long = 6
private Const COLOR_WINDOWTEXT As Long = 8

توضیح دادن اینکه هرکدام از اینها چا کار میکنند کار سختی پس خودتون دونه دونه امتحانشون کنید.
(getsystemcolors(flag
دستور بالا هم رنگ کلمپوتر رو میگیرد

۱۳۸۷ آذر ۱۵, جمعه

popup menu

اگر میخواهید وقتی کاربر بر روی فرم شما رایت کلیک میکنه یک منو باز بشه این مطلب رو بخونید.
اول یک منو درست کنید.
بعد visible اون رو false کنید.
(activex.poumpmenu(menu as object,flgas,x,y,defult menu
کد بالا برای اضافه کردن منو به یک ابزار است.
activex همون ابزاری هست که میخواهید منو رو به اون اضافه کنید.
menu as object که در این قسمت فقت اسم منو رو بنویسید.
بقیه هم فدا سرتون.
(private sub form1_mousedown(button as integer,shift as integer,x as string,y as string
If button=2 Then
form1.proumpmenu file
END IF
End Sub

۱۳۸۷ آذر ۱۴, پنجشنبه

LoadKeyboardLayout

برای عوض کردن زبان ویندوز از این api استفاده میکنیم .
Private Declare Function LoadKeyboardLayout Lib "user32.dll" Alias_ "LoadKeyboardLayoutA" (ByVal pwszKLID As String, ByVal flags As Long) As Long
و یک flag 
Private Const LANG_FARSI As Long = &H29

()private sub form1_load
LoadKeyboardLayout "00000429", 1
end sub

کد بالا زبان keyboard رو از انگلیسی به فارسی تغییر میده.

exitwindowex

امروز یه کد جالب میخوام بذارم که به وسیله ی اون میشه کارهای زیر رو انجام داد .
1- shut down
2- restart
3-log off
 برای این کار نیاز به چهار فلگ و یک  api داریم .
حالا api viewer رو بیارید و کد exitwindowex رو به دست بیارید .
Private Declare Function ExitWindowsEx Lib "user32" (ByVal uFlags As Long, ByVal_ dwReserved As Long) As Long

و flag های زیر.
EWX_FORCE
EWX_SHUTDOWN
EWX_REBOOT
EWX_LOGOFF
Const EWX_LOGOFF = 0
Const EWX_SHUTDOWN = 1
Const EWX_REBOOT = 2
Const EWX_FORCE = 4

حالا به کدهای زیر توجه کنید .
(ret&=exitwindowsex(EWX_FORCE + EWX_SHUTDOWN
(ret&=exitwindowsex(EWX_FORCE + EWX_LOGOFF
(ret&=exitwindowsex(EWX_FORCE + EWX_REBOOT
توجه : EWX_FORCE  برای دستوری کردن و عملی کردن به کار میرود .

Input Output

خب خیلی جاها من دیدم که گفتن نمیشه با ویژوال بیسیک ورودی خروجی هارو کنترل کرد. در صورتی که این حرف کاملآ اشتباه هست. ویژوال بیسیک قابلیت کنت...