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

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

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

ファイル開いたら即作動させたい

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

■103626 / inTopicNo.1)  ファイル開いたら即作動させたい
  
□投稿者/ ササキ (5回)-(2025/04/01(Tue) 14:20:11)

分類:[.NET 全般] 

C#用語、パソコンの用語、プログラムの用語、英文の読み方も知らない寿命ない老人です。
プログラムの構文も「大工道具と木材」とか「幼児の積み木」かな・・・で パソコンで遊んでいるんです。
成果物は教室授業風景そのものです、孫の要望との合作です。
専門用語の分らず屋の質問で恐縮ですが、「ファイルを開いてデバッグの開始ボタンを押して作動
させていますが、ファイル開いたら即作動させたい」のですが、
下記に羅列のプログラムを表示します、どうぞよろしくご指導ください。
using System.Drawing;
using System.Windows.Forms;
using SpeechLib;
using System.Threading;
using System.Threading.Tasks;
using System.Security.Cryptography;
using System.Diagnostics;
using static System.Windows.Forms.VisualStyles.VisualStyleElement;
using static System.Windows.Forms.VisualStyles.VisualStyleElement;
using static System.Windows.Forms.VisualStyles.VisualStyleElement.ToolBar;
using System;
using System.Text.RegularExpressions;
using System.Reflection.Emit;
using System.Text;
using System.Collections;
using Microsoft.VisualBasic.ApplicationServices;
using static System.Runtime.InteropServices.JavaScript.JSType;
using System.IO;
using 教室_黒板_;

namespace 教室_黒板_
{
public partial class Form1: Form
{
string drawString; string drawString1; string drawString2; string drawString3;
int flg1 = 1; int flg2; int flg3; int flg4; int flg5; int flg6; int flgjipe; int flgkomoku;
int ugoki; int time = 7000; string eibun; string eibun1; string eibun2; string eibun3; string eibun4; int kuhaku;
string juuten1; string juuten2; string juuten3;
int i; int x; int y; string line; string line1; int iNo; int iNo1; int gyo1; int gyo2; int gyo3; string kaiNo; string kaiNo1;
int gaku = 3; int gakunen; int yobiNo; int yobiNo1; int yobiNo2; int yobiNo3; int kihoNo;
string Kasira; string Kasira1; int no_kaiNo; string EibunWabun; float SecondAng1; int byteCount; int haba;

Bitmap Clock_Face = new Bitmap(@"C:\Users\Scratch 学習ソフト\小2時計枠.jpeg"); // 時計の文字盤
Bitmap Clock_Minute = new Bitmap(@"C:\Users\Scratch 学習ソフト\小2長針b.png"); // 長針
Bitmap Clock_Hour = new Bitmap(@"C:\Users\Scratch 学習ソフト\小2短針b.png"); //短針

public Form1()
{
DateTime time = DateTime.Now;
SecondAng1 = time.Second + time.Minute * 60;
InitializeComponent();
MokujiStart();
}

private async void Byouga()
{
// pictureBox1.Parent = pictureBox2;C:\Users\C# 学習ソフト\英文法-高校
// pictureBo・・・・・・
引用返信 編集キー/
■103627 / inTopicNo.2)  Re[1]: ファイル開いたら即作動させたい
□投稿者/ 魔界の仮面弁士 (3837回)-(2025/04/01(Tue) 15:09:20)
No103626 (ササキ さん) に返信
> 専門用語の分らず屋の質問で恐縮ですが、「ファイルを開いてデバッグの開始ボタンを押して作動
> させていますが、ファイル開いたら即作動させたい」のですが、

そのボタンは、C# のソースコードを『実行可能ファイル』に変換(ビルド)する作業を含んでいます。

そして、その作成された実行可能ファイルは No103620 で回答したように、
Debug フォルダーの下に、恐らく "教室_黒板_.exe" のような名で生成されているはずです。


その .exe ファイルを含むフォルダー一式をコピーして、任意の場所に配置してください。
以降は、Visual Studio を使わずにその .exe ファイルをダブルクリックすれば実行されます。



あるいは exe を実行したいわけではなく、あくまでもソースコードをデバッグ実行する作業を求めているのなら、
Visual Studio コマンドプロンプトから
 devenv.exe /Run "C:\Users\〜〜〜\教室_黒板_.sln"
または
 devenv.exe /RunExit "C:\Users\〜〜〜\教室_黒板_.sln"
を実行してやれば、一発でデバッグ実行が開始されます。
devenv.exe というのは、Visual Studio 本体のプログラム名です。


Visual Studio コマンドプロンプトの代わりに、コマンドプロンプトやショートカットを使う場合は、
devenv.exe へのフルパスを指定してみてください。

また、Visual Studio ではなく Visual Studio Express 2017 for Desktop を利用されている場合は、
devenv.exe ではなく VCSExpress.exe というファイル名になります。
引用返信 編集キー/
■103628 / inTopicNo.3)  Re[2]: ファイル開いたら即作動させたい
□投稿者/ ササキ (6回)-(2025/04/01(Tue) 16:11:48)
No103627 (魔界の仮面弁士 さん) に返信
> ■No103626 (ササキ さん) に返信
>>専門用語の分らず屋の質問で恐縮ですが、「ファイルを開いてデバッグの開始ボタンを押して作動
>>させていますが、ファイル開いたら即作動させたい」のですが、
>
> そのボタンは、C# のソースコードを『実行可能ファイル』に変換(ビルド)する作業を含んでいます。
>
> そして、その作成された実行可能ファイルは No103620 で回答したように、
> Debug フォルダーの下に、恐らく "教室_黒板_.exe" のような名で生成されているはずです。
>
>
> その .exe ファイルを含むフォルダー一式をコピーして、任意の場所に配置してください。
> 以降は、Visual Studio を使わずにその .exe ファイルをダブルクリックすれば実行されます。
>
>
>
> あるいは exe を実行したいわけではなく、あくまでもソースコードをデバッグ実行する作業を求めているのなら、
> Visual Studio コマンドプロンプトから
>  devenv.exe /Run "C:\Users\〜〜〜\教室_黒板_.sln"
> または
>  devenv.exe /RunExit "C:\Users\〜〜〜\教室_黒板_.sln"
> を実行してやれば、一発でデバッグ実行が開始されます。
> devenv.exe というのは、Visual Studio 本体のプログラム名です。
>
>
> Visual Studio コマンドプロンプトの代わりに、コマンドプロンプトやショートカットを使う場合は、
> devenv.exe へのフルパスを指定してみてください。
>
> また、Visual Studio ではなく Visual Studio Express 2017 for Desktop を利用されている場合は、
> devenv.exe ではなく VCSExpress.exe というファイル名になります。

早速のご返事、御解答に御指導ありがとうございます。大事にコピペして勉強しつつ成功させたいと
思います、出来なくてのお願いでした、有難く感謝申しあげます。
引用返信 編集キー/
■103630 / inTopicNo.4)  Re[3]: ファイル開いたら即作動させたい
□投稿者/ ササキ (7回)-(2025/04/03(Thu) 21:31:43)
No103627 (魔界の仮面弁士 さん) にお礼を

" 即動作できるファイルを見つけました、ありがとうございます。大変失礼でございますが、貴社&#10005;→貴者と
言わせていただきます。
貴者のご指導あってのことですが嬉しかったです。階層の深いところにあって、怖くて何回も素通りして、
思い切っての操作で見つかりました、感動しました、ありがとうございます。そのファイル(?)をコピペして
作動ボタンにできず、クリックしてもダメでした。階層が深いので・・・・・・。
小生の微力では、出来なかったです、その結果はpublic Form1()です。楽しませて貰いました。
public Form1()
{
DateTime time = DateTime.Now;
SecondAng1 = time.Second + time.Minute * 60;
InitializeComponent();
MokujiStart();
//string filePath = @""C:\Users\C# 学習ソフト\英文法-高校.sln"";
//string filePath = @""C:\Users\C# 学習ソフト\英文法-高校\教室(黒板)\bin\Debug\net8.0-windows"";
//Process.Start(filePath);// エラー
//Process.Start(""devenv.exe"", ""/RunExit \""filePath\"""");
//Process.Start(""devenv.exe"", ""/RunExit \""C:\\Users\\C# 学習ソフト\\教室(黒板)\"""");
//Process.Start(@""C:\Program Files\Microsoft Visual Studio\2022\Community\Common7
             \IDE\devenv.exe"",""/RunExit \""C:\\Users\\C# 学習ソフト\\英文法-高校.sln\"""");
}

devenv.exe /RunExit ""C:\Users\〜〜〜\教室_黒板_.sln""も devenv.exe これにエラー対処できず・・・
私の「ギグアップ」で終了したいと思います。貴者のご指導有難く、お礼申し上げます。

この機会がありましたので、ちょっと利用させて下さい。

プロの方は一言・一言にヒントが・・・  授業風景がそのもの・指示棒持っての先生・テレビには要点・
時計には勉強時間も・チョークは解説、基本、英文、和文、語順、問題で色替え・音楽替え歌で単語に要点・
音声は英文読み・その他に非表示、表示、文字文のフラッシュ、目次、次頁、前頁、・・・・・・
50年前からソフトの構文は知らないですが、その時代、時代のソフトで、分かる範囲で趣味で「 業務ソフト・
日報・技術計算・市の駅伝ソフト・小中高の学習ソフトなどなど 」 70〜以上
AI で楽しんでいます、後寿命千日をどう過ごせばいいの ? と ・・・・・・

見っともないこと書かせて頂きました、大変失礼しました。・・・貴者には感謝感激です、ありがとうございました。・・・









"





































解決済み
引用返信 編集キー/
■103632 / inTopicNo.5)  Re[4]: ファイル開いたら即作動させたい
□投稿者/ 魔界の仮面弁士 (3838回)-(2025/04/04(Fri) 11:33:39)
No103630 (ササキ さん) に返信
プログラミング自体に慣れていない段階であれば
 ISBN:9784798067780
 「C# のプログラミングのツボとコツがゼッタイにわかる本」
という入門者向け書籍をお奨めしておきます。
https://www.shuwasystem.co.jp/book/9784798067780.html
正誤表:https://www.shuwasystem.co.jp/support/7980html/6778.html

ただし、C# という言語の習得を目的としている段階であるのなら、
この本だけでは内容が薄すぎるので、別の教材の方が良いでしょう。


No103620 で確認していた
>> 現在の開発環境を明確に
という、【開発環境】に関する点については、結局、具体的な言及がありませんでしたが
具体的な言及は無いものの、今回の投稿に含まれていたパス情報から
 ・Visual Studio 2022 Community Edition
 ・Windows フォーム アプリケーション (.NET 8.0 向け)
という環境で開発されていたようですね。


先の私の回答をあらためて列挙してみると:

(1) ソースのデバッグを即開始することが目的なら、「devenv /Run ".slnファイルパス"」。
 ※ちなみに /RunExit にすると、デバッグ終了後に Visual Studio も閉じられます。

(2) アプリ実行の手動実行が目的なら、作成された exe をダブルクリック。

(3) アプリを Windows 起動時に即開始したいのなら、タスクスケジューラーに登録
 ※あるいはスタートアップフォルダーにショートカットファイルを登録

(4) 自作アプリから、別の実行可能ファイルを呼び出すことが目的なら Process.Start メソッド。

(5) フォーム上のボタンを押したことにしたいのならば、ボタンの PerformClick メソッド。

など、目的に応じた様々なパターンを記しております。

「何のために」という当初の目的を説明していただけていたのであれば、
エスパー回答する手間を省けて、もう少し的を絞ったやり取りを進められたのですけれどね…。


そしてその目的によっては、今までの回答だけでは不十分な可能性もあります。

たとえば上記の (4) の場合で考えてみても、
 (a)単に起動できればそれだけで良いのか?
 (b)起動するときに、そのプログラムに何か追加の情報を渡したくは無いか?
 (c)起動し終わるまで、呼び出し元プログラムが次の処理を待ち合わせる必要があるか?
 (d)呼び出したプログラムが終了するまで、呼び出し元プログラムが待ち合わせる必要があるか?
 (e)呼び出したプログラムの実行結果を、呼び出し元プログラムで受け取りたくは無いか?
 (f)そのプログラムのパスは固定なのか? 自分のプログラムと同時に動かすのか?
などの要件次第で、採るべき選択肢も変化してきます。

さらに言えば、外部プログラムの起動処理を
「public Form1()」内に記述することが、本当に望ましいかどうかも検討事項です。

たとえばフォームの起動中では無く、Form1 の起動前に呼び出すようにするとか、
あるいは Load イベントや Shown イベントから呼び出す方が良いこともあります。


> devenv.exe /RunExit ""C:\Users\〜〜〜\教室_黒板_.sln""も devenv.exe これにエラー対処できず・・・
これでは、手段と目的が合致していません。

devenv.exe は Visual Studio 本体のことであり、先の回答は
「ソースコードをデバッグ実行」することを目的とした場合の手段です。
デバッグ実行終了後に Visual Studio も閉じるなら /RunExit オプション
デバッグ実行終了後に Visual Studio を開いておくなら /Run オプションです。

また、devenv を Process.Start で渡すようなことを提案したつもりも無く、
先の回答では『Visual Studio コマンドプロンプトから』呼ぶように記述したはずです。

Visual Studio コマンドプロンプトとは、Windows の[スタート]メニューから
すべてのアプリの一覧を表示し、"Visual Studio 2022" フォルダー内にある
コマンドプロンプト群のことです。


> //Process.Start(@""C:\Program Files\Microsoft Visual Studio\2022\Community\Common7
>              \IDE\devenv.exe"",""/RunExit \""C:\\Users\\C# 学習ソフト\\英文法-高校.sln\"""");

うーん。そもそも、"C:\Users\C# 学習ソフト\英文法-高校.sln" という時点で奇妙なのですよ。

一般的な Windows 環境では、C:\Users\ フォルダーの直下にあるフォルダーは
Windows のログオン アカウントを指します。Windows 起動時のログオンユーザー名が
「C# 学習ソフト」という名前だったというのはちょっと考えにくい。

それに、ユーザー名フォルダーの下に置かれるのは、
 Desktop フォルダー(デスクトップ)
 Documents フォルダー(ドキュメント)
 Pictures フォルダー(ピクチャ)
などのフォルダ群であって、こんなところソリューションファイルがあるのは普通ではありません。

もしも本当に、"英文法-高校.sln" ファイルが "C:\Users\C# 学習ソフト\英文法-高校.sln" にあるのなら
 Process.Start(
   @"C:\Program Files\Microsoft Visual Studio\2022\Community\Common7\IDE\devenv.exe",
   """ /RunExit "C:\Users\C# 学習ソフト\英文法-高校\英文法-高校.sln" """);
といった記述で呼べなくも無いですが…。
しかしこれを 英文法-高校.sln 内のプロジェクトに書いて、自分自身を呼び出すというのは厳禁です。

デバッグ実行中のプログラムを、別の Visual Studio からさらにデバッグ実行するのは不自然ですし、
呼べたとしても、英文法-高校 の起動時に 英文法-高校 が起動されて
その英文法-高校がまた別の英文法-高校を呼び出すことになる多重呼び出しを
メモリが枯渇するまで延々と繰り返すことになってしまいかねません。


> //string filePath = @""C:\Users\C# 学習ソフト\英文法-高校.sln"";
> //string filePath = @""C:\Users\C# 学習ソフト\英文法-高校\教室(黒板)\bin\Debug\net8.0-windows"";

"英文法-高校.sln" というソリューションの中に
"教室(黒板).csproj" というプロジェクトがある感じなのですかね。

そのソリューション内にあるプロジェクトは一つだけでしょうか。

もしもそのソリューションの中に、複数のプロジェクト ファイルがある状態
(たとえば、"英文法-高校.csproj" など)であるのなら、デバッグ実行時には、
どのプロジェクトを起動するのか(あるいはすべてのプロジェクトを起動するのか)という
スタートアップ プロジェクトの設定が必要です。
https://learn.microsoft.com/ja-jp/visualstudio/ide/how-to-set-multiple-startup-projects?view=vs-2022


> 貴社×→貴者と言わせていただきます。
会社なら「貴社」、個人なら「貴殿」「貴方」という表現はありますが、
「貴者」という日本語は無いのでは…。
解決済み
引用返信 編集キー/

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


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

このトピックに書きこむ