Văn bản trên màn hình luôn ở trên đầu và được tải từ tệp theo định kỳ


1

Tôi muốn có văn bản tùy chỉnh được in trên màn hình của tôi luôn ở trên đầu. Tôi đã thử phần mềm Rainmeter và tôi không thể tìm thấy tùy chọn tải văn bản từ tệp trên hệ thống của mình hoặc bằng bất kỳ cách nào khác.

Những gì tôi muốn có là phần mềm in trên tất cả các cửa sổ và quét tệp mỗi giây để in các thay đổi mới nhất.

PS ý tưởng sẽ có bản ghi lỗi trang web PHP trực tiếp của tôi được in trên màn hình của tôi mỗi giây hoặc khi các mục mới xuất hiện.


Hệ điều hành nào? Windows XP / Vista / 7?
iglvzx

Không quan trọng tôi đã cài đặt cả XP và 7 và có thể cài đặt bất kỳ khi nào cần thiết.
Petja

Câu trả lời:


0

Tôi đã quản lý để làm cho nó hoạt động, nhưng bạn có thể phải chơi với độ trong suốt / kích thước phông chữ / màu nền để có được nó để dễ đọc.

Bạn sẽ cần cài đặt AutoHotKey và chạy tập lệnh này: https://www.dropbox.com/s/x510z8tsxunardl/OSDTest.ahk

Có một số ý kiến ​​trong mã, nhưng ngắn gọn nó sẽ: đọc 5 dòng từ cuối tệp nhật ký được chỉ định; tạo một cửa sổ và thêm nó dưới dạng văn bản trên cửa sổ; làm cho cửa sổ trong suốt, luôn ở trên cùng và "không thể nhìn thấy"; và cập nhật văn bản cứ sau 1 giây (có thể cần tăng phần này, nhưng tôi không thấy một hiệu suất lớn - ngay cả với tệp nhật ký 20mb).

Để thoát tập lệnh, nhấp chuột phải vào biểu tượng AutoHotKey trong khay hệ thống của bạn và chọn Thoát.

Nếu các liên kết của tôi bị hỏng, mã AHK sẽ theo sau:

#SingleInstance force
; Example: On-screen display (OSD) via transparent window:
FileName := "C:\xampplite\apache\logs\access.log"
NumLines = 5
CustomColor = FF8080 ; The transparent background color of the window, set this to something close to your text colour to avoid white highlighting

Gui +LastFound +AlwaysOnTop -Caption +ToolWindow +E0x20  ; +ToolWindow avoids a taskbar button and an alt-tab menu item.
Gui, Color, %CustomColor%
Gui, Font, s12  ; Set a large font size (12-point).
errorTail := FileTail(FileName , NumLines) ; get the text from the file, last 5 lines
Gui, Add, Text, vMyText cRed Y+0, %errorTail%  ; add it, colour is Red, R5 sets 5 rows

; choose one of these lines, first one show just the text, second one has a background for readability
WinSet, TransColor, %CustomColor% 200 ; Make all pixels of this color transparent and make the text itself translucent (250)
;Winset, Transparent, 150

SetTimer, UpdateOSD, 1000 ; 1 second timer set here
Gui, Show, x0 y600 NoActivate  ; Set the x and y position. NoActivate avoids deactivating the currently active window.
return

UpdateOSD: ; the repeated timer routine
errorTail := FileTail(FileName, NumLines) ;get 5 lines
GuiControl,, MyText, %errorTail%
return

; ======================================================================================================================
; Function:    Retrieve the last lines of a text file.
; AHK version:  1.1.07+
; Parameters:
;    FileName -  the name of the file, assumed to be in A_WorkingDir if an absolute path isn't specified
;    Lines  -  number of lines to read - default: 10 (like Unix)
;    NewLine  -  new line character(s)   - default: `r`n (Windows)
; Return values:
;    On success: The required lines, if present
;    On failure: ""
; Version:      1.0.00.00/2012-04-16/just me
; ======================================================================================================================
FileTail(FileName, Lines = 10, NewLine = "`r`n") {
   Static MaxLineLength := 256 ; seems to be reasonable to start with
   If !IsObject(File := FileOpen(FileName, "r"))
      Return ""
   Content := ""
   LinesLength := MaxLineLength * Lines * (InStr(File.Encoding, "UTF-16") ? 2 : 1)
   FileLength := File.Length
   BytesToRead := 0
   FoundLines := 0
   While (BytesToRead < FileLength) && !(FoundLines) {
      BytesToRead += LinesLength
      If (BytesToRead < FileLength)
         File.Pos := FileLength - BytesToRead
      Else
         File.Pos := 0
      Content := RTrim(File.Read(), "`r`n")
      If (FoundLines := InStr(Content, NewLine, 0, 0, Lines))
         Content := SubStr(Content, FoundLines + StrLen(NewLine))
   }
   File.Close()
   Return Content
}
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.