戻る  □一般操作のサロン  □ 使用方法  □ 新着記事  □ 新規に質問する!  □ トピック一覧  □ 検索  □ 過去ログ
[ 最新記事及び返信フォームをトピックトップへ ]
このトピック参照回数 :
Shellでbat実行時のコマンドプロンプト画面最大化

    [196127] Shellでbat実行時のコマンドプロンプト画面最大化-

    ■親トピック/記事引用/メール受信=OFF■

    □投稿者/ こまたん -(2024/04/08(06:48))
    □U R L/

      Shell "D:\〜〜\〜〜.bat", vbMaximizedFocus
      で、batファイルを実行しています。
      batファイル実行中はコマンドプロンプトを表示していて、
      batファイルの実行が終わると、コマンドプロンプトが自動で閉じます。

      Win10までは、コマンドプロンプト画面が
      最大化された状態で表示されていたのですが、
      Win11では、コマンドプロンプト画面が
      通常サイズで表示されるようになってしまいました。

      最大化で表示させるようにするにはどうすればよいでしょうか?

      #以下、推測です。

      コマンドプロンプト画面の設定で、画面サイズや表示位置を指定できます。
      Win10では、コマンドプロンプト自体の設定よりも、
      Shellの引数(vbMaximizedFocus)が優先されていましたが、
      Win11では、コマンドプロンプト自体の設定が優先されてしまっているようです。
      Win11でも、コマンドプロンプト自体の設定で「最大化」にすれば、
      上記Shellでも最大化で表示されることは確認しました。しかし、
      スタートメニューからコマンドプロンプトを起動した時や
      ほかの処理でbatを実行した時などに影響してしまう為、
      コマンドプロンプトの設定自体は変更したくありません。




    [196129] Re[1]: Shellでbat実行時のコマンドプロンプト画面最大化-

    記事引用/メール受信=OFF■

    □投稿者/ kazuo -(2024/04/08(14:02))
    □U R L/
      chatGPTに聞いてみましたので参考にしてください。
      me:Windows 11 vba shell にてコマンドプロンプトを最大表示する方法は?
      
      chatGPT:
      Sub OpenCommandPromptMaximized()
          Dim command As String
          command = "cmd /k start /max cmd.exe"
          Shell command, vbNormalFocus
      End Sub
      
      cmd /kはコマンドプロンプトを開き、実行するコマンドを指定します。start /max cmd.exeは、新しいコマンドプロンプトウィンドウを開き、それを最大化して表示します。
      
      このVBAコードを実行すると、最大化されたコマンドプロンプトウィンドウが開きます。


      この記事にはVBAのコードが含まれています。

      緑の太文字→注釈
      茶色の太文字→条件分岐
      赤の太文字→ループ
      青の太文字→その他



      ++++++++++++++++++++
      OS      ⇒Windows 11
      Version⇒Excel 2021
      ++++++++++++++++++++




    [196133] Re[2]: Shellでbat実行時のコマンドプロンプト画面最大化-

    記事引用/メール受信=OFF■

    □投稿者/ こまたん -(2024/04/08(21:53))
    □U R L/

      ありがとうございます。

      コマンドプロンプトを起動して、
      そこで
      start "" /MAX "D:\〜〜.bat"
      を実行すると、コマンドプロンプトが新規に起動(画面最大化)で表示されることを確認できました。

      このコマンドをShellで実行するために
      下記のようにしました。

      Shell "cmd /C "" start """""""" /MAX """"D:\〜〜.bat"""" "" ", vbMaximizedFocus

      ※ダブルクォートが入れ子になっているので、二重化や四重化されています。

      コマンドプロンプトが新規に起動し、batは実行されるのですが、
      画面は通常サイズで、最大化はされませんでした・・・。

      むぅ・・・。なぜなんでしょう・・・。





    [196134] Re[3]: Shellでbat実行時のコマンドプロンプト画面最大化-

    すいませ〜ん。誰か〜! / 記事引用/メール受信=OFF■

    □投稿者/ kazuo -(2024/04/09(12:28))
    □U R L/
      失礼しました。
      /kだと最初のコマンドプロンプトが残ってしまいますね?
      batファイルのフォーカスはexitで消せますが、どうすればよいか解りません。
      chatGPTもなかなか良い答えを返してくれません。
      
      Sub OpenCommandPromptMaximized()
          Dim command As String
          command = "cmd /k start /max your_batch_file.bat"
          Shell command, vbMaximizedFocus
      End Sub
      


      この記事にはVBAのコードが含まれています。

      緑の太文字→注釈
      茶色の太文字→条件分岐
      赤の太文字→ループ
      青の太文字→その他




    [196138] Re[4]: Shellでbat実行時のコマンドプロンプト画面最大化-

    記事引用/メール受信=OFF■

    □投稿者/ kazuo -(2024/04/10(08:51))
    □U R L/
      再度スレ汚し失礼します。
      原始的方法?ですが、最大化キーを操作してみました。
      
      Private Declare PtrSafe Sub keybd_event Lib "user32" (ByVal bVk As Byte, ByVal bScan As Byte, _
          ByVal dwFlags As Long, ByVal dwExtraInfo As Long)
      
      Sub test最大化()
          Dim command As String
          Dim task As Object
          Dim WD As Object
          Dim i As Long
          Set WD = CreateObject("Word.Application")
          command = "cmd /c your_batch_file.bat"
          Shell command, vbNormalFocus
          Do
              Application.Wait [now()+"0:0:0.3"]
              For Each task In WD.Tasks
                  If Right(task.Name, 8) = "\cmd.exe" Then Exit Do
              Next
              i = i + 1
              If 10 <= i Then Exit Do
          Loop
          DoEvents:    DoEvents
          If i < 10 Then
              keybd_event &H5B, 0, 0, 0       'Windowsキーを押す
              keybd_event &H26, 0, 0, 0       '↑キーを押す
              DoEvents
              keybd_event &H26, 0, 2, 0       '↑キーを離す
              keybd_event &H5B, 0, 2, 0       'Windowsキーを離す
          End If
          WD.Quit
          Set WD = Nothing
      End Sub
      


      この記事にはVBAのコードが含まれています。

      緑の太文字→注釈
      茶色の太文字→条件分岐
      赤の太文字→ループ
      青の太文字→その他




    [196139] Re[5]: Shellでbat実行時のコマンドプロンプト画面最大化-

    記事引用/メール受信=OFF■

    □投稿者/ kazuo -(2024/04/10(09:37))
    □U R L/
      task最大化のコマンドありました。
      
          If i < 10 Then
              task.WindowState = 1
          End If
      


      この記事にはVBAのコードが含まれています。

      緑の太文字→注釈
      茶色の太文字→条件分岐
      赤の太文字→ループ
      青の太文字→その他




    [196153] Re[6]: Shellでbat実行時のコマンドプロンプト画面最大化-

    解決!!ありがとうございました! / 記事引用/メール受信=OFF■

    □投稿者/ こまたん -(2024/04/12(19:07))
    □U R L/

      最大化するにすることができました。
      ありがとうございました!

      またありましたら、よろしくお願いします。




    [196154] Re[7]: Shellでbat実行時のコマンドプロンプト画面最大化-

    記事引用/メール受信=OFF■

    □投稿者/ kazuo -(2024/04/12(21:26))
    □U R L/
      >最大化するにすることができました。
      
      もし、task.WindowState = 1 でのことなら
      taskは非同期ですので検索されたときは存在しても操作するときはなくなっている可能性があります。
          On Error Resume Next
          task.WindowState = vbMaximizedFocus
          On Error GoTo 0
      のほうが合理的かもしれません。
      


      この記事にはVBAのコードが含まれています。

      緑の太文字→注釈
      茶色の太文字→条件分岐
      赤の太文字→ループ
      青の太文字→その他



このトピック内容の全ページ数 / [0]

このトピックに書きこむ
Name/
E-Mail/

└>このツリーのレス記事をメールで受信しますか? YES/ NO/
Title/
URL/
Comment/ 通常モード->  図表モード-> (←の場合適当に改行を入れて下さい)
タグが使用できます。例 ⇒ <font color="blue">文字</font>
解決!!ありがとうございました! 解決       保留中です・・・ 保留        迷宮入りorほかあたって見ます・・ 迷宮入       すいませ〜ん。誰か〜! Help! ←※回答者専用
解決したらチェック       保留(コードテスト中など・・)         解決不可orレスが全く付かなくてほかのサイトに行くときなど・・
削除キー/
(半角8文字以内) 


- Child Forum -
Edit:ゆう-G