มีวิธีดีในการรับกล่องข้อความให้ปรากฏขึ้นตามเวลาที่กำหนดไว้ด้านบนของหน้าต่างอื่น ๆ ? การดำเนินการ "แสดงข้อความ" เริ่มต้นจะปรากฏใต้ส่วนอื่นอย่างไม่มีประโยชน์
มีวิธีดีในการรับกล่องข้อความให้ปรากฏขึ้นตามเวลาที่กำหนดไว้ด้านบนของหน้าต่างอื่น ๆ ? การดำเนินการ "แสดงข้อความ" เริ่มต้นจะปรากฏใต้ส่วนอื่นอย่างไม่มีประโยชน์
คำตอบ:
การใช้msg
คำสั่งในตัวของ Window เป็นอย่างไร
msg * "Message you would like to send"
คุณสามารถเพิ่มพารามิเตอร์อื่น ๆ เช่นโดย/TIME:x
ที่ x คือจำนวนวินาทีที่คุณต้องการให้ข้อความแสดง แน่นอนmsg /?
จะแสดงตัวเลือกทั้งหมดให้คุณ
สิ่งนี้แสดงถึง Windows XP และสูงกว่าเป็นระบบที่คุณต้องการแสดงข้อความ หากคุณมี Home Edition ของระบบปฏิบัติการที่ใช้งานอยู่แสดงว่าคุณไม่มีโชค ดูที่http://ss64.com/nt/msg.htmlสำหรับพารามิเตอร์ที่มี
หากคุณมี Home Edition สคริปต์ชุดต่อไปนี้จะป๊อปอัพข้อความโดยใช้วิธีการ PopUp ของ VBSCript:
@echo off
::See http://msdn.microsoft.com/en-us/library/x83z1d9f(v=vs.84).aspx
::for an explanation of the PopUp method
::
::Use the directory from whence script was called as working directory
set CWD=%~dp0
::Use a random file name for the temporary VBScript.
set usrmsg=%CWD%%random%.vbs
::First parameter is the timeout in seconds. 0 = wait forever
set _timeout=%~1
::Second parameter is the message, enclosed in quotes.
set _Message=%~2
::Third parameter is the title of the window, enclosed in quotes.
set _Title=%~3
::This last variable is used to display a button/icon on the window.
::Setting this to 4096 sets the window to Modal (on top of everything else)
set _nType=4160
::Create the temp script using the provided information.
ECHO Set wshShell = CreateObject( "WScript.Shell" )>%usrmsg%
ECHO wshShell.Popup "%_Message%" ^& vbCrLf, %_Timeout%, "%_Title%", %_nType%>>%usrmsg%
::Run the script.
WSCRIPT.EXE %usrmsg%
::Delete the script.
DEL %usrmsg%
::Exit the batch file
exit /b
หวังว่านี่จะช่วยได้!
เพิ่ม: Gregg กล่าวถึงความคิดเห็นที่ว่าเพื่อให้สิ่งนี้ทำงานได้ใน Windows 10 คุณต้องใช้ "/ เวลา: 0" หากคุณต้องการให้ข้อความอยู่บนหน้าจอนานกว่า 60 วินาที
/TIME:0
เว้นแต่คุณจะระบุ นี่คือใน Win10 x64 v1607 Enterprise LTSB ฉันสงสัยว่าทำไมสคริปต์ของฉันถึงทดสอบได้ดี แต่ฉันไม่เคยได้รับข้อความใด ๆ เมื่อฉันใส่ใน Task Scheduler ปลั๊กอัปเดต: serverfault.com/a/931932/131761
ยังเห็นhttps://www.howtogeek.com/136894/how-to-create-popup-reminders-with-no-additional-software/ ในกรณีที่ลิงก์ตายฉันจะสรุปที่นี่:
/ C TITLE [ชื่อของคุณที่นี่] & ECHO. & ECHO. & ECHO [ข้อความของคุณที่นี่] & ECHO. & ECHO. & TIMEOUT [หมดเวลา]
สิ่งนี้จะสร้างหน้าต่างคอนโซลพร้อมข้อความที่กำหนดซึ่งจะปรากฏที่ด้านบนของหน้าต่างปัจจุบันของคุณ แต่จะไม่ขโมยโฟกัสโดยอัตโนมัติ (คุณสามารถโต้ตอบกับหน้าต่างปัจจุบันของคุณได้ตามปกติ)
นี่เป็นทางออกที่ดีที่สุดที่ฉันพบหวังว่ามันจะช่วยใครซักคน!
ใช้msgbox
ใน vbs แบบนี้:
Set filesys = CreateObject("Scripting.FileSystemObject")
Set shell = CreateObject("Shell.Application")
Set wshShell = WScript.CreateObject( "WScript.Shell" )
PCName = wshShell.ExpandEnvironmentStrings( "%COMPUTERNAME%" )
msgbox "Dear user on " & PCName & vbcrlf & " " & vbcrlf & "This is a message box on top of all other windows.", &h51000, "I am msgbox"
shell.Open "C:\Users"
รหัส&h51000
จะทำให้แน่ใจว่า msgbox อยู่ตรงกลางและอยู่ด้านบนของหน้าต่างอื่น ๆ ตลอดเวลา
หากคุณต้องการกำหนดเวลา msgbox เท่านั้นคุณสามารถใช้ตัวกำหนดเวลางานได้มีฟังก์ชันในตัวเพื่อกำหนดเวลาข้อความ ดูตำแหน่งของ [เริ่มโปรแกรม] ในตัวกำหนดตารางเวลางาน
Display a Message
เลิกใช้แล้วและmsg
คำสั่งไม่ทำงานสำหรับฉันใน Windows 10 1703 ฉันกำลังใช้powershell
เพื่อแสดงกล่องข้อความจากงานที่กำหนดให้ใช้สิ่งนี้เป็นข้อโต้แย้งเมื่อกำหนดการกระทำ:
-WindowStyle hidden -Command "& {[System.Reflection.Assembly]::LoadWithPartialName('System.Windows.Forms'); [System.Windows.Forms.MessageBox]::Show('<message body here>','<window title here>')}"
AF น่าเกลียด แต่ใช้ได้ดี
powershell
วิธีแก้ไขกล่องข้อความจะปรากฏขึ้น เมื่อใช้msg
วิธีการแก้ปัญหาไม่มีอะไรเกิดขึ้นตามที่ฉันระบุในความคิดเห็นของฉัน
powershell -WindowStyle hidden -File "<path to script>"
แต่มันใช้งานไม่ได้มันใช้ได้กับการ-Command
โต้แย้งเท่านั้นดังนั้น: powershell -WindowStyle hidden -Command "& '<path to script>'"
msg
อะไร ฉันไม่ได้อะไรเลยถ้าฉันพยายามเรียกใช้จากกล่อง Run หรือจากพรอมต์คำสั่ง