質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.37%
C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Visual Studio

Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

Windowsサービス

Windowsサービスは、Windows NTベースの管理システム上のService Control Managerによって走るバックグラウンドサービス処理で、daemonやUNIXサービスに類似しています。

Q&A

解決済

3回答

3212閲覧

C# サービスプログラムの作成

B-Hirosuke

総合スコア22

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Visual Studio

Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

Windowsサービス

Windowsサービスは、Windows NTベースの管理システム上のService Control Managerによって走るバックグラウンドサービス処理で、daemonやUNIXサービスに類似しています。

0グッド

0クリップ

投稿2021/08/12 23:19

編集2021/08/12 23:59

やりたいこと

  • 指定したアプリ(exe)が起動したときに、自動で起動するプログラムの作成
  • C# を使用したwindowsアプリケーションにしたい。

何に使うのか?

指定したexeが実行されると、実行結果のCSVを吐き出す。
その履歴を、普段は、手打ちで別のファイルに打ち込んで保管している。
手打ちが面倒になってきたので、自動化したい。

exe起動 -> 実行結果CSV作成 -> プログラム起動 -> 書き込み処理実行

作成に当たっての疑問点

  1. 現実的に可能なのか?

  2. こういったプログラムは、サービスプログラムで間違いないか?

  3. C#では、どのような手法があるか?

追記

指定したexeの中身は変更できません。
あくまで、指定したexeが立ち上がってから、実行されるプログラムを作りたいです

どなたかご教授いただけないでしょうか。
よろしくお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

exe起動 -> 実行結果CSV作成 -> プログラム起動 -> 書き込み処理実行

  1. 現実的に可能なのか?

System.Diagnostics.Process で「exe起動 -> 実行結果CSV作成」ができるなら容易に可能だと思います。

  1. こういったプログラムは、サービスプログラムで間違いないか?

コンソールアプリとか Windows Forms アプリでよさそうだと思います。Windows サービスにするメリットがあれば話は別ですが、ないのでは?

  1. C#では、どのような手法があるか?

「c# 他のアプリを起動」などのキーワードにググると参考になりそうな記事がヒットすると思います。例えば:

C#で外部アプリケーションを起動する
https://araramistudio.jimdo.com/2017/05/09/c-%E3%81%A7%E5%A4%96%E9%83%A8%E3%82%A2%E3%83%97%E3%83%AA%E3%82%B1%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E3%82%92%E8%B5%B7%E5%8B%95%E3%81%99%E3%82%8B/

C#から別のプログラムを実行する方法とは?方法から引数実行まで解説
https://www.sejuku.net/blog/101552

投稿2021/08/13 04:15

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

B-Hirosuke

2021/08/13 05:09

質問後、ググってたら、それらしき記事が見つかりました。 exeの起動、csvの書き込み方法までは、コーディングすることができ、後は、細かな作りこみを行います。 ありがとうございました
guest

0

ベストアンサー

やりたいことだけ考えれば、目的のEXEを起動するEXEを作って、そのEXEを起動するようにする。
作るEXEは
1.起動したら目的のEXEを起動する。
2.指定CSVに追記する
という処理を行えばいいかと思います。

また、質問に挙げられている手法で行うとしても、目的のEXEの実行が一瞬で終わらない前提ですが
常駐して一定時間毎に起動しているプロセスを取得する。
その中に目的のEXEがあり、CSV出力フラグがOFFの場合、CSVに追記しフラグをONにする。
プロセスがなければ、CSV出力フラグをOFFにする。
といった処理を行うだけで、サービスとして作るまではしなくてもいいかと思います。

投稿2021/08/12 23:34

YAmaGNZ

総合スコア10469

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

B-Hirosuke

2021/08/13 00:06

なるほど EXEを起動するEXEを作るですか、それは、盲点でした それなら、できそうですね
B-Hirosuke

2021/08/13 00:25

ちなみに、指定のexeが実行されて、処理が完了するまで5分程度かかります。 流れ的には、exeを起動(exe-A)→csv作成(exe-B)→別ファイルに打ち込む(exe-A) というように、exeを跨ぐ処理になります。 これは、別ファイルに書き込むという処理を5分程度遅らせることで対処できますか?(正しくは、プロセスが別だから、実行される順番はどうでもいいですか?)
YAmaGNZ

2021/08/13 00:49 編集

目的のEXE(EXE-A)を実行するとCSVが作成される(CSV-A) このCSV-Aの内容を別のCSV-Bに書き込むということであれば 作成するのは 1.EXE-Aを実行し、終了を待つ 2.CSV-Aを読み込む 3.CSV-Bに書き込む じゃないですか?
B-Hirosuke

2021/08/13 05:08

そうですね!!! ありがとうございました。
guest

0

指定されたアプリを実行させて、生成されたファイルを処理する、というアプリを組めばどうでしょう

で、実行側ではそのアプリを実行させるように変更すればいいというはなしになります
#これならかんたんにできるかと

投稿2021/08/12 23:31

編集2021/08/12 23:32
y_waiwai

総合スコア88024

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

B-Hirosuke

2021/08/13 00:07

なるほど それならできそうです
B-Hirosuke

2021/08/13 05:08

ありがとうございました
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.37%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問