ورود

View Full Version : چند نکته جالب در وی بی



soheil-vb6
پنج شنبه 08 شهریور 1386, 16:03 عصر
با اینکه هیچ‌کس ازم درخواست نکرده بود، ولی می‌خواهم طرز Shutdown یا Restart کردن ویندوز در وی‌بی رو یاد بدم:
ابتدا کد زیر رو در General_Declarations فرمی که در آن می‌خواهید Restart یا Shutdown کنید، وارد کنید:

Const EWX_LogOff As Long = 0
Const EWX_SHUTDOWN = 1
Const EWX_REBOOT = 2
Const EWX_FORCE = 4
Private Declare Function ExitWindows _
Lib "User32" Alias "ExitWindowsEx" _
(ByVal dwOptions As Long, ByVal dwReserved As Long) As Long

سپس هرجا که می‌خواهید Shutdown کنید کد

ExitWindows EWX_SHUTDOWN, &HFFFFFFFF

و هرجا که می‌خواهید Restart کنید، کد

ExitWindows EWX_REBOOT, &HFFFFFFFF
را بنویسید.
سوال بپرس، جواب بگیر.






طرز عوض کردن Resolution سیستم در محیط وی‌بی

این کار با یک API امکانپذیر است. برای این کار ابتدا کد زیر رو در یک Module کپی می‌کنید تا بتونید ازش استفاده کنید:

Declare Function EnumDisplaySettings Lib "user32" _
Alias "EnumDisplaySettingsA" _
(ByVal lpszDeviceName As Long, _
ByVal iModeNum As Long, _
lpDevMode As Any) As Boolean

Declare Function ChangeDisplaySettings Lib "user32" _
Alias "ChangeDisplaySettingsA" _
(lpDevMode As Any, ByVal dwFlags As Long) As Long

Declare Function ExitWindowsEx Lib "user32" _
(ByVal uFlags As Long, ByVal dwReserved As Long) As Long

Public Const EWX_LOGOFF = 0
Public Const EWX_SHUTDOWN = 1
Public Const EWX_REBOOT = 2
Public Const EWX_FORCE = 4
Public Const CCDEVICENAME = 32
Public Const CCFORMNAME = 32
Public Const DM_BITSPERPEL = &H40000
Public Const DM_PELSWIDTH = &H80000
Public Const DM_PELSHEIGHT = &H100000
Public Const CDS_UPDATEREGISTRY = &H1
Public Const CDS_TEST = &H4
Public Const DISP_CHANGE_SUCCESSFUL = 0
Public Const DISP_CHANGE_RESTART = 1

Type DEVMODE
dmDeviceName As String * CCDEVICENAME
dmSpecVersion As Integer
dmDriverVersion As Integer
dmSize As Integer
dmDriverExtra As Integer
dmFields As Long
dmOrientation As Integer
dmPaperSize As Integer
dmPaperLength As Integer
dmPaperWidth As Integer
dmScale As Integer
dmCopies As Integer
dmDefaultSource As Integer
dmPrintQuality As Integer
dmColor As Integer
dmDuplex As Integer
dmYResolution As Integer
dmTTOption As Integer
dmCollate As Integer
dmFormName As String * CCFORMNAME
dmUnusedPadding As Integer
dmBitsPerPel As Integer
dmPelsWidth As Long
dmPelsHeight As Long
dmDisplayFlags As Long
dmDisplayFrequency As Long
End Type

حالا می‌تونید هر جای برنامه که خواستید، با کدهای زیر Resolution صفحه کامپیوتر رو به x*y تغییر بدید:


Dim DevM As DEVMODE

erg& = EnumDisplaySettings(0&, 0&, DevM)

DevM.dmFields = DM_PELSWIDTH Or DM_PELSHEIGHT 'Or DM_BITSPERPEL
DevM.dmPelsWidth = x
DevM.dmPelsHeight = y

که در کد بالا می‌توانید به‌جای x 640 و به‌جای y 480 بگذارید تا Resolution کامپیوتر به 480*640 تبدیل بشود.

سوال بپرسید، جواب بگیرید.







روش باز کردن یک فایل با برنامه پپش‌فرضش
یعنی مثلا می‌توانید با این کد یک فایل موزیک را با ‍Player ای که User به آن اختصاص داده ( مثلا Windows Media Player یا Winamp یا هر برنامه دیگری ) باز کنید که انگار روی آن Double Click کرده‌ایم.
در این کد از API استفاده شده. بنابراین باید اول کد زیر را در General Declarations وارد کنید تا بعد بتوانید از تابع آن استفاده کنید :

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 (0&, vbNullString, strFileName, vbNullString, vbNullString, vbNormalFocus)

که در کد بالا strFileName همان آدرس فایلی است که می‌خواهیم باز کنیم.

سؤالات خود را بپرسید، حتما جواب را می‌گیرید.



۱
دو کد نیمه پیشرفته

یکی کدیست برای اجرا کردن فایلهای EXE :

Call Shell ( strFileName, VbNormalFocus )

که در کد بالا strFileName همان آدرس فایل EXE است که جنس آن هم String باید باشد.

دومین کد کدیست برای تغییر دادن اَتریبوت Attribute های یک فایل ( یا همان Hidden یا Readonly یا Archive )

کد زیر برای غیر ReadOnly کردن یک فایل است که آدرس آن در strFileName گفته شده ( به Not قبل از vbReadOnly دقت کنید ) :

SetAttr strFileName, GetAttr(strFileName) And (Not vbReadOnly)


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

SetAttr strFileName, GetAttr(strFileName) And (Not vbArchive)

کد زیر هم برای از حال Hidden در آوردن فایل strFileName است :

SetAttr strFileName, GetAttr(strFileName) And (Not vbHidden)

واضح است که هر‌وقت بخواهید یک فایل را Hidden کنید، باید Not قبل از vbHidden را برداریم. این قضیه برای ReadOnly و Archive هم صدق می‌کند؛ مثلا :

SetAttr strFileName, GetAttr(strFileName) And (vbReadOnly)

برای ReadOnly کردن فایل strFileName است.

perfeshnal
پنج شنبه 08 شهریور 1386, 18:30 عصر
سلام

از آموزش شما ممنونم ولی اگر در سایت جستجو می کردید شاید 10 نمونه برنامه راجب این موضوع پیدا می کردید . اینو برای این میگم که همه بدونند که وب سایت برنامه نویس بزرگترین مرجع برنامه نویسی در ایران :چشمک::قلب:

نمونه برنامه :
http://barnamenevis.org/forum/showthread.php?p (http://barnamenevis.org/forum/showthread.php?p=354778&highlight=Shutdown#post354778)