C Programming: เขียนโปรแกรมตั้งเวลาshutdownเครื่องล่วงหน้ากันเถอะ ;P
สวัสดีฮ้าฟฟ..กลับมาพบจอมมารน้อยอีกครั้งกันนะคร้าบบ
วันนี้จะมาอธิบายการเขียนโค้ดสั่งคอมปิดเครื่องตามกำหนดเวลากัน ด้วยความที่จอมมารน้อยเปิดโหลดอะไรบางอย่างไว้และไม่รู้จะโหลดเสร็จเมื่อไหร่ และอยากจะนอนแล้ว แต่กะเวลาที่จะโหลดเสร็จได้ เลยหาวิธีสั่งให้คอมปิดตามกำหนดเวลา เช่น คาดเวลาว่าโหลดเสร็จในอีก 3 ชั่วโมงข้างหน้า ตามปกติแล้วจะมีคำสั่งที่สั่งผ่าน cmd หรือ command line ด้วยคำสั่ง
shutdown -s -t 10800
-s >> สั่ง shutdown
-t >> กำหนดเวลา
10800 >> เวลาที่ต้องการให้ปิดเครื่อง หน่วยเป็นวินาทีนะ (3 ชั่วโมง ก็คือ 3x60x60 = 10800 นั่นเองฮะ)
ด้วยความที่จอมมารน้อยเป็นพวกความจำสั้น ปลาทองมากมายยย จอมมารน้อยเลยหาทางเขียนโปรแกรมด้วยภาษาซีเพื่อตอบโจทย์นี้กัน งั้นไปดูโค้ดกันเลยนะ..
**ปล.สามารถดาวน์โหลดSource code หรือใครไม่อยากยุ่งยากก็เอาตัวโปรแกรม myShutdown.exe คลิกเพื่อใช้งานได้เลยนะ ลิ้งก์อยู่ด้านล่างสุด แต่ว่าคอมที่ใช้ได้ต้องเป็น 64bit นะ ถ้าไม่ใช่ต้องเอาโค้ดไปคอมไพล์ใหม่จ้าา *3*
วิธีการนำโค้ดไปใช้งาน (การใช้งานโปรแกรมอยู่ข้อ 4)
1. เปิด Dev-C++ , Code::Blocks หรือโปรแกรมอื่นๆที่สามารถคอมไพล์ภาษาซีได้ หรือจะใช้ Notepad ก็ได้นะ แต่เวลาเซฟให้เซฟด้วยสกุลลงท้าย .c เช่น “myShutdown.c” ต้องมีฟันหนู(“) ด้วยนะ เป็นการบังคับให้เซฟด้วยสกุลนี้ ไม่งั้นอาจได้ออกมาเป็น .txt นะ
2. เขียนโค้ดตามภาพเลยนะ แล้วก็เซฟ เช่นเซฟชื่อว่า myShutdown.c ข้อควรระวังอย่างแรง!! ห้ามเซฟด้วยชื่อ shutdown.c เด็ดขาด เนื่องจากตอนคอมไพล์จะได้ตัวโปรแกรมออกมาเป็น shutdown.exe ซึ่งเกิดความทับซ้อนกับตัวของระบบเอง เตือนแล้วนะ 55555+
3. คอมไพล์โปรแกรม จะได้หน้าต่างดำๆ (cmd หรือ command line หรือ หน้าต่าง DOS) ถ้าใช้ Notepad เขียน ให้ดูวิธีการคอมไพล์ที่กระทู้นี้ ( C Programming: compile โปรแกรมด้วย command prompt ) นะ
4. ได้โปรแกรมออกมาแล้วหล่ะ ที่นี้คราวหน้าถ้าอยากจะให้ปิดเครื่องตามเวลาที่กำหนด ก็แค่ดับเบิ้ลคลิกแค่ myShutdown.exe เมื่อคลิกจะได้หน้าต่างแบบนี้
ถ้าต้องการจะ shutdown ตามช่วงเลา ก็ใส่ s แล้ว enter จะมีคำสั่งให้ใส่เวลาที่ต้องการปิดเครื่อง ก็ใส่เวลาลงไป หน่วยเป็นวินาทีนะๆ
ถ้าต้องการยกเลิกการ shutdown ก็ดับเบิ้ลคลิกโปรแกรมขึ้นมาใหม่ แล้วใส่ a แทน
คำอธิบายโค้ด (ควรมีพื้นฐานโครงสร้างภาษาซีมาก่อน อธิบายเพียงคร่าวๆ โดยเฉพาะในส่วนฟังก์ชันต่างๆ คร่าวมากๆนะฮะ)
- #include >> เรียก header ที่รวมฟังก์ชันต่างๆที่จำเป็นในการเขียนโค้ด ซึ่งในที่นี้เรียก
- stdio.h >> standard input output ก็คือรวมฟังก์ชันพื้นฐานในส่วนการแสดงผลและรับค่า เช่น printf scanf นะฮะ
- stdlib.h >> standard library ในที่นี้เรียกใช้ด้วยเนื่องจากต้องใช้ฟังก์ชัน system ซึ่งฟังก์ชันนี้อยู่ใน stdlib.h นั่นเอง
- string.h >> อันนี้จะเป็นพวกเกี่ยวกับตัวอักษร เช่น
- strcpy(a,”Hello”); //ฟังก์ชันนี้จะทำการก๊อปปี้ข้อมูลทางด้านขวาใส่ด้านซ้าย หรือก็คือนำเอาคำว่า Hello ลงไปใส่ในตัวแปร a
- strcat(a,”World”); //ฟังก์ชันนี้จะเอาข้อความทางด้านขวาไปต่อข้อความในด้านซ้าย ดูจากบรรทัดก่อนหน้า a เก็บคำว่า Hello อยู่ ดังนั้นเมื่อนำคำว่า “World” ไปต่อหลัง a ก็จะกลายเป็น HelloWorld นั่นเอง
- int main() { …Statement… } >> เป็นฟังก์ชันหลักในการทำงานของโปรแกรม ภายใน { } จะใส่คำสั่งต่างๆในการทำงานลงไป ก็คือใส่คำสั่งต่างๆลงในส่วน Statement ตรงนี้นั่นเองนะ
- ในส่วน function พื้นฐานต่างๆ
- printf(” “); //print format เป็นคำสั่งในการแสดงข้อความบนหน้าจอ
- scanf(” “,&var); //scan format เป็นคำสั่งในการรับค่าเข้าไปเก็บในตัวแปร
- getch(); // การรับตัวอักษร 1 ตัว เนื่องจากเขียน C เลยไม่มีปัญหา แต่หากใช้ C++ จะพบปัญหาเกิดขึ้น เนื่องจาก getch(); เป็นฟังก์ชันที่อยู่ใน conio.h ดังนั้นหากใช้ C++ ในการเขียน จะต้องประกาศ #include “conio.h” ด้วยนั่นเอง
- system(); //เป็นฟังก์ชันที่ช่วยให้สามารถสั่งคำสั่งของ DOS ได้
Download: myShutdown
Review code on GitHub: https://github.com/npmoewii/window-shutdown/