コンソールをいい感じにしてみた
はじめに
使ってきた(あまりつかっていなかった)コンソール環境を
Fluent-terminalとPowerShell7を使って、いい感じにしてみました。
あとで別パソ設定のための備忘録。
【環境】
Windows10 Pro 64bit
Fluent-Terminal とPowerShell 7をインストール
Fluent-Terminal はここを参考にイントール
Windows 10 のコンソール環境をいい感じにした - Yamaleaks
cmderはインストールしなかった。
posh-git、oh-my-posh は入れてみた。
Install-Module posh-git -Scope CurrentUser Install-Module oh-my-posh -Scope CurrentUser
PowerShellはここから
(下のほうにリンクがある)
GitHub - PowerShell/PowerShell: PowerShell for every system!
PowerShellのプロファイルの設定
notepad $PROFILE
これでプロファイルをに下記を追記。
3行目がSet-Theme Paradoxだとエラーになって調べてみたら、
どうやらコマンドが変わっているみたい。
Import-Module posh-git Import-Module oh-my-posh Set-PoshPrompt Paradox
PowerShell7にPowerlineを設定時に起きたエラーの対応備忘録 - Qiita
Fluent-Terminalの設定
左上のメニューから、設定 -> プロファイル にPowerShellがあるので
これを複製して編集。
シェルの実行ファイルの場所はPowerShellの本体の場所を指定。
引数に以下を設定。パスはPowerShellのプロファイルを指定する。
-ExecutionPolicy Bypass -NoLogo -NoProfile -NoExit -Command "Invoke-Expression '. ''D:\Documents\PowerShell\Microsoft.PowerShell_profile.ps1'''"
こんなかんじ
あとはフォントの設定。 ここからダウンロードとインストールをする。 GitHub - adobe-fonts/source-code-pro: Monospaced font family for user interface and coding environments
FluentTerminalの設定の ターミナル→フォントファミリーをSourceCodeフォントを選んであげれば完了。
【WPF】ウィンドウ枠を非表示にする
親ウィンドウから、子ウィンドウ(枠線なし)をポップアップでメッセージなどを表示する…ようなものを作りたくて、いろいろ考え…。。
はじめはコントロールでやろうかと思ったけど、ウィンドウを完全に枠無しにできるようなので子ウィンドウを表示する方法に変更。
枠線だけは残ると思っていたけど、背景まで完全に見えなくできるのね。
目標
ウィンドウ枠を非表示にする
コントロールのみが表示されるようにする
コード作成
<Window x:Class="WinDllText.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:local="clr-namespace:WindowBorderNone" mc:Ignorable="d" WindowStyle="None" AllowsTransparency="True" Background="Transparent" Title="LimitOutWindow" Height="450" Width="800"> <Grid> <Button Height="50" Width="100">ぼたん</Button> </Grid> </Window>
WidnowStyleをNoneにすることでタイトルバーを非表示。
AllowsTransparencyをTrueにすることで枠線を非表示?(WidnowStyle=”None”にしないといけない)
BackgroundをTransparentにすることで背景色を透明に。
参考
【WPF】QRコードを表示してみた
WPFでQRコードが作成できたら…と思っていろいろ調べてみました。
目標
準備
標準のライブラリでQRコードを作成することはできないけれど、 オープンソースのライブラリを使用して作成することができるみたい。
英数字のみ対応のライブラリが多い中、ひらがなや漢字まで対応している『DotNetBarcodeV2.4.0』を使わせていただきました。
「プロジェクト」→「プロジェクト参照の追加」からダウンロードした「DotNetBarcode.dll」を追加。
コード作成
<Window x:Class="QRcode.MainWindow" <Grid> <Button Margin="465,0,287,0" Click="Button_Click" Height="20" VerticalAlignment="Top" >生成</Button> <TextBox x:Name="Textbox1" HorizontalAlignment="Left" Height="20" Text="あいうえお" TextWrapping="Wrap" AcceptsReturn="True" VerticalAlignment="Top" Width="465"/> <Image x:Name="QRImage" Margin="12,50,642,236"/> </Grid> </Window>
using Sysmte; public partial class MainWindow : Window { public MainWindow() { InitializeComponent(); } private void Button_Click(object sender, RoutedEventArgs e) { qr(); } private void qr() { //DotNetBarcodeオブジェクトを作成(引数はなくてもいいみたい) DotNetBarcode bc1 = new DotNetBarcode(DotNetBarcode.Types.QRCode);
//QRコードの文字 String QRcodeStrings;
//PixcelSize:1モジュール(1つの点の大きさ:ピクセル)の大きさを5pxに。 //値が小さすぎるとぼやけるっぽい? int PixcelSize = 5;
//テキストボックスの文字列をBarcodeStringsに格納 QRcodeStrings = Textbox1.Text;
//QRコードをクリップボードへコピー→表示 bc1.QRCopyToClipboard(QRcodeStrings, PixcelSize); QRImage.Source = Clipboard.GetImage(); } }
QRWriteBar()メソッドの使い方がよくわからなかったので QRCopyToClipboard()メソッドを使ってクリップボード経由でImageを更新します。
テキストボックスのAcceptsReturnをTrueにすることで 改行も反映されるようになりました。
直接QRcodeStringsを指定するときは、改行コード「\r\n」を使うことで改行できました。
【WPF】MediaElementで動画プレイヤーを作っていてハマったところ
MediaElemntを使って動画プレイヤーを作成していて
動画が最後までいったときに5秒戻らせるボタンを押したときに
MediaElement.Positionが0に戻ってしまう原因がわからなく。。。
こんなかんじにしてました。
//Positionを5秒前に mediaElement.Position -= new TimeSpan(0, 0, 5); //スライダーを再生位置に移動 Slider_Change(); //動画を再生 mediaElement.Play();
これだと、一旦5秒前に移動されるものの、はじめから再生されるんですよね…
そこでなんとなく順番を変えてみた
//動画を再生 mediaElement.Play(); //Positionを5秒前に mediaElement.Position -= new TimeSpan(0, 0, 5); //スライダーを再生位置に移動 Slider_Change();
こうすることで、うまく5秒前から再生させることができました。
なんでかは不明(汗
わかる人教えて…
【WPF】タイマーによる一定時間間隔の処理
一定間隔で処理するには、DispatcherTimer クラスを使う。
Using System.Windows.Threading
があるか確認。
// タイマーイベント dispatcherTimer = new System.Windows.Threading.DispatcherTimer(); dispatcherTimer.Tick += new EventHandler(dispatcherTimer_Tick); //1秒間隔に設定 dispatcherTimer.Interval = new TimeSpan(0,0,1); dispatcherTimer.Start();
dispatcherTimer_Tickが一定間隔で実行される
private void dispatcherTimer_Tick(object sender, EventArgs e) { //ここが 一定間隔で実行される //タイマーの停止 dispatcherTimer.Stop(); }
【Unity】複数の音を鳴らす
オブジェクトにAudio Sourceコンポーネントを追加する。
これがないとCDプレイヤーがない状態になり、音が再生されない。
AudioClipは音源ファイルを入れるもの。
.aif / .wav / .mp3 / .ogg / .xm / .mod / .it /.s3mの形式が使える。
▼Audio Sourceコンポーネントを追加
スクリプトで音をコントロールする。
複数の音を同時に鳴らすにはAudioSourceを複数にするらしい。
public AudioClip audio1; public AudioClip audio2; private AudioSource audiosource; void Start() { audiosource = GetComponent<AudioSource>(); } public void PlyaSound() { audiosource.PlayOneShot(audioSelect); }
PlayはBGM用(再生できる音は一つだけ)、
PlayOneShotはSE用(再生中の音に合成される)という感じ。
今回はSEだったのでPlayOneShotを使いました。