PDA

View Full Version : روشن و خاموش کردن Monitor



delphi5
یک شنبه 05 آذر 1385, 16:43 عصر
روشن کردن


SendMessage(Application.Handle, WM_SYSCOMMAND, SC_MONITORPOWER, - 1)


خاموش کردن



SendMessage(Application.Handle, WM_SYSCOMMAND, SC_MONITORPOWER, 0)

masoode
چهارشنبه 20 تیر 1397, 10:40 صبح
سلام
می دونم این پست خیلی قدیمه اما من با این کد توی win7 مشکل دارم و این کدها کار نکرد!
یک برنامه دارم به اصلا به موس و کی برد دست زده نمی شود و من می خواهم طبق روال عادی ویندوز بعد از مدت زمانی مونیتور خاموش شود (بدون دخالت برنامه من) اما یک بارکد خوان داریم که در مد باینری کار میکند (نه ASCII)، من می خواهم وقتی که با بارکد خوان یک بارکد خوانده شد مانیتور روشن شود. الان این طوری است که اول باید موس را تکان دهند بعد از بارکدخوان استفاده کنند

masoode
چهارشنبه 20 تیر 1397, 10:48 صبح
خودم پیداش کردم!:لبخند:


روشن کردن
SendMessage(Application.Handle, WM_SYSCOMMAND, SC_MONITORPOWER, -1)

خاموش کردن
SendMessage(Application.Handle, WM_SYSCOMMAND, SC_MONITORPOWER, 2)

masoode
سه شنبه 02 مرداد 1397, 17:00 عصر
خودم پیداش کردم!:لبخند:


روشن کردن
SendMessage(Application.Handle, WM_SYSCOMMAND, SC_MONITORPOWER, -1)

خاموش کردن
SendMessage(Application.Handle, WM_SYSCOMMAND, SC_MONITORPOWER, 2)

یک مشکل دیگری هست! وقتی آخرین پارامتر را 2 می گذارم مشکلی نیست و مانیتور standby می شود و اگر 1- بگذارم روشن می شود. این را با تایمر نوشتم و عمل کرد. اما وقتی مانیتور توسط خود ویندوز standby می شود با اجرای این دستور با پارامتر1- یک لحظه مانیتور روشن می شود و دوباره خاموش میشود!
مسئله اصلی من این است که در یک کارخانه برنامه من روی یک کامپیوتر وظیفه ثبت ورود و خروج کارتنها را به عهده دارد. موقع ورود محصول، اپراتور با بارکدخوان، بارکد را اسکن میکند و در سیستم ثبت می شود. می خواهم موقعی که کسی با این سیستم کاری ندارد مانیتور توسط ویندوز خاموش شود و به محض استفاده از بارکدخوان (بارکدخوان به صورت باینری کانفیگ شده است و خروجی آن شبیه کیبورد نیست) مونیتور روشن شود.
اما با نوشتن SendMessage(Application.Handle, WM_SYSCOMMAND, SC_MONITORPOWER, -1) حدود یک ثانیه روشن میشود و دوباره خاموش میشود!