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 |