2013. 05. 28 노트북 배터리 경보기
정확히 이 프로그램을 만들게 된 이유는 게임하다가 배터리 알림음이 묻혀서 갑자기 컴퓨터가 종료되는 일이 부쩍 많아져서 이런 프로그램을 만들게 되네요.. <
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; using System.Media; namespace BATTERYALERT { public partial class Form1 : Form { SoundPlayer sPlayer = null; bool isStarting = false; public Form1() { InitializeComponent(); } private void Form1_Load(object sender, EventArgs e) { timer1.Start(); sPlayer = new SoundPlayer(); sPlayer.Stream = Properties.Resources.complete; } private String GetBatteryStatus() { String status = String.Empty, percent = String.Empty; if (SystemInformation.PowerStatus.PowerLineStatus == PowerLineStatus.Offline) status = "Battery"; else if (SystemInformation.PowerStatus.BatteryLifePercent < 1) status = "Charge"; else status = "AC"; return status + "/" + Convert.ToString(SystemInformation.PowerStatus.BatteryLifePercent * 100); } private void timer1_Tick(object sender, EventArgs e) { String getStatus = GetBatteryStatus(); String status = getStatus.Split('/')[0]; Int32 percent = Convert.ToInt32(getStatus.Split('/')[1]); if (!status.Equals("Charge")) if (percent <= Convert.ToInt32(batteryRecommand.Text)) sPlayer.Play(); } private void alertPlay() { if (radioButton1.Checked) sPlayer.Play(); } private void button1_Click(object sender, EventArgs e) { if (!isStarting) { if (alertTiming.Text == String.Empty) alertTiming.Text = "5"; // Default Value if (batteryRecommand.Text == String.Empty) batteryRecommand.Text = "10"; timer1.Interval = Convert.ToInt32(alertTiming.Text) * 1000; MessageBox.Show("알림이 시작되었습니다.", "", MessageBoxButtons.OK, MessageBoxIcon.Information); timer1.Start(); isStarting = true; alertTiming.Enabled = false; batteryRecommand.Enabled = false; button1.Text = "알림 멈춤"; } else { MessageBox.Show("알림이 중단되었습니다.", "", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); timer1.Stop(); button1.Text = "알림 시작"; isStarting = false; alertTiming.Enabled = true; batteryRecommand.Enabled = true; } } private void radioButton1_CheckedChanged(object sender, EventArgs e) { if (radioButton1.Checked == false) { button2.Enabled = true; } else { button2.Enabled = false; sPlayer.Stream = Properties.Resources.complete; } } private void button2_Click(object sender, EventArgs e) { OpenFileDialog ofd = new OpenFileDialog(); ofd.Filter = "wav 파일(*.wav)|*.wav"; if (ofd.ShowDialog() == DialogResult.OK) { textBox1.Text = ofd.FileName; sPlayer.SoundLocation = ofd.FileName; } } } }
'소스 관련' 카테고리의 다른 글
VB6 네이버 비밀번호 변경 (14) | 2013.06.18 |
---|---|
2013. 06. 06 제이펫 관련 클래스 (0) | 2013.06.06 |
2013. 06. 08 네이버 관련 모듈 (2) | 2013.05.04 |
2013. 05. 04 네이버 금칙어 관리기 (1) | 2013.05.04 |
2013. 05. 04 네이버 카페 조회수 올리기 (13) | 2013.05.04 |