从命令提示符启动时更改应用程序的标题
Changing title of an application when launching from command prompt
我是一个应用程序的业务用户,该应用程序具有两个独立的环境:测试环境和生产环境。重要的是我始终知道我正在使用哪个环境,但应用程序没有给出任何指示。 Window 标题、布局和所有功能都相同,程序中没有识别环境的功能,所以我有责任记住我当前使用的是哪个 .exe。
我想我可以修改快捷方式或使用命令提示符打开 window 这样标题就可以清楚地显示 "TEST" 或 "PRODUCTION".
我尝试了以下操作,但是,当它按预期启动应用程序时,window 标题没有变化。 (我怀疑这只在启动命令提示符时有效)
start "different title" fake.exe
有没有办法做到这一点?任何想法将不胜感激。
您需要编写一个程序来执行此操作。
您需要调用 Windows' API。这是一个标题栏更改程序的制作方法。
使用记事本创建一个文件并将其命名为 SetText.bas。将其存储在您的桌面上。
将其粘贴到其中。
Imports System
Imports System.Runtime.InteropServices
Imports Microsoft.Win32
Public Module MyApplication
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Declare Function SetWindowText Lib "user32" Alias "SetWindowTextA" (ByVal hwnd As Long, ByVal lpString As String) As Long
Sub Main()
On Error Resume Next
Dim CmdLine As String
Dim Ret as Long
Dim A() as String
Dim hwindows as long
CmdLine = Command()
If Left(CmdLine, 2) = "/?" Then
MsgBox("Usage:" & vbCrLf & vbCrLf & "ChangeTitleBar Oldname NewName")
Else
A = Split(CmdLine, Chr(34), -1, vbBinaryCompare)
hwindows = FindWindow(vbNullString, A(1))
Ret = SetWindowText(hwindows, A(3))
End If
End Sub
End Module
然后在命令提示符中输入 window。
"C:\Windows\Microsoft.NET\Framework\v4.0.30319\vbc.exe" /target:winexe /out:"%userprofile%\desktop\SetText.exe" "%userprofile%\desktop\settext.bas" /verbose
已在您的桌面上创建了一个名为 settext.exe 的程序。使用
"%userprofile%\desktop\settext" "Untitled - Notepad" "A Renamed Notepad"
我是一个应用程序的业务用户,该应用程序具有两个独立的环境:测试环境和生产环境。重要的是我始终知道我正在使用哪个环境,但应用程序没有给出任何指示。 Window 标题、布局和所有功能都相同,程序中没有识别环境的功能,所以我有责任记住我当前使用的是哪个 .exe。
我想我可以修改快捷方式或使用命令提示符打开 window 这样标题就可以清楚地显示 "TEST" 或 "PRODUCTION".
我尝试了以下操作,但是,当它按预期启动应用程序时,window 标题没有变化。 (我怀疑这只在启动命令提示符时有效)
start "different title" fake.exe
有没有办法做到这一点?任何想法将不胜感激。
您需要编写一个程序来执行此操作。
您需要调用 Windows' API。这是一个标题栏更改程序的制作方法。
使用记事本创建一个文件并将其命名为 SetText.bas。将其存储在您的桌面上。
将其粘贴到其中。
Imports System
Imports System.Runtime.InteropServices
Imports Microsoft.Win32
Public Module MyApplication
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Declare Function SetWindowText Lib "user32" Alias "SetWindowTextA" (ByVal hwnd As Long, ByVal lpString As String) As Long
Sub Main()
On Error Resume Next
Dim CmdLine As String
Dim Ret as Long
Dim A() as String
Dim hwindows as long
CmdLine = Command()
If Left(CmdLine, 2) = "/?" Then
MsgBox("Usage:" & vbCrLf & vbCrLf & "ChangeTitleBar Oldname NewName")
Else
A = Split(CmdLine, Chr(34), -1, vbBinaryCompare)
hwindows = FindWindow(vbNullString, A(1))
Ret = SetWindowText(hwindows, A(3))
End If
End Sub
End Module
然后在命令提示符中输入 window。
"C:\Windows\Microsoft.NET\Framework\v4.0.30319\vbc.exe" /target:winexe /out:"%userprofile%\desktop\SetText.exe" "%userprofile%\desktop\settext.bas" /verbose
已在您的桌面上创建了一个名为 settext.exe 的程序。使用
"%userprofile%\desktop\settext" "Untitled - Notepad" "A Renamed Notepad"