『眠気吹っ飛ばす作業用アプリ』【暖かい目で見てね】
なぜつくったの?
寝落ちでぴえんしそうになったから
作ったもの
- 常駐するWPFアプリケーション
GitHub リリースページ
Github初心者感すごいですが、気にしないでください
概要gif
GitHub リリースページ
Github初心者感すごいですが、気にしないでください
解決したい課題
寝落ちせずに作業がしたい
私の趣味は、『締め切りギリギリに徹夜で作業や課題をすること』
この趣味は、寝落ちする可能性をぬぐい切れません。
そこで、寝落ちしないようなアプリケーションを作成した。
こうなってほしい
1.作業中に常駐する
2.マウスとキーボードの入力が一定時間止まる
3.設定したアラーム音を鳴らす
4.びっくりして起きる
問題点
気持ちよく寝ているところを起こされると不機嫌になってしまう
実装した処理(折り畳み:ソースコード)
入力が一定時間ないことを判別する
public static class User32Interop{
/// 最終操作からの経過時間
/// </summary> ミリ秒で表示される Ex. 1sec -> 1000, 5sec -> 5000
public static TimeSpan GetLastInput(){
var plii = new LASTINPUTINFO();
plii.cbSize = (uint)Marshal.SizeOf(plii);
if (GetLastInputInfo(ref plii))
return TimeSpan.FromMilliseconds(Environment.TickCount - plii.dwTime);
else
throw new System.ComponentModel.Win32Exception(Marshal.GetLastWin32Error());
}
[DllImport("user32.dll", SetLastError = true)]
static extern bool GetLastInputInfo(ref LASTINPUTINFO plii);
struct LASTINPUTINFO{
public uint cbSize;
public uint dwTime;
}
}
アラーム音を鳴らす
string SoundFilePath = SleepDown.Properties.Settings.Default.FilePath;
string FileExtension = System.IO.Path.GetExtension(SoundFilePath);
switch (FileExtension){
case ".mp3"://This is fall through so it's not that i forget break;
case ".wav":
case ".flac":
Microsoft.SmallBasic.Library.Sound.PlayAndWait(SoundFilePath);
break;
default:
MessageBox.Show("音声ファイルは\n対応した拡張子を設定してください");
break;
}
再生する音源をローカルファイルから選択可能にする
//設定に音源ファイルのパスを保存しているため
//パスを取得
var FileDialog = new Microsoft.Win32.OpenFileDialog();
FileDialog.Title = "開くファイルを選択してください";
FileDialog.Filter = "mp3ファイル|*.mp3|wavファイル|*.wav|flacファイル|*.flac";
if (FileDialog.ShowDialog() == true){
SoundFilePath = FileDialog.FileName;
}
実装したい処理
- 再生音源の音量調整
- アラーム音を再生途中で入力があった場合の途中停止
最後に
もし読んでくれた人がいたならありがとうございます。
深夜テンションでヒャッハー!して書いたのでわけわからないところはご愛嬌で頼んます。
ps.
初めて書いたのでC#もQiitaもぐちゃぐちゃです。
Author And Source
この問題について(『眠気吹っ飛ばす作業用アプリ』【暖かい目で見てね】), 我々は、より多くの情報をここで見つけました https://qiita.com/John_give_me_a_break/items/fc9ce369e55559158586著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .