منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب
اغلاق الشاشه من خلال الكود - نسخة قابلة للطباعة

+- منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب (http://vb4arb.com/vb)
+-- قسم : الأقسام التعليمية - المنتدى القديم (http://vb4arb.com/vb/forumdisplay.php?fid=90)
+--- قسم : مكتبة أكواد المنتدى (http://vb4arb.com/vb/forumdisplay.php?fid=111)
+---- قسم : مكتبة أكواد .net (http://vb4arb.com/vb/forumdisplay.php?fid=117)
+---- الموضوع : اغلاق الشاشه من خلال الكود (/showthread.php?tid=6107)



اغلاق الشاشه من خلال الكود - RaggiTech - 17-10-12

كاتب الموضوع : AhmedEssawy

بسم الله الرحمن الرحيم و الصلاه و السلام علي اشرف الخلق و المرسلين .

كيفيه اغلاق شاشه الكمبيوتر بواسطه الكود :

اذا كنت من مستخدمي الجهاز بصفه دوريه و لفترات طويله يوميا مثلي و و تتردد علي الشاشه لاغلاقها و فتحها بصفه دوريه كنوع من انواع توفير الطاقه و الاستهلالك للشاشه .
او كنت لا تفضل فتح و اغلاق الشاشه من زر الفتح و الاغلاق (اذا كنت من الدقيقين امثالي ستلاحظ ان هناك صوت مزعج يصدر عند فتح الشاشه من الرز ولا يصدر عندما يفتحها الويندوز .
و هذا هو هدفي هنا . اريد ان اغلق الشاشه و افتحها كما في الويندوز .
سأحاول بإذن الله إيضاحه هنا .


كيفيه إغلق الشاشه بواسطه الكود .


ساعتمد في شرحي علي أي بي أي API تسمي SendMessage في الويندوز التي تتيح لنا التحكم في حالات الشاشه المختلفه من فتح و اغلاق .



كود :
Syntax :
LRESULT SendMessage( HWND hWnd, UINT Msg,WPARAM wParam, LPARAM lParam );

كما ترى هنا تتكون ال function من اربعه parameters ؛ سأوضحهم كيفيه التعامل معهم في الكود و لكن سأركز هنا علي اخر parameter بصفته المسئول عن حالات الشاشه المختلفه .


LParam (last paramter
1 - the display is going to low power.
استخدام طاقه قليله
2 - the display is being shut off.
اغلاق الشاشه
–1 - the display is being turned on (undocumented value).
فتح الشاشه



Start the coding now :



كود :
First of all you should use
using System.Runtime.InteropServices; //to DllImport

public int WM_SYSCOMMAND = 0x0112;
public int SC_MONITORPOWER = 0xF170; //Using the system pre-defined MSDN constants that can be used by the SendMessage() function .


[DllImport("user32.dll")]
private static extern int SendMessage(int hWnd, int hMsg, int wParam, int lParam);
//To call a DLL function from C#, you must provide this declaration .


private void button1_Click(object sender, System.EventArgs e)
{

SendMessage( this.Handle.ToInt32() , WM_SYSCOMMAND , SC_MONITORPOWER ,2 );//DLL function
}