Hộp thông báo hiển thị từ Trình lập lịch tác vụ trên đầu trang của tất cả các cửa sổ khác


13

Có cách nào hay để hộp thông báo bật lên vào thời gian đã lên lịch trên đầu các cửa sổ khác không? Hành động "Hiển thị tin nhắn" mặc định vô dụng xuất hiện bên dưới mọi thứ khác.

Câu trả lời:


13

Làm thế nào về việc sử dụng msglệnh tích hợp của Window như vậy?

msg * "Message you would like to send"

Bạn có thể thêm các tham số khác, chẳng hạn như /TIME:xx là số giây bạn muốn thông báo hiển thị. Tất nhiên, msg /?sẽ cho bạn thấy tất cả các tùy chọn có sẵn.

Điều này ngụ ý Windows XP và cao hơn là hệ thống mà bạn muốn hiển thị thông báo. Nếu bạn có Phiên bản gia đình của HĐH hiện hành, bạn sẽ không gặp may. Xem http://ss64.com/nt/msg.html để biết các thông số khả dụng.

Nếu bạn có Phiên bản gia đình, tập lệnh bó sau sẽ bật lên một thông báo bằng phương pháp PopUp của 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

Hi vọng điêu nay co ich!

Đã thêm: Gregg đề cập trong các nhận xét rằng để tính năng này hoạt động trong Windows 10, bạn phải sử dụng "/ time: 0" nếu bạn muốn tin nhắn ở trên màn hình lâu hơn 60 giây.


Bạn đang nói về cái gì vậy? Là msggì Tôi không nhận được gì nếu tôi cố chạy nó từ hộp Run hoặc từ dấu nhắc lệnh.
Rêu

Bạn đã không xác định trong câu hỏi của bạn phiên bản Windows nào bạn có. Nếu bạn có phiên bản Home, bạn sẽ không gặp may. ss64.com/nt/msg.html
JSanchez

2
Thông điệp FYI tự động đóng sau 60 giây trừ khi bạn chỉ định /TIME:0. Đây là trên Win10 x64 v1607 Enterprise LTSB. Tôi đã tự hỏi tại sao kịch bản của tôi kiểm tra tốt, nhưng tôi không bao giờ nhận được tin nhắn khi tôi đặt trong Trình lập lịch tác vụ. Ổ cắm đáng xấu hổ: serverfault.com/a/931932/131761
gregg

6

Ngoài ra, hãy xem https://www.howtogeek.com/136894/how-to-create-popup-reminder-with-no-additable-software/ . Trong trường hợp liên kết chết, tôi sẽ tóm tắt ở đây:

  1. Mở Trình lập lịch tác vụ của Windows (tìm kiếm 'Trình lập lịch tác vụ' trong menu Bắt đầu)
  2. Trong phần Hành động, nhấp vào 'Tạo tác vụ'
  3. Trong tab Chung, đảm bảo 'Chỉ chạy khi người dùng đăng nhập' được chọn và 'Ẩn' không được chọn
  4. Trong tab Kích hoạt, nhấp vào 'Mới' để đặt thời gian cho thông báo kích hoạt
  5. Trong tab Hành động, nhấp vào 'Mới' và đảm bảo hành động đã chọn ở trên cùng là 'Bắt ​​đầu chương trình'
  6. Trong 'Chương trình / tập lệnh', nhập CMD
  7. Trong 'Thêm đối số', sao chép và dán này:

    / C TITLE [Tiêu đề của bạn ở đây] & ECHO. & ECHO. & ECHO [Tin nhắn của bạn ở đây] & ECHO. & ECHO. & TIMEOUT [hết thời gian]

  8. Thay thế [Tiêu đề của bạn tại đây] và [Tin nhắn của bạn tại đây] bằng văn bản ưa thích của bạn (không bao gồm dấu ngoặc)
  9. Thay thế [thời gian chờ] bằng số giây bạn muốn tin nhắn chờ trước khi hết thời gian hoặc -1 nếu bạn không muốn nó hết thời gian (bằng cách nào đó, nhấn phím trong khi cửa sổ điều khiển nằm trong tiêu điểm sẽ đóng nó)
  10. Nhấp vào 'OK'!

Điều này sẽ tạo ra một cửa sổ giao diện điều khiển với văn bản đã cho, nó sẽ xuất hiện TRÊN TOP của cửa sổ hiện tại của bạn, nhưng sẽ không tự động lấy cắp tiêu điểm (bạn có thể tiếp tục tương tác với cửa sổ hiện tại của mình như bình thường).

Đây là giải pháp tốt nhất tôi tìm thấy, hy vọng nó sẽ giúp được ai đó!


Đây sẽ là câu trả lời được chấp nhận rất lắt léo, cảm ơn bạn!
spartikus

1

Sử dụng msgboxtrong vbs. như thế này:

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"

&h51000sẽ đảm bảo hộp thư ở trung tâm và trên tất cả các cửa sổ khác mọi lúc.

Nếu bạn chỉ muốn lên lịch cho hộp thông báo, bạn chỉ cần sử dụng bộ lập lịch tác vụ, có một chức năng tích hợp để lên lịch cho một tin nhắn. xem vị trí của [bắt đầu một chương trình] trong trình lập lịch tác vụ.


1

Display a Messagekhông được dùng nữa và msglệnh không hoạt động với tôi trong Windows 10 1703. Tôi đang sử dụng powershellđể hiển thị hộp thông báo từ tác vụ theo lịch trình, sử dụng lệnh này làm đối số khi xác định hành động:

-WindowStyle hidden -Command "& {[System.Reflection.Assembly]::LoadWithPartialName('System.Windows.Forms'); [System.Windows.Forms.MessageBox]::Show('<message body here>','<window title here>')}"

Đó là AF xấu xí, nhưng nó hoạt động.


Bạn có thể muốn nói những gì xảy ra khi bạn sử dụng giải pháp của bạn. Lỗi có thể hữu ích cho người dùng khác.
Stese

Tôi không nhận được những gì còn thiếu từ phản ứng của tôi. Khi tôi sử dụng powershellgiải pháp, một hộp thông báo xuất hiện. Khi sử dụng msggiải pháp không có gì xảy ra, như tôi nêu trong nhận xét của mình.
isalgueiro

Tôi đã thử tương tự powershell -WindowStyle hidden -File "<path to script>" nhưng nó không hoạt động, nó chỉ hoạt động với -Commandđối số, vì vậy: powershell -WindowStyle hidden -Command "& '<path to script>'"
Mattia72
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.