RSS 1.0 FEED Powered by GM-RSS ארכיון האתר בטל רישום כתוב אלינו משאבי הפריק רישום לאיגרת פורום מייקרוסופט פורום הפריק מי אנחנו דף הבית

כתבה למפתחים: כיבוי מחשב כף-יד בעזרת תכנות.
Amir - 02/01/2004
 

ישנן שתי דרכים בהן ניתן לכבות את המכשיר (לא רק את המסך), הראשונה והברורה שמבניהן היא באמצעות כפתור ה-Power שנמצא בדרך-כלל בראש המכשיר. השניה היא בעזרת פעולות תכנות.

בכתבה זו אני אראה כיצד לכבות את מחשב כף-היד בעזרת תהליך פשוט שעושה שימוש בפונקציית API מורכבת. הקוד מדמה שליחת קודים של כפתור ה-Power אל תוך מערכת-ההפעלה וכך גורם לכיבוי הפוקט.

בכתבה תקבלו הסברים נוספים יחד עם הקוד הנדרש לביצוע הפעולה.


כתבה זו מיועדת למפתחים ומתכנתים.



השלב הראשון הוא לייבא את הפונקציה keybd_event מתוך ליבת מערכת-ההפעלה core.dll.

בעזרת פונקציה זו ניתן לשלוח קודים ומקשים וירטואלים (כמו למשל CTRL-X) ובכך לדמות את פעולת המקלדת או את כפתורי החומרה.

כך מתבצעת פעולת הייבוא ב-#C:


[DllImport("coredll.dll")]
public static extern void keybd_event(byte bVK, byte bScan, int dwFlags, int dwExtraInfo);

ישנם מספר קבועים חשובים שבהם נשתמש בקריאה לפונקציה:


KEYEVENTF_KEYDOWN = 0x0
KEYEVENTF_KEYUP = 0x2
KEYEVENTF_SILENT = 0x4
VK_OFF = 0xDF


כך נראית הקריאה לפונקציה:


keybd_event(VK_OFF,0,KEYEVENTF_SILENT | KEYEVENTF_KEYDOWN,0);
keybd_event(VK_OFF,0,KEYEVENTF_SILENT | KEYEVENTF_KEYUP,0);

שימו לב כי אנו קוראים לה פעמיים - הפעם הראשונה בשביל לדמות מצב שכפתור ה-Power נלחץ והפעם השניה בשביל לדמות מצב שכפתור ה-Power משוחרר.

לאחר קריאה לפונקציה keybd_event רצוי לגרום לתוכנית שלנו להפסיק לפעול ולתת למערכת-ההפעלה לכבות את המכשיר.

כך זה יתבצע ב-#C:


System.Threading.Thread.Sleep(200);

התהליך ממש אינו מסובך כמו שאתם יכולים לראות.

על הפונקציה keybd_event אני אדבר בפירוט בכתבה עתידית.

אשמח לשמוע תוספות או הערות.

להמשך דיון בנושא אנא הכנסו לפורום המפתחים.


אמיר ולדמן
(BlastPPC)
פורום המפתחים
פוקט פיסי פריק

[ הקודם: "רונן ביתן: אחראי על פורום ה-GPS" ] [לעמוד הראשי] [ הבא: "אתחול אקטיב-סינק יכול לפתור בעיות סנכרון" ]

Powered By Greymatter





חפש   
חפש באתר עם גוגל   
Google
Web pocketpcfreak.com
חברות התומכות באתר
Onroad
iGo Website
PocketPCNetL (5k image)
Visual CE
Pocket Gear
חפש מוצר באמזון
Search Now:
הגרלות באתר
פרסים ומעמדים
Helio Diamant and Saar Avigour are Microsoft MVPs
אתרים חברים
Pocket PC Thoughts
Pocket PC Writer Net