としおの読書生活

田舎に住む社会人の読書記録を綴ります。 主に小説や新書の内容紹介と感想を書きます。 読書の他にもワイン、紅茶、パソコン関係などの趣味を詰め込んだブログにしたいです。

2021年06月

3753817_s

C#からDOSコマンドなどの別プロセスを実行する方法が分からず、方法を調べたので忘備録として記録します。


C#でコマンドを実行する


結論からになりますが以下のコードでDOSコマンドを実行することができます。

using System;
using System.Diagnostics;

class ExecuteCom
{
    public static void Main()
    {
        ProcessStartInfo processStartInfo = new ProcessStartInfo("cmd.exe""/k dir");
        Process.Start(processStartInfo);
    }
}

コードの簡単な説明になりますが、ProcessStartInfoの第一引数にコマンド、第二引数にコマンドの引数を与えてあげて、Process.Start()をコールすることでコマンドを実行することができます。

今回はdirコマンドを実行してみた例になります。



コマンドが終了するまで待つ方法


先ほどのコードではコマンドを終了することを待たずにプログラムが進んでしまいます。

そこで、同期的にコマンドを実行させたい場合は、process.WaitForExit()を使いましょう。

先ほどのコードを改造して同期的にコマンドを実行しているサンプルコードは以下の通りです。(クラス名などは変わっていないため省略しています。)

ProcessStartInfo processStartInfo = new ProcessStartInfo("cmd.exe""/k dir");
Process process = Process.Start(processStartInfo);

// プロセスが終了するまで待機
process.WaitForExit();
// プロセスを終了させる
process.Close();

process.WaitForExit()の後に書いているprocessStartInfo.Close()はプロセスを終了させるためのコマンドです。

これをコールしないとゾンビプロセスが残ってしまうのでコールし忘れには気を付ける必要があります。



コマンドプロンプトを非表示にする


コマンドを呼びだすたびにコマンドプロンプトの窓が起動するのが嫌な場合、ProcessStartInfoクラスのプロパティを変更することで非表示にすることができます。

変更するプロパティは以下の二つです。

  • CreateNoWindow
  • UseShellExecute

先ほどのコードを改造してコマンドプロンプトが表示されないようにしていきます。

ProcessStartInfo processStartInfo = new ProcessStartInfo("cmd.exe""/k dir");
processStartInfo.CreateNoWindow = true;
processStartInfo.UseShellExecute = false;
Process process = Process.Start(processStartInfo);

これでコマンドプロンプトのウィンドウが開かなくなりました。



まとめ


C#のプログラムからコマンドを実行したい場合、ProcessクラスProcessStartInfoクラスを使えばよいことが分かりました。

出力結果などをC#側で取得する方法などもあり色々できそうなので気になる方は調べてください。







3884509_s

Kindle Singleで読むことができる池井戸潤さんの『なるへそ』を読みました。

珍しく経済的な内容が絡まない池井戸潤さんの短編作品ですが、オチも面白く思わずなるへそと呟いてしまいました。

以下、あらすじと感想になります。


【目次】
あらすじ
感想
まとめ




池井戸潤『なるへそ』のあらすじ


いつも「準備中」の札がかけられている一見お断りの小さな寿司屋『皆藤』。

この店で月に一度、4人の男たちが毎回一人のゲストを招いて『黒焦げ蜘蛛の会』と名付けた買いを開いている。

この夜、招かれたゲストは落語家のごぼう。

話しの流れで、ごぼうは4人の男たちに自らの悩みを打ち明けることになる。

彼の悩みを解決しようと議論を交わす4人であったが、いくら考えても分からない。

そんなときある意外な人物がごぼうの悩みを解決することになった。

池井戸潤が送る短編ミステリ小説。






感想(ネタバレあり)


池井戸潤さんが得意な銀行や企業が関係する経済的な物語ではありませんが、登場人物のテンポの良い会話が面白い作品でした。

この作品自体は30ページほどの短い作品ですが、オチがしっかりしていて短編でここまで面白いミステリ小説が書けるなんてさすがだという感じです。

この物語の主人公が落語家ということもあり、落語的な物語を書こうとしたことが伝わってきました。


この物語のオチは子どもがカタカナの『メルヘン』という文字を『ナルヘソ』と読み間違えているというオチでした。

確かにこうして文字を横に並べてみると、メルヘンとナルヘソを読み間違えてしまうのも分からなくはありませんね。角度を変えたらだんだんそう見えてくる気がします。

物語を読みながら『なるへそ』ってどんな店なんだろうと考えていたため冒頭にも述べた通り、この物語のオチを読んだとき思わずなるへそと呟いてしまいました。

嘘をついていない子どもの言葉に、まんまと騙されている大人5人の様子は何度読んでもおもしろいですね。



まとめ


『なるへそ』はいつもの池井戸潤さんとは違うテイストの作品でしたが、さっくり読める作品で面白かったです。

他にも池井戸潤さんがこういった短編を書いているんだったら読んでみたいですね。





DSC_3828


浅原ナオトさんの『彼女が好きなものはホモであって僕ではない』を読みました。

web小説が原作ということとタイトルから読む前はライトノベルのような感じの内容だと思っていたのですが、LGBTという難しい題材を上手く扱っている作品でした。

この作品を読むことでLGBTの人の気持ちを理解するのにつながるのではないのでしょうか。

以下感想を書いていきます。ネタバレも含むので未読の方は注意してください。



あらすじ


男子高校生である安藤純は、同性愛者であることを家族にも友人にも告白することができず辛い日々を過ごしていた。

あるとき、同性愛者の作品を楽しむ、いわゆる腐女子と呼ばれる同級生の三浦紗枝と友達になる。

彼が仲良くなっていくうちに紗枝は純に恋愛感情を抱き彼が同性愛者と知らないまま告白することになる。

純は紗枝に自分がホモであることを隠したまま告白を受け入れた。

しかし、時間がたつにつれて真実を隠すのが辛くなってきた純にある事件が起きた。

その事件をきっかけに彼らの関係は予想外の方向へと進んでいく。

同性愛者であることを告白できない少年の奮闘を描いた物語。



感想



LGBTについての考え方が大きく変わった


本作の主人公である安藤純は高校生の少年で年上の男性が好きないわゆる男性同性愛者(ゲイ)です。

彼がゲイになったのは幼いときに両親が離婚してしまい、母親と二人で暮らすことになったことで父親の愛情に飢えてしまったという要因があります。私は知らなかったのですが、LGBTにの人たちは生まれた段階からLGBTの人はほとんどおらず、後天的な要因でLGBTになる人が多いみたいです。

純は男性が好きだが、将来的には女性と結婚して家族がほしいという夢がありました。私は今まで同性愛者の人は社会的名誉のために異性としかたなく結婚し、その結果子供ができている人ばかりだと思っていたのですがこれは偏見だったみたいで、家族が欲しいけど異性を愛することができないという悩みを抱えている人もいるみたいです。

純はまさにこのタイプで、彼女になった三浦さんと性行為に及ぼうとしますが女性と肌を触れ合っても性的興奮を覚えることができず最後まで性行為をすることができませんでした。

また、一部のLGBTの人には普通の人と違うのが嫌だという気持ちを持っている人もいるみたいで、異性に性的興奮を覚えることができない自分の存在が嫌だと感じる人もいるみたいですね。

これらの他にも本書を通して以前よりLGBTに対する理解が深まりました。本書を読んで気が付いたのは私はけっこうLGBTに対して偏見を持っていたみたいです。これは大きく反省しなければならない点です。





マイノリティには周りからの理解が必要


LGBTに限った話ではないのですがマイノリティの人が楽しく生きることのできる世の中を作るためには周りの理解が必要だと再認識しました。

小野が純がゲイであるということを学校中に広めたことが原因で、純は自殺未遂をしてしまうほど追い詰められてしまいます。

純が孤独な存在だったらこのまま立ち直れなかった可能性がありますが、三浦さんや亮平、純の母親がLGBTだからといって差別するのではなく、理解しようとしてくれたおかげで純は立ち直り再び高校に通い始めることができました。

一方、ミスター・ファーレンハイトには理解者が彼氏であった従兄しかおらず、家族からも普通になれと言われ続けた結果自殺をしてしまいます。もし、ミスター・ファーレンハイトの周りにも理解者がいれば純と生きたまま会うことができたかもしれません。

マイノリティの人たちは自分たちの理解者として、ネット上で見つけた自分と同じ仲間だけではなく、マジョリティの存在がマイノリティのことを理解してくれることを求めています。

人間は同調圧力が強い動物であるがゆえに、少数派の存在を恐ろしく感じてしまいがちです。しかし、少数派の人たちを差別して生きるのではなく、ともに楽しく生きていける世の中を実現するために理解しようとしなければなりません。

私はもし親友がマイノリティの存在であったとしても、亮平のように差別することなく親友を大切にしていける存在になりたい。


青春小説としても良かった


作品のテーマからどうしてもLGBTのことばかり感想で出てきてしまいますが、『彼女が好きなものはホモであって僕ではない』は青春小説という点で見てもなかなか面白かったです。なのでLGBTには興味がないけど青春小説が好きという人にも読んでもらいたいですね。

中高校生が読んだら亮平や三浦さんの思いに同調できる人が多いのではないのでしょうか。大人が読んでも昔のことを思い出せるだろう。

三浦さんは初めて自分が好きになってしまった人が同性愛者であり、その事実を知った後も自分のことを見てもらおうと努力を続けていました。努力を続ける三浦さんの行動一つ一つがかわいくて終盤は終始キュンキュンしまくってしまいました。結果的に純が男性が好きという点は変化せず、三浦さんと純は別れてしまいましたが一生ものの親友となることができたので良かったのではないのかもしれません。

亮平は親友である純のために自分が好きであった三浦さんを諦めるといったなかなか男らしい人物でした。純が同性愛者だと分かったときに亮平の心境は複雑だったはずなのにそれでも親友を守ろうとするところがかっこよかったです。

また、友人キャラとして小野はなかなか良いアクセントとなっていました。小野のようなはっきりと正面からものを言える人物がいたおかげで、本書のテーマのLGBTについて読者が深く考えられるようになっていたのでしょうね。



まとめ


LGBTについて少しでも関心があるかたはぜひ本書を手に取って読んでみてください。

最近の調査では10人に1人がLGBTであると言われています。決してすくなくない数なのでこの機会にLGBTについて理解を深めてみてはいかがでしょうか。




PXL_20210620_020458744

浅原ナオトさんの『今夜、もし僕が死ななければ』を読みました。

死の近づいている人間が見えるというよくある主人公の設定だったのですが、主人公が成長していく過程でその能力を持っている意味についての結末が結構意外な感じで面白かったです。

以下、あらすじと感想になります。



あらすじ


新山遥には死の近づいている人が分かる。

死が合近づいている人には、胸のあたりに海が見えるのだ。海が見えた人は長くても2週間以内には亡くなってしまう。

遥がどれだけ海が見えた人を救おうと躍起になっても彼らの寿命を変えることはできない。

死が見えるようになったのは、十歳で交通事故に遭い、両親と妹を失ったころからだ。

遥は自分だけがなぜこのような能力を持っていて、どのようなことのために使えば良いのかが分からず悩み続けている。

この能力を持っている意味を見つけるために、遥は死の近い人々に声をかけ死ぬことを伝え寄り添おうとする。

その行動をしたとき、たいていの場合人に煙たがられるが、まれに感謝されることもある。

14歳、17歳、20歳に出会った死が間近な人をきっかけに少しずつ変化していく遥。

24歳になり愛する人ができわが子の誕生を待っていたが、生まれてきた子どもの胸には海が見えた…。

死が見える少年の苦悩と成長を描いた運命の物語。



感想


遥の能力の正体


遥は24歳に子どもが誕生するときまで自分の能力は人の死が見えるというものだと思っていました。

我が子の誕生で彼の能力は死が見えるだけではないうということが分かります。

能力の正体は生まれるときには命が海から来て、死ぬときには海へ還ることを見ることができる能力でした。

この能力の正体が分かったとき素敵な能力だで良かったと思いました。

ただ、自殺をしようとしている人間に対して海が見えないのは、自殺では海に還れないよということを強調しているようで切ない気持ちになりました。

第三幕で自殺してしまったリュウの骨は海にかえされましたが、彼の魂は海に還ることができなかったのでしょうね…。

この作品を読んでどんなに辛くても自殺はするな、最後まで精一杯あがいて生きろということを遥の能力から教えられました。



遥の子どもの誕生シーンについて


遥の子どもに海が見えてしまったとき、私は彼の能力は死を見ることができるだけのものだと思い込んでいたので、両親や兄弟だけでなく子どもまで遥から奪ってしまうのかと物語を読み進めるのが辛い気持ちになりました。

第四幕のタイトルが「二十四歳、『STAND BY ME ドラえもん』」だったこともあり、子どもがすぐに死んでしまったけど、生まれて来てくれたことに感謝するという不幸な結末なのかなと予想していました。

しかし、実際は我が子の胸に海が見えたのは、遥に海から来たのことを知らせて命の祝福を遥にしてもらおうとしていたのです。

このシーンを読んだときは遥良かったねという気持ちがピークに達してい号泣しましたね(笑)



遥が能力を持つ意味


『今夜、もし僕が死ななければ』では物語を通して遥が能力を持つことの意味を悩み続ける様子が描かれ続けていました。

能力を得た当時、同じ能力を持つおばあちゃんが死の近づいている人に死ぬ前に後悔しないように死を知らせてあげているということを教えてもらったこともあり、遥もその影響を受けて死を教えてあげるということを続けていました。

我が子が死ぬかもしれないと思った場面では、遥が涙を流せなくなってしまったことも相まって彼は能力を持つ意味をみんなの感情のゴミ箱になって悲しみで止まっている時間を進めてあげるためだと誤解してしまいます。

しかし、我が子が誕生したことや昔のおばあちゃんの行動を思い出して彼は能力を持っている意味なんてないんだということを悟りました。

これは著者の浅原ナオトさんが生きている意味がないと悩んでいる読者に対して、生きていることには意味がないかもしれないけど、死を選ぶぐらいなら意味なく生きてということを伝えたかったのではないのかと私は思いました。

なので私が今後自分の生きている理由について悩むことがあれば『今夜、もし僕が死ななければ』を思い出してとりあえずがむしゃらに生きていこうと思いました。



まとめ


『今夜、もし僕が死ななければ』は後悔がないように前向きに生きていこうよということを教えてくれる作品でした。

私には自分の死を予想したり、人の死を見ることができませんがいつ死ぬことがあっても後悔が残らないようにしたいと思いました。

本作を読んで浅原ナオトさんの別の作品に興味を持った方は以下の作品もおすすめですので読んでみてください。









3753817_s

本記事ではVisual Studioを使ってWPFの開発環境を構築する方法を紹介していきます。



Visual Studioのダウンロード


最初にVisual Studioをインストールします。

すでにインストール済みの人は読み飛ばしてもらっても大丈夫です。

Visual Studioは以下のリンクからダウンロードできます。



コミュニティ版は学生、個人利用者、オープンソース貢献者は無償で使用できるみたいです。マイクロソフトは心が広いですね。

以下の画面の赤で囲まれている部分をクリックすることでダウンロードすることができます。

キャプチャ

ダウンロードが完了したらインストーラを起動してください。

インストーラを起動したら続行をクリックします。

キャプチャ

次に.NET デスクトップ環境にチェックを入れてインストールボタンをクリックしてください。

そうするとインストールが始まります。

キャプチャ

キャプチャ

インストールが完了すると一度PCの再起動を求められるので再起動してください。

キャプチャ

再起動がしたらデスクトップからメニューを開いてVの項目にあるVisual Studio2019を起動してください。

キャプチャ

起動するとマイクロソフトアカウントでのサインインが求められるのでサインインしてください。

アカウントがない場合は、アカウントを作成してください。

キャプチャ

サインインすると配色の設定が聞かれるので好みの色に設定してVisual Studioの開始をクリックします。

キャプチャ

以下の画面が起動したらVisual Studioが起動できたためインストールは完了です。

キャプチャ



WPFプロジェクトを作成する


Visual StudioがインストールできたろことでWPFのプロジェクトを作成していきます。

以下の画面から新しいプロジェクトの作成をクリックしてください。

キャプチャ

検索ボックスにWPFと入力して、以下の画像の赤枠で囲っているWPFアプリケーションを選択して次へをクリックしてください。

Visual Basic用などと間違えないように注意してください。

キャプチャ

プロジェクト名や場所は適当なものを入力して次へをクリックしてください。今回はデフォルトのままで進みます。

キャプチャ

ターゲットフレームワークもなんでもいいのですが今回は現時点で最新の5.0を使用します。

ターゲットフレームワークが選択できたら作成をクリックしてください。

キャプチャ

以下の画面が表示されたらWPFプロジェクトの作成は完了です。

キャプチャ





Hello Worldアプリを作成する


プロジェクトが作成できたら、ボタンを押したら画面にHello Worldと表示する単純なアプリを作成します。

ここではあくまでアプリを実行することを目的とするのでコードの意味などは説明しません。

MainWindow.xamlのコードを以下に示します。

<Window x:Class="WpfApp1.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:WpfApp1"
        mc:Ignorable="d"
        Title="MainWindow" Height="450" Width="800">
    <Grid HorizontalAlignment="Center" VerticalAlignment="Center">
        <StackPanel>
            <Label x:Name="Label1" Margin="10" Height="40" Width="200" HorizontalContentAlignment="Center"/>
            <Button Content="ボタン" Height="40" Width="80" Click="Button_Click"/>
        </StackPanel>
    </Grid>
</Window>

MainWindow.xaml.csのコードを以下に示します。

using System.Windows;

namespace WpfApp1
{
    /// <summary>
    /// Interaction logic for MainWindow.xaml
    /// </summary>
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
        }

        private void Button_Click(object senderRoutedEventArgs e)
        {
            Label1.Content = "Hello World!!";
        }
    }
}

このコードを張り付けて、実行ボタンを押すとアプリが起動します。

キャプチャ

キャプチャ

ボタンをクリックすると画面中央にHello Worldと表示されます。

キャプチャ



まとめ


Visual StudioをインストールしてWPFでHello Worldアプリを作成するまで1時間ほどでできました。

関係ないですがいつの間にかホットリロード機能が付いたんですね!








↑このページのトップヘ