PDA

View Full Version : غیر فعال کردن Desktop Composition در Win7 توسط توابع API



butterfly8528
چهارشنبه 16 فروردین 1391, 06:05 صبح
سلام دوستان عزیز .

لطفا تکه کد زیر رو به کد های دلفی تبدیل کنید :

Private Const DWM_EC_DISABLECOMPOSITION As Long = 0
Private Const DWM_EC_ENABLECOMPOSITION As Long = 1

Private Declare Function DwmEnableComposition Lib "dwmapi" (uCompositionAction As Long) As Long



Private Sub Form_Load()

Dim strCMD() As String


strCMD = Split(Command$, "|")

If strCMD(0) <> "Hello" Then End


If strCMD(1) = "0" Then
DwmEnableComposition (DWM_EC_DISABLECOMPOSITION)
Else
DwmEnableComposition (DWM_EC_ENABLECOMPOSITION)
End If

End Sub



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

با تشکر .

Felony
چهارشنبه 16 فروردین 1391, 06:40 صبح
کتابخانه DMWApi رو به Uses اضافه کنید ؛ کدتون هم به صورت زیر ترجمه میشه و باید در رویداد OnCreate فرم مورد نظرتون نوشته بشه :

if ParamStr(0) <> 'Hello' then
Application.Terminate;

If ParamStr(1) = '0' Then
DwmEnableComposition(DWM_EC_DISABLECOMPOSITION)
Else
DwmEnableComposition(DWM_EC_ENABLECOMPOSITION);

butterfly8528
چهارشنبه 16 فروردین 1391, 17:59 عصر
سلام مجتبی جان .
به جای DwmEnableComposition API ، دلفی تابعی یا دستوری واسه این کار داره ؟

Felony
چهارشنبه 16 فروردین 1391, 18:28 عصر
خیر ؛ در User Mode هر کاری که انجام میدید به نوعی با API های User Mode سر و کار داره ، پس اگر هم تابعی داشت ، اون تابع پشت صحنه از همین API استفاده میکرد !

butterfly8528
چهارشنبه 16 فروردین 1391, 20:09 عصر
خیر ؛ در User Mode هر کاری که انجام میدید به نوعی با API های User Mode سر و کار داره ، پس اگر هم تابعی داشت ، اون تابع پشت صحنه از همین API استفاده میکرد !
بله میدونم ، اما اکثرا توابع داخلی کوتاه و مختصر هستند ، واسه همین پرسیدم .