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

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

新規登録して質問してみよう
ただいま回答率
86.02%
Visual Studio

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

VBScript

VBScript(Visual Basic Scripting Edition)はMicrosftが開発したスクリプト言語であり、Visual Basicのサブセットです。

Windows Forms

Windows Forms(WinForms)はMicrosoft .NET フレームワークに含まれる視覚的なアプリケーションのプログラミングインターフェイス(API)です。WinFormsは管理されているコードの既存のWindowsのAPIをラップすることで元のMicrosoft Windowsのインターフェイスのエレメントにアクセスすることができます。

VB.NET

Microsoft Visual Basic .NETのことで、Microsoft Visual Basic(VB6)の後継。 .NET環境向けのプログラムを開発することができます。 現在のVB.NETでは、.NET Frameworkを利用して開発を行うことが可能です。

Q&A

解決済

Windows Form アプリの exe を vbs から起動するとメインフォームが不完全に表示された後、システムダウンする。

oribe
oribe

総合スコア17

Visual Studio

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

VBScript

VBScript(Visual Basic Scripting Edition)はMicrosftが開発したスクリプト言語であり、Visual Basicのサブセットです。

Windows Forms

Windows Forms(WinForms)はMicrosoft .NET フレームワークに含まれる視覚的なアプリケーションのプログラミングインターフェイス(API)です。WinFormsは管理されているコードの既存のWindowsのAPIをラップすることで元のMicrosoft Windowsのインターフェイスのエレメントにアクセスすることができます。

VB.NET

Microsoft Visual Basic .NETのことで、Microsoft Visual Basic(VB6)の後継。 .NET環境向けのプログラムを開発することができます。 現在のVB.NETでは、.NET Frameworkを利用して開発を行うことが可能です。

3回答

0グッド

0クリップ

372閲覧

投稿2022/12/08 02:12

前提

開発環境:Visual Studio 2019
開発言語:VB.NET
アプリ:Windows Form

ビルドした exe をダブルクリックして起動すると正常にフォームが表示されます。
勿論、Visual Studio でデバッグ開始しても正常にフォームが表示されます。

実現したいこと

vbs からその exe を起動したい。

発生している問題・エラーメッセージ

vbs から exe を起動するとメインフォーム内の各コントロールにテキストなどが設定されていない状態で表示された次の瞬間、システムダウンします。

該当のソースコード

option Explicit Dim objWshShell Set objWshShell = CreateObject("WScript.Shell") objWshShell.Run "C:\Users\User\以下省略\〇〇〇.exe"

試したこと

管理者権限で実行されるように vbs を修正しましたが、結果は同じでした。

補足情報(FW/ツールのバージョンなど)

別の Windows Form アプリでは上記同様の vbs からその exe を起動しても、正しく立ち上がり、実行できています。

以下のような質問にはグッドを送りましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

グッドが多くついた質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

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

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

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

下記のような質問は推奨されていません。

  • 間違っている
  • 質問になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

適切な質問に修正を依頼しましょう。

dodox86

2022/12/08 02:22

「システムダウン」と聞くと、Windowsと言うOSごと異常終了したことを指すようにも思えますが、そういうことですか? それとも起動したWindows Formsのアプリだけが異常終了してしまったということでしょうか。 > 管理者権限で実行されるように vbs を修正しましたが、結果は同じでした もともとのWindows Formsのアプリは管理者権限で動く必要は無いのですよね。 > objWshShell.Run "C:\Users\User\以下省略\〇〇〇.exe" なんとなくですが、実行時のカレントディレクトリがその「〇〇〇.exe」と同じになっていなければいけないアプリなのではないでしょうか。
oribe

2022/12/08 07:49

●Windows Form アプリが異常終了となります。 ●「実行時のカレントディレクトリと exe が同じ」旨のご指摘、ありがとうございました。

回答3

0

自己解決

dodox86 様のご指摘を受け、vbs を以下のように修正し、正しく起動することを確認しました。

WshShell.CurrentDirectory = Session.Property("TARGETDIR")

otn 様、YAmaGNZ 様、ご回答をくださり、誠にありがとうございました。

dodox86 様の指摘を受けての自己解決ということで本件クローズとさせてください。

投稿2022/12/08 07:57

oribe

総合スコア17

良いと思った回答にはグッドを送りましょう。
グッドが多くついた回答ほどページの上位に表示されるので、他の人が素晴らしい回答を見つけやすくなります。

下記のような回答は推奨されていません。

  • 間違っている回答
  • 質問の回答になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

このような回答には修正を依頼しましょう。

0

VBScript

1option Explicit 2Dim objWshShell 3Set objWshShell = CreateObject("WScript.Shell") 4objWshShell.CurrentDirectory = "C:\Users\User\以下省略" 5objWshShell.Run "C:\Users\User\以下省略\〇〇〇.exe"

VBScript

1option Explicit 2Dim objWshShell 3Set objWshShell = CreateObject("WScript.Shell") 4objWshShell.Run "cmd /c ""cd /d C:\Users\User\以下省略 & 〇〇〇.exe"""

投稿2022/12/08 04:45

otn

総合スコア80513

良いと思った回答にはグッドを送りましょう。
グッドが多くついた回答ほどページの上位に表示されるので、他の人が素晴らしい回答を見つけやすくなります。

下記のような回答は推奨されていません。

  • 間違っている回答
  • 質問の回答になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

このような回答には修正を依頼しましょう。

0

objWshShell.CurrentDirectoryで作業フォルダを指定してはどうでしょうか

投稿2022/12/08 04:40

YAmaGNZ

総合スコア9461

良いと思った回答にはグッドを送りましょう。
グッドが多くついた回答ほどページの上位に表示されるので、他の人が素晴らしい回答を見つけやすくなります。

下記のような回答は推奨されていません。

  • 間違っている回答
  • 質問の回答になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

このような回答には修正を依頼しましょう。

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

ただいまの回答率
86.02%

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

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

質問する

関連した質問

同じタグがついた質問を見る

Visual Studio

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

VBScript

VBScript(Visual Basic Scripting Edition)はMicrosftが開発したスクリプト言語であり、Visual Basicのサブセットです。

Windows Forms

Windows Forms(WinForms)はMicrosoft .NET フレームワークに含まれる視覚的なアプリケーションのプログラミングインターフェイス(API)です。WinFormsは管理されているコードの既存のWindowsのAPIをラップすることで元のMicrosoft Windowsのインターフェイスのエレメントにアクセスすることができます。

VB.NET

Microsoft Visual Basic .NETのことで、Microsoft Visual Basic(VB6)の後継。 .NET環境向けのプログラムを開発することができます。 現在のVB.NETでは、.NET Frameworkを利用して開発を行うことが可能です。