C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

PC起動後に初回起動か調べるには?

[トピック内 9 記事 (1 - 9 表示)]  << 0 >>

■96542 / inTopicNo.1)  PC起動後に初回起動か調べるには?
  
□投稿者/ 工房 (1回)-(2020/12/13(Sun) 13:41:26)

分類:[.NET 全般] 

VB.NETを使っていて、
PC起動後に初めてプログラムを起動した際にのみ
あるコードを実行するようなプログラムを作りたいのですが、
初回起動かどうか認識するにはどのようにしたら良いでしょうか?


PC起動時に自動起動するサブプログラムのようなものを作るしかないでしょうか?




引用返信 編集キー/
■96543 / inTopicNo.2)  Re[1]: PC起動後に初回起動か調べるには?
□投稿者/ 紅 (8回)-(2020/12/13(Sun) 14:27:40)
設定ファイル作ってあるなら、設定ファイルの有無で判定するのが簡単そうです。
もし設定ファイルがないなら初回起動したかどうかだけでも設定ファイルに保存し、
FormのLoadイベント時に設定ファイルを読み込んで初回起動したか確認したらどう
でしょうか?
バージョン書いてないのでサンプル書くのやめておきますが、.NetCore3.1以降なら
Jsonで簡単に設定ファイルを保存できます。
(C#やVBで簡単にJsonが扱えます。その前だとNugetでライブラリが必要だと思います)
引用返信 編集キー/
■96544 / inTopicNo.3)  Re[2]: PC起動後に初回起動か調べるには?
□投稿者/ 工房 (3回)-(2020/12/13(Sun) 14:30:55)
ありがとうございます。

> もし設定ファイルがないなら初回起動したかどうかだけでも設定ファイルに保存し、
FormのLoadイベント時に設定ファイルを読み込んで初回起動したか確認したらどう
でしょうか?

これって具体的にどのようにしたら良いですか?
初回起動したいう設定をファイルを保存したとして、
PCをシャットダウンか再起動時にそのファイルをリセットする必要がありますよね?
それはどのようにしたら良いですか?

引用返信 編集キー/
■96545 / inTopicNo.4)  Re[2]: PC起動後に初回起動か調べるには?
□投稿者/ 紅 (9回)-(2020/12/13(Sun) 14:33:16)
少しわかりにくかったので設定ファイルとは、Formなどの状態を保存して
おくセーブファイルを自作するってことです。
RPGなど時間かかるゲームは保存して、また別の日に続きをやりますよね。
引用返信 編集キー/
■96546 / inTopicNo.5)  Re[3]: PC起動後に初回起動か調べるには?
□投稿者/ 紅 (10回)-(2020/12/13(Sun) 14:35:11)
追記したら、もうレスがついてますねw
よかったらサンプル書きますので、WindowsフォームかWPF、VisualStudioのバージョンを教えてもらえますか?
設定ファイルは任意の場所に残せます。
引用返信 編集キー/
■96547 / inTopicNo.6)  Re[4]: PC起動後に初回起動か調べるには?
□投稿者/ 工房 (5回)-(2020/12/13(Sun) 14:48:37)
VisualStudioのバージョンは2015でVB.NETを使用しております。

セーブファイルの作成方法は知っていますが、
PCが起動して最初なのかどうかをどのようにして保存すれば良いか分かりません。

ご提示いただけると幸いです。

引用返信 編集キー/
■96548 / inTopicNo.7)  Re[4]: PC起動後に初回起動か調べるには?
□投稿者/ Hongliang (1132回)-(2020/12/13(Sun) 14:50:35)
2020/12/13(Sun) 14:59:14 編集(投稿者)

ファイルを1つ用意しておき、
・PCの起動時刻を取得する。
・ファイルを読み取り、起動時刻と一致していなければ初回起動とする。
・初回起動の場合、起動時刻をファイルに書き込む。

最近のWindowsは起動と言っても複数のパターンがあったりしますが…。
https://teratail.com/questions/183572
引用返信 編集キー/
■96549 / inTopicNo.8)  Re[5]: PC起動後に初回起動か調べるには?
□投稿者/ 紅 (11回)-(2020/12/13(Sun) 15:17:21)
設定ファイルの作り方とか知ってるようなので、一先ずやり方だけ書いておきますね。
再起動も含めないといけないので、厳密にやるなら条件によっては可能だと思います。
プログラムが常時起動状態であり再起動イベントが検知できるなら可能です。
たとえば、このあたりのイベントを使います。
https://docs.microsoft.com/ja-jp/dotnet/api/microsoft.win32.systemevents.sessionending?view=dotnet-plat-ext-5.0
https://dobon.net/vb/dotnet/system/sessionending.html

もしシステムに常駐していないなら、私もファイルの日付で確認する方法がいいと思います。
もしくは質問者さんがすでに書いてますが、プロセスを常駐させる別のツールを作成しておき再起動やシャットダウンを検知
したら設定ファイルを書き換えて、次の起動を初回起動にしますね。
(この方法がよくわからないならサンプル書きますのでお知らせください)
私も以前は、Hongliangさんが提示しているファイルの日付を保存しておく方法を使っていました。
これで不都合がある場合は、私の提示したURLを見てください。
引用返信 編集キー/
■96550 / inTopicNo.9)  Re[6]: PC起動後に初回起動か調べるには?
□投稿者/ 工房 (6回)-(2020/12/13(Sun) 15:32:19)
ありがとうございます。
そのようにしたら良いのですね。
一度、試してみます。


解決済み
引用返信 編集キー/

このトピックをツリーで一括表示


トピック内ページ移動 / << 0 >>

このトピックに書きこむ