如何从Windows命令行运行没有标题栏的exe文件?

fae0ux8s  于 2023-08-07  发布在  Windows
关注(0)|答案(2)|浏览(141)

我有一个外部的.exe文件,我需要在我的电脑上运行演示。我从命令行(从CMD)运行.exe文件,当我运行.exe文件时,它在winforms窗口中打开,标题栏作为常规窗口。
我需要能够运行该.exe文件,但有以下限制:
1.完全隐藏标题栏,这样窗口就不会有任何边框。
1.以分屏模式打开窗口,这样它就会占据屏幕的右侧,以便我可以在左侧打开第二个窗口。
我想过尝试用我自己的winform来 Package 它,并从那里运行它,但我的猜测是,在运行.exe文件时,可能会有一些参数可以传递到命令行。
有没有啊?

oalqel3c

oalqel3c1#

Win32 API SetWindowLonghttps://msdn.microsoft.com/en-us/library/windows/desktop/ms633591(v=vs.85).aspx)支持更改窗口样式。
命令提示符只允许通过传递--title标志来更改正在运行的应用程序的标题。
但是,您可以尝试使用可以访问Win32 API的PowerShell脚本。检查这个例子作为起点。https://gist.github.com/grenade/ed8dd77ae8eeb5b4a3c1cfd66e9c8ae7

zvms9eto

zvms9eto2#

类似的问题定位here
Mikuzweakish的答案中得到启发,我建议您使用autohotkey,并使用以下配置。

#SingleInstance force
#IfWinNotActive ahk_exe explorer.exe
w_wasted = 2 ;6 ; width used by resize bars
h_wasted = 29 ;29 ; width used by caption frame and resize bars
LWIN & f::
  SetTitleMatchMode, 2
  WinGet Style, Style, A

  ; 0xC40000 = WS_BORDER (0x800000) + WS_DLGFRAME (0x400000) + WS_SIZEBOX aka WS_THICKFRAME (0x040000)
  if(Style & 0xC00000) { ; if has WS_CAPTION. Ignore sizebox value.
    WinGetPos, X, Y, Width, Height, A
    WinSet, Style, -0xC40000, A ; removes attributes, including sizebox...doesn't do a strict subtraction
    t_wid := Width+w_wasted
    t_hei := Height+h_wasted
    WinMove,A,,X,Y,t_wid,t_hei
  } else {
    WinSet, Style, +0xC40000, A
    ; Note: will set WS_SIZEBOX even if not previously present
    if(Width > w - w_wasted) { 
      Width := %w%-%w_wasted%
    }
    if(Height > h - h_wasted) {
      Height := %h%-%h_wasted%
    }
    WinMove,A,,%X%,%Y%,%Width%,%Height%
  }
  WinSet Redraw
  Return

字符串
根据您的限制,按下Win+left/right,你喜欢平铺当前窗口,然后按下Win+F在配置中定义隐藏标题栏。如果要显示隐藏的标题栏,请在窗口处于活动状态时再次按Win+F

注意:此简单配置仅适用于一个窗口。

相关问题