Chương trình tạo tiện ích cho windows 7. Tạo tiện ích của riêng bạn

Hướng dẫn dưới đây dựa trên phiên bản xem trước hệ điều hành mới của tập đoàn Microsoft - Windows Vista. Điều này có nghĩa là một số tính năng của việc tạo tiện ích có thể thay đổi hoặc không được đưa vào sản phẩm cuối cùng vì lý do tiếp thị, kỹ thuật hoặc các lý do khác. Chúng tôi sẽ cố gắng hết sức để cập nhật bài viết này nếu những thay đổi đó xảy ra.

Tom lược tới các tiện ích của Microsoft
Windows Vista chứa nhiều thành phần mới và một trong những thành phần cần thiết nhất và được mong đợi nhất chắc chắn là Windows Sidebar. Thanh bên - một khu vực của màn hình được dành riêng cho các tiện ích giống như bảng điều khiển đã được tạo trước đó khởi động nhanh- đặc biệt đối với các phím tắt quan trọng. Tiện ích là các chương trình nhỏ, chúng chiếm ít không gian và không thể làm gì thêm. ít hơn, những gì người sáng tạo nhận ra ở họ. Ví dụ: Windows Vista hiện bao gồm một số tiện ích: một máy tính nhỏ, một chương trình Trình đọc RSS ruy băng và một vài thứ khác. Bạn sẽ không mất nhiều thời gian để hiểu việc sử dụng các tiện ích tiện lợi như thế nào.

Nhưng hãy thành thật mà nói: thế giới có rất nhiều điều mà không phải ai cũng có thể làm được. Nhưng với sự ra đời của các tiện ích, tình hình đã thay đổi hoàn toàn. Đây là điều khiến các tiện ích thực sự thú vị đối với chúng tôi: các công nghệ mới được phát triển dành cho những người viết kịch bản. Đừng hiểu lầm chúng tôi: vâng, các tiện ích có thể có giao diện tiên tiến và thực hiện một số tác vụ rất phức tạp, nhưng hóa ra chúng vẫn chẳng khác gì các trang HTML thu nhỏ chứa mã nhỏ VBScript (bao gồm mã WMI) hoặc Java Script. Một chút nỗ lực và bạn sẽ tạo ra tiện ích đầu tiên của mình.

Học cách phát triển bằng bất kỳ ngôn ngữ lập trình nào không khó như người ta tưởng. Ví dụ: trong video này https://itvdn.com/ru/video/php_start bạn có thể dễ dàng nghiên cứu PHP cơ bản và sau đó viết mã đầu tiên của bạn.

Hãy bắt đầu tạo
Nhiều người đã chỉ trích Microsoft vì nhiều sản phẩm của tập đoàn dường như được thiết kế để sử dụng bởi robot hoặc cư dân trên hành tinh Omicron IV; trong mọi trường hợp chúng không được thiết kế để sử dụng cho con người. Bây giờ những biểu hiện như vậy không có chỗ, bởi vì Mọi người đều có thể tạo ra các tiện ích. Mặc dù vậy, nếu bạn đột nhiên trở thành robot hoặc cư dân của hành tinh Omicron IV, hãy yên tâm rằng bạn có thể dễ dàng tạo ra một tiện ích.

Để tạo một tiện ích, bạn chỉ cần hai thứ:

1) Tệp kê khai có tên Gadget.xml. Tệp này chứa tất cả các cài đặt cho thiết bị của bạn, bao gồm tên tiện ích, thông tin tác giả và bản quyền, thông tin về trang HTML, tạo nên mã thực tế cho tiện ích.
2) Tệp HTML (ví dụ: Test.htm). Các tiện ích thực sự không gì khác hơn là các tệp HTML. Bạn chỉ cần tạo một tệp HTML, thêm các thẻ và mã thích hợp và bạn sẽ thấy tiện ích.
Có, chúng tôi biết rằng bạn không hiểu ý chúng tôi khi nói "thuộc tính và mã liên quan". Thư giãn; đây là trọng tâm của phần còn lại của bài viết.
Đây là điều duy nhất cần thiết để tạo ra một tiện ích. Nhưng chúng ta cũng cần tập tin đồ họa, ví dụ icon.png. Đây sẽ là logo của tiện ích của bạn.

Từ lý thuyết đến thực hành
1. Đặt tất cả các tập tin vào thư mục tiện ích.
Chú ý: đặt tất cả các tệp vào thư mục và bạn sẽ nhận được một tiện ích. Không cần biên dịch, không cần trình biên dịch .95, không có gì tẻ nhạt hay kỹ thuật hơn. Chỉ cần sao chép tập tin vào thư mục được chỉ định.
Đề phòng trường hợp bạn đột nhiên muốn gửi cho chúng tôi 0,95, chúng tôi sẽ rất vui :).

Thư mục đặc biệt cho các tiện ích
Đầu tiên chúng ta vào thư mục chứa các tiện ích được cài đặt sẵn của Microsoft.
Nhấn Windows + R và trong cửa sổ hiện ra, nhập:

%userprofile %\appdata\local\microsoft\windows sidebar\gadgets

Lưu ý: nếu bạn đang sử dụng Windows Sidebar, được chuyển sang Windows XP từ Windows Vista build 5342, được tải xuống từ trang web rồi nhập:

%tệp chương trình%\Thanh bên Windows\Tiện ích

Vẫn còn với chúng tôi? Tuyệt vời. Tiếp theo là buổi tập được chờ đợi từ lâu/
Trong thư mục này tạo thư mục mới. Đặt bất kỳ tên nào cho thư mục này nhưng hãy nhớ bao gồm .gadget ở cuối tên (ví dụ: Test.gadget). Rõ ràng, sẽ thuận tiện hơn cho bạn nếu tên của thư mục có một số điểm tương đồng với chức năng của tiện ích. Tuy nhiên, hệ điều hành chỉ sử dụng thư mục này để xác định các tệp chứa trong đó; tên tiện ích sẽ được lấy từ thông tin tìm thấy trong tệp Gadget.xml chứ không phải từ tên thư mục.

Tất cả những gì bạn phải làm bây giờ là tạo các tệp Gadget.xml và Test.htm trong thư mục. Điều này có nghĩa là bây giờ bạn đã có một tiện ích của Microsoft.

tệp tiện ích.xml
Tập tin này được viết bằng ngôn ngữ XML, bạn có thể đoán ngay điều này nhờ phần mở rộng .xml. Trên thực tế, Gadget.xml là một tệp kê khai đặc biệt nhưng đồng thời cũng đơn giản. tập tin văn bản, chứa cấu hình tiện ích.
Đây là mã Gadget.xml mà chúng tôi đang đề cập đến (hãy sử dụng mã này trước):


Tiện ích đầu tiên của tôi
Những người viết kịch bản của Microsoft
Tập đoàn Microsoft 2006
Tiện ích mẫu trả về tên của hệ điều hành đã cài đặt.

icon.png



html
đầy
test.htm


Trước khi bạn hỏi tôi, bạn có thể sao chép tập tin này và sử dụng nó trong đến một mức độ lớn như vậy - vâng, chỉ bằng cách làm sự thay đổi cần thiết trong một số thẻ. (Và đừng quên, bạn phải đặt tên cho tệp Gadget.xml.)
Đây là các thẻ:


Tên của tiện ích xuất hiện trong hộp thoại Thêm tiện ích.


Tên hoặc biệt danh của người đã viết tiện ích. Bạn sẽ thấy tác giả, bản quyền và mô tả của tiện ích trong cửa sổ thêm tiện ích


Mô tả ngắn gọn về tiện ích (nó làm gì, v.v.).


Tên của tệp hình ảnh (logo tiện ích). Để biết thêm thông tin, hãy xem Tạo Logo trong phần phụ tiếp theo của tài liệu này.


Có lẽ không phải là tên thẻ trực quan nhất trên thế giới, nhưng đó là tên của tệp HTML tạo nên tiện ích của bạn.


Vâng, không có bình luận ở đây. Trang web của nhà phát triển tiện ích.

Đối với những người chưa hiểu đầy đủ về mã Gadget.xml, đây là bản dịch tiếng Nga hoàn chỉnh của tệp này (khi tạo tiện ích, chỉ sử dụng tệp Gadget.xml trên tiếng anh):



Tiện ích đầu tiên của tôi
Những anh chàng Microsoft
Tập đoàn Microsoft 2006
Ví dụ về tệp Gadget.xml trả về tên của hệ điều hành đã cài đặt.

icon.png



html
đầy
test.htm
www.microsoft.com/technet/scriptcenter

t;

html
đầy
test.htm
www.microsoft.com/technet/scriptcenter

Tạo biểu tượng
Tất nhiên, bạn quyết định logo tiện ích sẽ là gì, nhưng nếu bạn không muốn tạo hình ảnh (trong tệp Gadget.xml, đừng điền thẻ) và Windows Sidebar sẽ cung cấp cho bạn một hình ảnh mặc định. Hoàn toàn miễn phí.

Nếu bạn quyết định tạo một biểu tượng, hãy nhớ rằng "biểu tượng" chỉ là một cái tên, được đưa vào tập tin với hình ảnh; những điều này không đúng hình ảnh cửa sổ và đồ họa phải được tạo bằng cách sử dụng một công cụ đặc biệt phần mềm(người dịch chân thành và có ý tốt nhất khuyên bạn nên sử dụng ứng dụng tuyệt vời MSPAINT.EXE, được đưa vào Windows từ năm 1994 để tạo logo). Logo chỉ là một tệp hình ảnh ở định dạng GIF, JPG hoặc PNG. Tất cả logo của các tiện ích Microsoft có trong Sidebar đều được tạo bằng định dạng PNG; điều này có thể là do đồ họa PNG cho phép độ trong suốt, mang lại cho bạn khả năng thực hiện những hình ảnh đẹp. (Tất nhiên là bạn sẽ có tài năng cần thiết.) Tuy nhiên, bạn có thể sử dụng tập tin JPG. Chúng có kích thước nhỏ hơn đáng kể so với PNG, nhưng hãy tự quyết định vì... tất cả phụ thuộc vào tình hình cụ thể.
Câu hỏi hay: logo của bạn nên có kích thước như thế nào? Kích thước tối ưu- 64x64 pixel. Các tệp lớn hơn như 128x128 sẽ bị Thanh bên giảm kích thước xuống 64x64 và có thể giảm chất lượng.

Ví dụ: đây là biểu tượng chúng tôi đã sử dụng:

Đánh dấu. Bạn có thể nhận thấy rằng, trong tệp Gadget.xml, thẻ được lồng trong thẻ:


icon.png

Điều này có nghĩa là bạn có thể thêm hình ảnh bổ sung vào tệp Gadget.xml, mặc dù thành thật mà nói, chúng tôi không chắc chắn bạn sẽ sử dụng các hình ảnh bổ sung khác để làm gì.

tập tin HTML
Tệp HTML tạo nên bản thân tiện ích này thực sự không khác gì bất kỳ trang web nào sử dụng HTML động; để tạo HTML chỉ cần sử dụng bất kỳ dấu HTML hợp lệ nào (bao gồm Kiểu CSS) cộng với mã tập lệnh. Chúng tôi sẽ cho bạn thấy một trang HTML mẫu. Trước khi làm điều đó, chúng ta hãy xem nhanh mã WMI.

Làm việc với WMI
nếu bạn Quản trị hệ thống, thì bạn đã quen với việc viết các tập lệnh sử dụng WMI. Điều này cũng dễ hiểu thôi, WMI là công nghệ giúp bạn quản lý mọi thứ từ máy in, ổ đĩa cho đến chuột và màn hình. Sử dụng WMI rất tiện lợi. Ví dụ: giả sử bạn muốn biết tên hệ điều hành được cài đặt trên máy tính cục bộ của mình. Không có gì; Đây là mã WMI sẽ trả về thông tin này cho bạn:

StrComputer = "."

Đặt objWMIService = GetObject("winmgmts:\" & strComputer & "\root\cimv2")

Đối với mỗi objItem trong colItems
Hộp thư objItem.Caption
Kế tiếp

Nếu bạn đang có ý định tạo các tiện ích để quản trị hệ thống thì chúng tôi có tin xấu cho bạn: các tập lệnh WMI mà bạn quen viết sẽ không hoạt động trong các tiện ích. (Đợi đã, đừng làm gì quyết liệt, chúng tôi sẽ cố gắng khắc phục vấn đề này, chúng tôi hứa.) Bởi vì, về cơ bản, một tiện ích không gì khác hơn là một trang Web và vì lý do bảo mật, các trang Web không thể sử dụng GetObject. Nếu bạn đặt mã trước đó vào tiện ích, bạn sẽ thấy thông báo lỗi này:

Thành phần ActiveX không thể tạo đối tượng: 'GetObject'

Ừm vâng.
Nhưng đừng hoảng sợ. Bạn vẫn có thể sử dụng mã WMI trong tiện ích; Bạn không thể sử dụng GetObject và winmgmts. Thay vào đó, bạn phải sử dụng CreateObject để tạo đối tượng WbemScripting.SWbemLocator, sau đó sử dụng phương thức ConnectServer để kết nối với dịch vụ WMI. Nói cách khác, đây là kết quả bạn nên viết:

StrComputer = "."

Đặt colItems = objWMIService.ExecQuery("Chọn * Từ Win32_OperatingSystem")

Đối với mỗi objItem trong colItems
Hộp thư objItem.Caption
Kế tiếp

Rõ ràng? Như chúng tôi đã nói, không có lý do gì để hoảng sợ. (Mặc dù, công bằng mà nói, có lẽ ban đầu bạn hoảng sợ là do lỗi của chúng tôi) / Sự khác biệt duy nhất là giữa tập lệnh sử dụng trực tiếp WMI và tập lệnh sử dụng ConnectServer để kết nối với dịch vụ WMI trong kết nối. Bạn đã quen với việc tạo kết nối chỉ sử dụng một dòng mã:

Đặt objWMIService = GetObject("winmgmts:\" & strComputer & "\root\cimv2")

Bây giờ bạn phải sử dụng hai dòng mã để tạo kết nối (vâng, tăng gấp đôi khối lượng công việc của bạn!) Bạn tạo một đối tượng WbemScripting.WbemLocator và sử dụng phương thức ConnectServer để liên hệ với dịch vụ WMI. Lưu ý rằng chúng tôi chuyển hai tham số cho ConnectServer - đây là tên của máy tính cần kết nối, được biểu thị bằng biến strComputer và vùng tên WMI mà chúng tôi muốn kết nối trong trường hợp này là root\cimv2):

Đặt objLocator = CreateObject("WbemScripting.SWbemLocator")
Đặt objWMIService = objLocator.ConnectServer(strComputer, "root\cimv2")

Bạn hiểu không? Khỏe. Bây giờ chúng ta hãy quay lại chủ đề đã lên kế hoạch của chúng ta.

Tạo một tệp HTML
Như chúng tôi đã lưu ý, tiện ích này chỉ là một tệp HTML. Điều này có nghĩa là bất kỳ phần tử nào, bao gồm cả phần tử động, bạn có thể sử dụng trong trang HTML cũng có thể được sử dụng trong tiện ích. Vì có thể bạn đã biết rằng tiện ích này cũng soạn mã VBScript; Mặc dù hầu hết các tiện ích ban đầu trên Trang web Tiện ích của Microsoft đều được tạo bằng JavaScript, nhưng việc làm việc với VBScript ngay từ đầu sẽ dễ dàng hơn so với Java Script.

Chúng tôi đã cho bạn xem mã WMI trả về tên của hệ điều hành được cài đặt trên máy tính; hãy xem liệu chúng ta có thể biến mã đó thành một tiện ích không. Chúng ta sẽ bắt đầu rất đơn giản, tạo một thiết bị chỉ bao gồm một nút bấm, khi nhấp vào nó, chúng ta sẽ thấy tên phòng mổ trong hộp thông báo. Đây là mã HTML cho tiện ích đầu tiên của chúng tôi:


Tiện ích đầu tiên của tôi


thân (chiều rộng: 120; chiều cao: 160)

Sub RunSub
strComputer = "."

Đặt objLocator = CreateObject("WbemScripting.SwbemLocator")
Đặt objWMIService = objLocator.ConnectServer(strComputer, "root\cimv2")

Đặt colItems = objWMIService.ExecQuery("Chọn * Từ Win32_OperatingSystem")

Đối với mỗi objItem trong colItems
Hộp thư objItem.Caption
Kế tiếp
Kết thúc phụ



Như bạn có thể thấy, mã này không có gì phức tạp cả; đó là HTML thô sơ không làm được gì nhiều ngoài việc hiển thị một nút duy nhất trên trang. Khi nhấn nút, chương trình con có tên RunSub sẽ được thực thi; Quy trình này sử dụng WMI để xác định tên của hệ điều hành được cài đặt trên máy tính.

Đánh dấu. Được rồi, có thể đây là HTML cơ bản đối với một số người, nhưng nếu bạn không liên quan gì đến HTML thì sao? Sau đó hãy đọc tài liệu HTML, tin tôi đi, học HTML rất dễ dàng. Đặc biệt chú ý đến các phần dành cho thẻ và .

Thẻ duy nhất chúng ta cần ghi chú đặc biệt là . Khi chúng ta bắt đầu tạo các tiện ích phức tạp hơn, chúng ta sẽ thảo luận chi tiết về thẻ; tuy nhiên, hiện tại, chúng tôi sẽ chỉ xác định rằng chúng tôi sử dụng thẻ này để tạo thành chiều cao và chiều rộng của tiện ích của mình:


thân (chiều rộng: 120; chiều cao: 160)

Thẻ này chỉ đơn giản nói rằng chúng tôi muốn tiện ích của mình rộng 120 pixel (bản thân Thanh bên Windows rộng khoảng 130 pixel) và cao 160 pixel. Đối với tiện ích cụ thể này, chiều dài 160 pixel sẽ là quá nhiều, vì vậy chúng ta chỉ cần chỉ định độ dài tùy chỉnh, chẳng hạn như 50 pixel:


cơ thể (chiều rộng: 120; chiều cao: 50)

Đồng ý, tiện ích này trông đẹp hơn nhiều.

Khi bạn bấm vào nút Run, một cửa sổ xuất hiện cho chúng ta biết phiên bản của hệ điều hành!

Hãy thư giãn hoặc khoe với bạn bè bằng cách kể cho họ nghe về thiết bị của bạn.

Hiển thị dữ liệu trong thẻ
Cho đến nay chúng ta đã tạo được một tiện ích đơn giản và ngoài ra, nó chỉ hoạt động khi chúng ta nhấp vào nút. Điều này không có gì sai và có thể sẽ có lúc tiện ích của bạn trả về quá nhiều thông tin đến mức nó chỉ vừa với hộp thông báo. Cửa sổ Internet Explorer hoặc một số vị trí khác. Mặt khác, sớm hay muộn bạn cũng sẽ tạo ra một tiện ích mà việc hiển thị thông tin trong cửa sổ tin nhắn trở nên vô nghĩa và việc nhấp vào nút sẽ không cần thiết. Ví dụ: giả sử bạn quyết định tạo đồng hồ cho Thanh bên Windows. Hãy tưởng tượng biết bây giờ là mấy giờ mỗi lần bạn nhấn nút, đồng thời thời gian đó sẽ hiện lên trong hộp thông báo. Chắc chắn hành tinh Omicron IV rất yêu thích những điều như vậy. Nhưng mọi người thấy nó hơi tẻ nhạt, chưa kể còn hết sức ngu ngốc.

Nói cách khác, chúng ta cần khả năng tạo ra các tiện ích có thể:
1) Hiển thị dữ liệu trực tiếp trong ranh giới của tiện ích.
2) Hiển thị dữ liệu tự động mà không yêu cầu người dùng tương tác với tiện ích.
3) Cập nhật thông tin định kỳ. Ví dụ: một tiện ích hiển thị miễn phí ĐẬP máy tính (chúng ta sẽ tạo một tiện ích như vậy sau) phải liên tục cập nhật thông tin.

Sẽ không dễ dàng để tìm ra nó ngay lập tức, vì vậy chúng ta sẽ học từng kỹ năng này một. Trước tiên chúng ta hãy xem điểm đầu tiên bằng cách sử dụng thẻ - đơn giản và cách dễ dàng hiển thị thông tin trực tiếp trong ranh giới của tiện ích.

Đây là phiên bản sửa đổi của tệp HTML của chúng tôi. Trong tiện ích mới này, bạn vẫn nhấp vào nút Run để gọi thủ tục RunSub, tuy nhiên, lúc này tên của hệ điều hành sẽ không xuất hiện trong hộp thông báo mà nằm trong ranh giới của tiện ích.


Tiện ích đầu tiên của tôi

thân (chiều rộng: 120; chiều cao: 160)

Sub RunSub
strComputer = "."

Đặt objLocator = CreateObject("WbemScripting.SwbemLocator")
Đặt objWMIService = objLocator.ConnectServer(strComputer, "root\cimv2")

Đặt colItems = objWMIService.ExecQuery("Chọn * Từ Win32_OperatingSystem")

Đối với mỗi objItem trong colItems

Kế tiếp
Kết thúc phụ





Mọi thứ hoạt động như chúng tôi muốn. Mát mẻ!

Đã thêm phần thưởng: nền tiện ích hạng nhất
Hãy nói nhiều hơn về việc tạo ra các tiện ích có vẻ ngoài bắt mắt. Chúng tôi sẽ kể cho bạn một vài điều phương pháp đơn giản tạo ra một tiện ích như vậy. Tại sao điều này là cần thiết? Tiện ích này sẽ trông nguyên bản và bạn sẽ có thể bán nó với giá cao hơn :). Ví dụ: giả sử bạn có một bức ảnh (hãy gọi nó là Background.jpg) sẽ nền tốt cho một tiện ích. Trong trường hợp này, tất cả những gì bạn phải làm là chèn dòng sau vào tệp HTML sau thẻ:

Mã này buộc sử dụng tệp Background.jpg làm nền của tiện ích:
Chỉ cần đảm bảo rằng Background.jpg được lưu trong thư mục tiện ích của bạn.

Thay thế. Bạn có thể tạo một tiện ích có màu nền khác; ngay sau thẻ chèn dòng này:

Chúng ta sẽ nhận được một tiện ích có nền màu đỏ tươi chứ? Này, tại sao không?

Cuối cùng, bạn có thể làm nền dốc cho tiện ích của bạn khi sử dụng một trong các Bộ lọc Web của Microsoft. Đây là những gì chúng tôi sẽ thay đổi về phong cách của tiện ích này:
1) Tạo phông chữ màu trắng, cụ thể là Arial 8pt.
2) Thêm bộ lọc chuyển màu.

Đây là mã đã hoàn thành:


Tiện ích của tôi

body(width:120;height:160;font:8 pt Arial;color:white;
filter:progid:DXImageTransform.Microsoft.Gradient(GradientType=1, StartColorStr="#000000",
EndColorStr="#0000FF"))

Sub RunSub
strComputer = "."
Đặt objLocator = CreateObject("WbemScripting.SwbemLocator")

Đặt colItems = objWMIService.ExecQuery("Chọn * Từ Win32_OperatingSystem")
Đối với mỗi objItem trong colItems
DataArea.InnerHTML = objItem.Caption
Kế tiếp
Kết thúc phụ



Tất nhiên, thứ chúng ta nhận được không phải là một tác phẩm nghệ thuật mà trông nó đẹp hơn một hình chữ nhật màu trắng.

Tạo tiện ích hiển thị dữ liệu tự động
Có một tiện ích hiển thị thông tin trong phạm vi của nó thay vì trong hộp thông báo chắc chắn là điều tốt. Tuy nhiên, chúng ta vẫn phải bấm vào nút để lấy thông tin. Tất nhiên phải có cách thu thập thông tin tự động và hiển thị ngay khi tiện ích được tải.

Đừng tranh cãi, các bạn, thực sự có một cách.
Chà, theo truyền thống đã được thiết lập :) mã tiện ích của chúng tôi, mã này sẽ hiển thị tên của hệ điều hành đã cài đặt mà không cần nhấp vào nút:


Tiện ích đầu tiên của tôi

thân (chiều rộng: 120; chiều cao: 160)

Cửa sổ phụ_Đang tải
RunSub
Kết thúc phụ

Sub RunSub
strComputer = "."

Đặt objLocator = CreateObject("WbemScripting.SwbemLocator")
Đặt objWMIService = objLocator.ConnectServer(strComputer, "root\cimv2")

Đặt colItems = objWMIService.ExecQuery("Chọn * Từ Win32_OperatingSystem")

Đối với mỗi objItem trong colItems
DataArea.InnerHTML = objItem.Caption
Kế tiếp
Kết thúc phụ



Thật dễ dàng để thấy rằng mã này rất giống với mã trước đây của chúng tôi. Trên thực tế, chỉ có hai điểm khác biệt:
1) Chúng tôi đã xóa nút khỏi tiện ích. Điều này có nghĩa là bạn không còn phải bấm vào nút nữa (mặc dù không còn gì khác để bấm).
2) Chúng tôi đã thêm chương trình con Window_OnLoad.

Nhiều người biết rằng thủ tục Window_Onload có trong một trang Web được thiết kế để kiểm soát thời gian tải hoặc làm mới của một trang Web. Chương trình con này hoạt động theo cách tương tự như trong tiện ích của chúng tôi: nó tự động kiểm soát thời gian khi nó được tải. Chúng tôi chỉ cần tạo một chương trình con có tên Window_OnLoad và đặt mã mà chúng tôi muốn kiểm soát bên dưới.

Đối với tiện ích cụ thể này, quy trình Window_OnLoad của chúng tôi trông như thế này:

Cửa sổ phụ_Đang tải
RunSub
Kết thúc phụ

Bạn có thể thấy mọi thứ chúng tôi thực hiện trong chương trình con này - yêu cầu chương trình con thứ hai: RunSub. Chúng tôi đã đặt mã WMI của mình trong một quy trình riêng biệt, mặc dù có thể đặt tập lệnh WMI trong quy trình Window_OnLoad. Vậy tại sao chúng tôi lại tạo ra thói quen bổ sung thứ hai? Thật đơn giản: điều này sẽ giúp chúng ta dễ dàng chuyển sang tạo tiện ích tiếp theo.

Tạo một tiện ích sẽ cập nhật thông tin định kỳ
Một tiện ích phải hữu ích, nếu không thì tại sao nó lại cần thiết? Bạn có thể triển khai rất nhiều thứ trong một tiện ích các tính năng hữu ích. Với sự kết hợp giữa kích thước mã nhỏ và khả năng sử dụng đồ họa, bạn có thể tạo ra những tác phẩm đáng kinh ngạc. Công cụ hữu íchđể giám sát mạng hoặc máy tính của bạn. Chúng tôi sẽ tạo một tiện ích hiển thị cho chúng tôi RAM trống của máy tính. Tất nhiên, nó sẽ là một tiện ích có thông tin được cập nhật liên tục. Kết quả là bạn sẽ nhận được một cái gì đó tương tự như mã này:


Tiện ích của tôi

thân (chiều rộng: 120; chiều cao: 40")

Cửa sổ phụ_Đang tải
Nhận bộ nhớ

Kết thúc phụ

Bộ nhớ phụ
Đặt objLocator = CreateObject("WbemScripting.SwbemLocator")
Đặt objWMIService = objLocator.ConnectServer(".", "root\cimv2")
Đặt colItems = objWMIService.ExecQuery("Chọn * Từ Win32_OperatingSystem")
Đối với mỗi objItem trong colItems

Kế tiếp
Kết thúc phụ



Trước khi thảo luận về cách hoạt động của tiện ích này, chúng tôi lưu ý rằng nó không hiển thị tên của hệ điều hành được cài đặt trên máy tính. Tại sao chúng ta không làm một ví dụ về việc xác định hệ điều hành của máy tính? Chúng tôi tin rằng việc giám sát bộ nhớ khả dụng có thể thực tế hơn một chút so với việc giám sát tên của hệ điều hành đã cài đặt.

Quy trình xác định dung lượng bộ nhớ khả dụng hiện tại (quy trình có tên GetMemory):

Bộ nhớ phụ
Đặt objLocator = CreateObject("WbemScripting.SwbemLocator")
Đặt objWMIService = objLocator.ConnectServer(".", "root\cimv2")
Đặt colItems = objWMIService.ExecQuery("Chọn * Từ Win32_OperatingSystem")
Đối với mỗi objItem trong colItems
DataArea.InnerHTML = objItem.FreePhysicalMemory
Kế tiếp
Kết thúc phụ

Nhưng chúng tôi quan tâm nhiều hơn không phải đến chương trình con GetMemory mà là chương trình con Window_OnLoad:

Cửa sổ phụ_Đang tải
Nhận bộ nhớ
iTimerID = window.SetInterval("GetMemory", 10000)
Kết thúc phụ

Bạn sẽ nhận thấy rằng chúng ta đang thực hiện hai việc trong chương trình con này. Đầu tiên, chúng tôi chạy chương trình con GetMemory - điều này nhằm đảm bảo rằng sau khi tải tiện ích của chúng tôi, bộ nhớ khả dụng sẽ được hiển thị ngay lập tức. Điều thứ hai chúng tôi làm thú vị hơn một chút:
iTimerID = window.SetInterval("GetMemory", 10000)

Ở đây chúng tôi sử dụng phương thức SetInterval để tạo bộ đếm thời gian. Bộ hẹn giờ này sẽ chạy quy trình GetMemory cứ sau 10 giây (10.000 mili giây). Đây là cách chúng tôi buộc tiện ích tự động cập nhật thông tin: cứ sau 10 giây tiện ích sẽ chạy quy trình GetMemory, nghĩa là sau 10 giây tiện ích sẽ sử dụng WMI để lấy dung lượng bộ nhớ khả dụng hiện tại và sau đó hiển thị dữ liệu này trong phần nội dung của tiện ích. Nếu 10 giây là quá nhiều đối với bạn, hãy thay đổi thông số 10000 thành số nhỏ hơn, chẳng hạn số 5000 sẽ khiến tiện ích cập nhật dữ liệu cứ sau 5 giây (5000 mili giây). Tương tự, thay đổi 10000 thành số lớn hơn, khoảng thời gian cập nhật sẽ dài hơn.

Chúng tôi chưa bao giờ nói đó là một tác phẩm nghệ thuật. Nhưng bây giờ bạn đã hiểu những kiến ​​thức cơ bản về tạo tiện ích (các tiện ích đặc biệt thú vị đối với quản trị viên hệ thống), chúng tôi hy vọng bạn sẽ tạo ra những tác phẩm nghệ thuật. Trong phần tiếp theo, chúng ta sẽ nói về việc kết hợp đồ họa với các tiện ích và nhiều tính năng hữu ích mới.

Cuối cùng - " Bài tập về nhà". Tiếp theo là một mã tiện ích phức tạp hơn một chút (nhấn mạnh vào từ này) thực hiện hai việc: nó điều khiển bộ nhớ khả dụng và cả khi nhấp vào nút Thông tin, nó sẽ hiển thị trên trang Web thông tin chi tiết về hệ thống. Không cần phải nói, tiện ích này không phải là ví dụ về tất cả các khả năng của tiện ích, nhưng ví dụ này cho bạn thấy nhiều khả năng có thể được đưa vào một tiện ích cùng một lúc. Đây là mã thực tế:

Ghi chú của người dịch: Chú ý, khi tôi lưu mã này và khởi chạy tiện ích (tôi đã làm điều này trong Windows XP với Thanh bên được chuyển từ bản dựng 5342), hệ thống bị treo và tôi phải dịch lại một nửa bài viết! Vì vậy hãy cẩn thận. Mặc dù tôi nghĩ điều này sẽ không xảy ra trong Sidebar gốc của Windows Vista nhưng tôi chưa thử nghiệm nó! Sau mã có các liên kết bổ sung về chủ đề này.


Tiện ích của tôi

cơ thể (chiều rộng: 120; chiều cao: 80)

Cửa sổ phụ_Đang tải
Nhận bộ nhớ
iTimerID = window.SetInterval("GetMemory", 10000)
Kết thúc phụ

Bộ nhớ phụ
Đặt objLocator = CreateObject("WbemScripting.SwbemLocator")
Đặt objWMIService = objLocator.ConnectServer(".", "root\cimv2")
Đặt colItems = objWMIService.ExecQuery("Chọn * Từ Win32_OperatingSystem")
Đối với mỗi objItem trong colItems
DataArea.InnerHTML = objItem.FreePhysicalMemory
Kế tiếp
Kết thúc phụ

Đặt objLocator = CreateObject("WbemScripting.SwbemLocator")
Đặt objWMIService = objLocator.ConnectServer(".", "root\cimv2")

Đặt colItems = objWMIService.ExecQuery("Chọn * Từ Win32_ComputerSystem")
Đối với mỗi objItem trong colItems
strHTML = "Tên máy tính: " & objItem.Name & "
"
strHTML = strHTML & "Tên người dùng: " & objItem.UserName & "

"
Kế tiếp

Đặt colItems = objWMIService.ExecQuery("Chọn * Từ Win32_OperatingSystem")
Đối với mỗi objItem trong colItems
strHTML = strHTML & " Hệ điều hành: " & objItem.Caption & "
"
strHTML = strHTML & " Gói dịch vụ: " & objItem.ServicePackMajorVersion & "

"
Kế tiếp

Đặt colItems = objWMIService.ExecQuery("Chọn * Từ Win32_Processor")
Đối với mỗi objItem trong colItems
strHTML = strHTML & "Bộ xử lý: " & objItem.Caption & "

"
Kế tiếp

Đặt colItems = objWMIService.ExecQuery_
("Chọn * Từ Win32_NetworkAdapterConfiguration Trong đó IPEnabled = True")
Đối với mỗi objItem trong colItems
strHTML = strHTML & objItem.Caption & "
"
Đối với mỗi strAddress trong objItem.IPAddress
strHTML = strHTML & "Địa chỉ IP: " & strAddress & "
"
Kế tiếp
Kế tiếp

Đặt objIE = CreateObject("InternetExplorer.Application")
objIE.Navigate("about:blank")
objIE.Thanh công cụ = 0
objIE.StatusBar = 0
Đặt objDoc = objIE.Document.Body
objDoc.InnerHTML = strHTML
objIE.Visible = Đúng
Kết thúc phụ



AppWidget hay đơn giản là “widget”, là một trong những thành phần giao diện người dùng ấn tượng và tiện lợi nhất trong phòng mổ hệ thống Android, có thể được thêm vào máy tính để bàn cho truy cập nhanh tới một số chức năng nhất định của ứng dụng tương ứng. Trong bài viết này, chúng tôi sẽ tìm ra cách tạo widget của riêng bạn.

Cấu trúc của một widget là gì? Cần có một tiện ích để hiển thị một số thông tin nhất định liên quan đến ứng dụng chứa nó hoặc để tương tác nhanh chóng với ứng dụng này trực tiếp thông qua màn hình. Ví dụ đơn giản nhất là đồng hồ trên máy tính để bàn. Đương nhiên, các widget có thể dễ dàng được thêm hoặc xóa khỏi máy tính để bàn.

Các widget chất lượng cao tối ưu hóa đáng kể khả năng tương tác với thiết bị. Hơn nữa, các vật dụng tiện lợi nhất thường chiếm ít không gian nhất trên màn hình và đồng thời chứa nhiều thông tin nhất. Hầu như bất kỳ người dùng nào cũng sẽ cố gắng đặt tiện ích Android của mình lên màn hình nền số tiền tối đa thông tin và tâm điểmđó là không gian có hạn.

Hãy bắt đầu tạo widget với thiết kế. May mắn thay, Google đã cung cấp Nguyên tắc giao diện người dùng rất hữu ích cho các nhà phát triển phần mềm, trong đó mô tả chi tiết quá trình tạo thiết kế và các nguyên tắc cơ bản về công thái học. Ngoài ra còn có một riêng biệt hướng dẫn chính thứcđể tạo các tiện ích, có thể tìm thấy tại liên kết: http://developer.android.com/guide/practices/ui_guidelines/widget_design.html.

Một tiện ích chiếm một “ô” trên màn hình nền có độ phân giải tương ứng là 80x100 pixel, để tạo một tiện ích hình chữ nhật dài 4 ô và cao một ô, bạn cần có kích thước tương ứng là 320x100 pixel. Chúng ta sẽ lấy kích thước này làm cơ sở cho widget mà chúng ta tạo ra.

Bây giờ widget cần được vẽ. Về nguyên tắc, một tiện ích có thể không có bất kỳ phần đồ họa nào và chỉ hiển thị văn bản hoặc điều khiển, không có nền hoặc khung, nhưng tất nhiên, một tiện ích đẹp và vừa mắt chỉ cần có thiết kế chất lượng cao. Vì vậy, hãy vẽ nền. Hãy lấy nền tảng từ Nguyên tắc giao diện người dùng nêu trên làm cơ sở. Mở mẫu có sẵn cho chúng tôi trong Photoshop hoặc mẫu khác biên tập đồ họa và làm bất cứ điều gì chúng tôi muốn, sau đó chúng tôi lưu hình ảnh thu được ở định dạng .png. Định dạng chúng tôi cần là PNG-24, với 8 bit màu và nền trong suốt. Vì vậy, cơ sở cho widget của chúng tôi đã sẵn sàng.

Bây giờ chúng ta chuyển sang phần tạo phần mềm. Tiện ích có thể không có phần mềm. Nói một cách đơn giản, nó sẽ nằm trong menu thêm widget, nhưng không có trong menu ứng dụng chính. Chúng tôi sẽ tạo chính xác loại widget này. Chúng tôi tạo ra dự án mới, và để thuận tiện, chúng tôi gọi nó để lớp chính được đặt tên là widget.java.

Chỉnh sửa Bản kê khai Android. xml. Chúng tôi khai báo widget của chúng tôi:

Bây giờ hãy chỉnh sửa widget.java. Ở đây bạn cần mô tả cách widget sẽ phản ứng với điều kiện khác nhau. Lớp AppWidgetProvider có các phương thức sau:

onUpdate – phương thức được gọi khi tiện ích được tạo cũng như sau một thời gian nhất định. Thời gian được thiết lập trong tập tin cấu hình của tiện ích này. Lưu ý rằng nó được sử dụng thường xuyên nhất.

onDeleted - phương thức được thực thi khi một widget bị xóa khỏi màn hình nền.

onEnabled – phương thức được gọi khi widget được kích hoạt lần đầu tiên. Nhưng nếu một tiện ích khác giống hệt được thêm vào, phương pháp này không còn được thực thi nữa.

onDisabled – phương thức được thực thi khi nó bị xóa bản sao mới nhất tiện ích từ máy tính để bàn. Theo đó, phương pháp này ngược lại với onEnabled.

onReceive – phương thức được gọi đồng thời với tất cả các phương thức khác. Thường không được sử dụng chút nào.

Đi sâu vào phần mềm Chúng tôi sẽ không tạo tiện ích con và do đó, chúng tôi sẽ không điền quá nhiều vào ví dụ của mình bằng bất kỳ trình xử lý nào mà chỉ triển khai tất cả chức năng bằng cách sử dụng Bố cục. Bạn phải khai báo lớp AppWidgetProvider như sau:

gói com.example.widget;

nhập android.appwidget.AppWidgetProvider;

tiện ích lớp công khai mở rộng AppWidgetProvider(

}

Tiếp theo, chúng tôi mô tả tiện ích của mình - điều này là cần thiết để thiết bị di động hiểu anh đang phải đối mặt với điều gì. Để làm điều này bạn cần tạo một thư mục xml trong thư mục độ phân giải. Trong đó chúng ta tạo một file có tên tiện ích_ thông tin. xml. Mở tệp đã tạo và viết đoạn mã sau vào đó:

Hãy cung cấp cho Mô tả ngắn thông số quy định:

minWidth – chiều rộng tối thiểu cần thiết để tiện ích hoạt động.

minHeight – chiều cao tối thiểu cần thiết để tiện ích hoạt động.

updatePeriodMillis – khoảng thời gian mà tiện ích được cập nhật, được chỉ định bằng mili giây. Tham số này rất hữu ích vì sau khi khoảng thời gian đã chỉ định trôi qua, phương thức onUpdate của đối tượng AppWidgetProvider sẽ được kích hoạt.

initLayout – tham số trỏ đến một tài nguyên mô tả giao diện của tiện ích của chúng tôi.

Công thức tính kích thước của widget như sau: (số ô * 74) - 2.

Hãy bắt đầu mô tả giao diện của widget mà chúng ta đang tạo. Đây là nơi nền được tạo trước đó có ích. Nhập ảnh nền vào thư mục có thể vẽ được(hoặc trong cả ba thư mục có thể vẽ được cho các độ phân giải màn hình khác nhau). Trong thư mục cách trình bày tạo một tập tin có tên tiện ích. xml. Giao diện được mô tả như dành cho Hoạt động thông thường nhưng có một số hạn chế. Các yếu tố sau được phép sử dụng:

Hãy tạo một LinearLayout, trong đó chúng ta sẽ áp dụng hình nền đã tạo và thêm AnalogClock chẳng hạn. Bản thân chiếc đồng hồ sẽ không vừa với khung, nhưng bằng cách nào? ví dụ rõ ràng sẽ làm tốt thôi. Vì thế:

Về cơ bản là vậy. Sau khi cài đặt tiện ích trên thiết bị hoặc trình mô phỏng Android, bạn có thể cài đặt tiện ích này trên một trong các máy tính để bàn của mình. Sau khi thêm vào, chúng ta sẽ suy ngẫm như sau.

Gần đây tôi cần tạo một tiện ích cho Windows Sidebar. Tôi không có bất kỳ kỹ năng nào trong việc này, vì vậy sau khi tìm kiếm trên Google một chút và đọc tài liệu, hãy bắt đầu.

Tôi sẽ cho bạn thấy những gì tôi đã kết thúc ngay lập tức.


Tiện ích sẽ nhận được thông tin từ trang web trong biểu mẫu xml, phân tích và trên thực tế là hiển thị. Tiện ích cũng sẽ kiểm tra các phiên bản mới và nếu có, hãy từ chối hoạt động :)
Ban đầu, để tích lũy kinh nghiệm, tôi muốn viết một tiện ích hoàn toàn bằng VBScript (vì tôi chưa xử lý nó), nhưng cuối cùng tôi phải thực hiện các thao tác chèn bằng JavaScript.
Hãy chuyển trực tiếp đến mã. Tôi sẽ không xem lại toàn bộ mã ở đây, tôi sẽ chỉ hiển thị những điểm chính. Liên kết đến tiện ích đã hoàn thành nằm ở cuối bài viết.
Tệp chính của tiện ích là tệp kê khai của nó – tệp Gadget.xml. Nó phải được gọi chính xác như vậy và nằm trong thư mục gốc của kho lưu trữ của chúng tôi (tiện ích này không gì khác hơn là kho lưu trữ ZIP có phần mở rộng .gadget).

Thời tiết từ Info.Denms.Ru 1.0.1232 Tiện ích thời tiết đầy đủ (Info.Denms.Ru)

Chúng ta hãy xem xét nó chi tiết hơn.
Phần tử phải chứa apiVersion bằng 1.0.0 (tại khoảnh khắc này), Và thuộc tính src, cái chỉ ra rằng tập tin chính tiện ích của chúng tôi;
Quyền cho tiện ích. Đặt bằng đầy đủ;
Phiên bản tối thiểu của Windows Sidebar. Hiện tại – 1.0;
Thông số - tên tiện ích, - phiên bản, - thông tin về tác giả, - liên kết đến trang có tiện ích, - biểu tượng tiện ích và sẽ được hiển thị trên bảng tiện ích đã cài đặt.

Tệp main.html là bình thường tập tin html, Tôi sẽ không cung cấp đầy đủ, tôi sẽ chỉ tập trung vào một số điểm.
Phần tử g:background được sử dụng để đặt nền của tiện ích. Hãy làm cho nó minh bạch.

Tiện ích có thể ở hai trạng thái – được gắn vào đế (ở bên trái trong ảnh chụp màn hình ở trên) và không được gắn vào đế (ở bên phải). Chúng tôi sẽ lưu trữ trạng thái hiện tại của tiện ích trong Biến JavaScriptđã cập bến.

Trong tương lai, chúng ta sẽ cần hàm bao bọc isDocked để tìm hiểu trạng thái hiện tại của tiện ích từ VBScript (dù tôi đã cố gắng thế nào, tôi cũng không thể triển khai điều này trong VBScript thuần túy). Một lưu ý nữa - các tập lệnh hoạt động chính xác theo thứ tự này, tức là. Đầu tiên chúng tôi mô tả các tập lệnh VBScript, sau đó là JavaScript.

Các phần tử còn lại trong main.html được trình bày phần tử DIV với vị trí tuyệt đối. Sau đó, từ các tập lệnh, chúng tôi sẽ truy cập chúng theo id của chúng.

VỚI sử dụng JavaScript hãy đặt trạng thái được gắn đế và không được gắn đế cho tiện ích, đồng thời chỉ định tệp cài đặt (main.js)

System.Gadget.onDock = thay đổi kích thước; System.Gadget.onUndock = thay đổi kích thước; System.Gadget.settingsUI = "settings.html"; System.Gadget.onSettingsClosed = Cài đặtClosed; đã cập bến=0; //trạng thái ban đầu của tiện ích thay đổi kích thước(); //khởi tạo

Như bạn có thể thấy từ danh sách ở trên, khi trạng thái tiện ích thay đổi, hàm thay đổi kích thước() sẽ được gọi.

Hàm thay đổi kích thước() ( bd = document.body.style; System.Gadget.beginTransition(); if (System.Gadget.docked) ( // trạng thái nhỏ bd.width=148; // đặt kích thước tiện ích bd.height= 201 ; được gắn đế = 1; bd.background="url(images/gadget.png) no-repeat"; //đặt nền // sau đó chuyển các giá trị từ trạng thái không được gắn vào đế và xóa các phần tử cho trạng thái không được gắn kết document.getElementById("small_needupdate").innerHTML = document.getElementById("big_needupdate").innerHTML; document.getElementById("big_needupdate").innerHTML = ""; state bd.width=230; bd.height=160; bd.background="url(images/gadgeth.png) no-repeat"; trạng thái document.getElementById("big_needupdate"). bên trongHTML = document.getElementById("small_needupdate").innerHTML; document.getElementById("small_needupdate").innerHTML = ""; .Gadget.TransitionType.morph,1); )

Bạn cũng có thể mô tả chức năng lưu cài đặt. Tiện ích của tôi không có chúng, nhưng để làm ví dụ, tôi sẽ chỉ cho bạn cách thực hiện.

Cài đặt chức năngClosed(event) ( if (event.closeAction == event.Action.commit) ( //alert System.Gadget.Settings.readString("test"); ) )

ReadString – đọc một chuỗi đã lưu trước đó, writeString, tương ứng, ghi.
Các phương thức System.Gadget.beginTransition(); và System.Gadget.endTransition(); cần thiết để thay đổi kích thước tiện ích một cách “trơn tru”. TRONG Windows 7 chúng bị bỏ qua, nhưng tôi vẫn để chúng để tương thích ngược.

Như đã đề cập ở trên, máy chủ cung cấp cho chúng ta thông tin thời tiết ở định dạng xml.

1,7 41 Tuyết nhiều mây 87 Tây Nam 5 -3 -1 -1 26 1 -9 41 0 …

Chúng tôi sẽ tải xuống và phân tích xml bằng VBScript.

Sub DownloadXML2 Đặt objXML = CreateObject("Microsoft.XmlHttp") objXML.Open "GET", "http://info.kovonet.ru/weather.xml", True objXML.OnReadyStateChange = GetRef("objXML_onreadystatechange") objXML.setRequestHeader "If-Modified-Since", "Thứ bảy, ngày 1 tháng 1 năm 2000 00:00:00 GMT" objXML.Send iTimeoutID = window.SetTimeout("mySleep", 1000) End Sub

Chức năng mySleep sẽ kiểm tra kết nối của chúng tôi xem có thời gian chờ không.

Sub mySleep nếu bRespReceived = "false" thì "chưa nhận được phản hồi iTimeout = iTimeout + 1 nếu (iTimeout > 30) thì "timeout timeFirstRun = window.SetTimeout("Update", 60000) "thử nâng cấp lại còn một phút nữa "chưa hết thời gian chờ, chúng ta tiếp tục đếm số giây iTimeoutID = window.SetTimeout("mySleep", 1000) end if end if End Sub

Nếu quá trình tải xuống thành công, objXML.readyState sẽ bằng 4 và trạng thái (objXML.status) sẽ trả về giá trị 200.

Hàm objXML_onreadystatechange() Nếu (objXML.readyState = 4) Then "msgbox objXML.statusText Nếu (objXML.status = 200) Then bRespReceived=true SaveFile(objXML.responseText) else timeFirstRun = window.SetTimeout("Update", 60000) " cố gắng cập nhật lại sau một phút Kết thúc Nếu Kết thúc Nếu Kết thúc Chức năng

Trong trường hợp này, hãy lưu tệp vào thư mục Windows tạm thời

Hàm SaveFile(what) Đặt fso = CreateObject("Scripting.FileSystemObject") tempFolder = fso.Get SpecialFolder(2) filepath = tempFolder+"\weather.xml" Dim fso1, tf Đặt fso1 = CreateObject("Scripting.FileSystemObject") Đặt tf = fso1.CreateTextFile(filepath, True, True) "viết lại, unicode tf.Write(what) tf.Close ParseXML End Function

Và chúng tôi bắt đầu phân tích tập tin.

Sub ParseXML Đặt fso = CreateObject("Scripting.FileSystemObject") tempFolder = fso.Get SpecialFolder(2) filepath = tempFolder+"\weather.xml" Đặt xmlDoc = CreateObject("Msxml2.DOMDocument") xmlDoc.async="false" xmlDoc. Load(filepath) "nút chính - trong trường hợp của chúng tôi Đặt currNode = xmlDoc.documentElement "các ngày trong tuần - Đặt dayNode = currNode.firstChild Khi không phải dayNode Không có gì Đặt currNode = dayNode.firstChild Khi không phải currNode Không là gì nếu currNode.parentNode. getAttribution( "id") = "hôm nay" rồi "hôm nay nếu currNode.nodeName = "temp" thì document.getElementById(prefix+"maintemp").innerHTML = currNode.childNodes(0).text+Chr(176) "hiển thị các phần tử còn lại Khác "không phải hôm nay, hiển thị tinh tế hơn"... end If Set currNode = currNode.nextSibling Wend Set dayNode = dayNode.nextSibling Wend End Sub

Việc kiểm tra các phiên bản mới được thực hiện theo cách tương tự.
Đừng quên tạo tệp cài đặt - settings.html, sự tồn tại của tệp mà chúng tôi đã thông báo ở trên.

Cài đặt

Thực ra đó là tất cả. Tôi sẽ rất vui nếu bài viết (đầu tiên :)) của tôi hữu ích cho ai đó.

Các nguồn đã qua sử dụng.

Tiện ích (Widget) là một trong những tính năng gây tranh cãi nhất trong hệ điều hành cửa sổ. Một số người dùng cài đặt chúng và thậm chí không tưởng tượng được làm thế nào họ có thể sử dụng đầy đủ PC của mình mà không cần sự trợ giúp của họ. Những người khác thậm chí không biết nó là gì và đối phó khá thành công. Có tiện ích nào dành cho Windows 10 không, chúng là gì và cách cài đặt chúng? Chúng ta sẽ thảo luận chi tiết về câu trả lời cho những câu hỏi này ở phần sau của bài viết.

Tại sao các widget biến mất khỏi Windows 10?

Với sự xuất hiện của phiên bản 8 đầu tiên và sau đó là phiên bản thứ mười, vấn đề này đã được giải quyết do Microsoft đã quyết định loại bỏ hoàn toàn chức năng này khỏi hệ thống vì một số lý do:

  • Như không cần thiết. Điểm nhấn lớn trong các hệ thống mới là các ô xếp trực tiếp, theo một cách nào đó, chúng hoạt động giống như các vật dụng. Họ hiển thị thông tin hữu ích, được cập nhật theo thời gian thực và có vẻ phù hợp hơn;
  • Vì lý do an ninh. Đúng hơn, ở đây các nhà phát triển đã nói mà không có bất kỳ lý do cụ thể nào. Bởi vì thật khó để tưởng tượng rằng một thành phần nhỏ của hệ thống như một widget lại có thể ảnh hưởng lớn đến tính bảo mật và các phần mã của nó có thể bị kẻ tấn công sử dụng. Mặc dù điều này có thể ảnh hưởng đến hiệu suất. Bạn có thể kiểm tra điều này bằng cách trả về chức năng và .

Hiện tại không thể tìm thấy các tiện ích dành cho Windows 10 trên trang web chính thức.

Tuy nhiên, không còn vật dụng nào nữa và lý do được đưa ra. Hầu hết người dùng chỉ đồng ý và bắt đầu sử dụng các ô xếp, nhưng cũng có những người không muốn tước đi cơ hội thuận tiện như vậy và tự hỏi làm cách nào để cài đặt các tiện ích trên Windows 10. Vì lợi ích của họ, chúng tôi đã thử nhà phát triển bên thứ ba, người đã tạo ra phần mềm sao chép chức năng của các widget một cách chặt chẽ nhất có thể và cho bạn biết cách cài đặt các tiện ích trên màn hình trong Windows 10.

Cách cài đặt tiện ích trên máy tính để bàn của bạn bảng Windows 10 sử dụng chương trình 8GadgetPack
  • Trung tâm Truyền thông;
  • Nhà sản xuất phim;
  • .Nền tảng NET;
  • Phiên bản DirectX 9 và nhiều hơn nữa.

Có khả năng là, bằng cách lục lọi trên Internet, bạn có thể tìm thấy các giải pháp khác ít được biết đến hơn, nhưng điều này có cần thiết không, vì những giải pháp được mô tả ở trên cho phép bạn trả lại chức năng có trong phiên bản 7 trở lên.

Nếu bạn đang tìm cách loại bỏ các tiện ích trên Windows 10, thì việc này được thực hiện bằng cách thêm chúng vào hệ điều hành.

Các bước cơ bản

Dưới đây là một số bước cơ bản khi tạo và đặt tiện ích.

  • Tạo đặc tả tiện ích trong soạn thảo văn bản, sau đó lưu nó vào máy chủ web công cộng.
  • Ví dụ: thêm tiện ích vào vùng chứa iGoogle hoặc Orkut. Thùng đựng hàng là một ứng dụng hoặc trang web mà các tiện ích có thể thực hiện.
  • Cấu trúc tiện ích

    Khi bạn hiểu cách sửa đổi và xuất bản các tiện ích, bạn có thể bắt đầu đưa các tính năng nâng cao hơn vào thông số kỹ thuật của tiện ích. Đặc tả XML của tiện ích bao gồm 3 phần chính.

    • Phần nội dung. Phần này là nơi công việc thực sự của tiện ích của bạn diễn ra. Ở đây bạn nên chỉ ra loại tiện ích, logic lập trình và thường phần tử HTML quyết định sự xuất hiện của nó.
    • Thiết lập người dùng. Phần này xác định các chức năng cung cấp cho người dùng cơ hội lựa chọn cài đặt tiện ích. Ví dụ: trong một tiện ích lời chào cá nhân có thể có một trường văn bản trong đó người dùng phải cho biết tên của họ.
    • Cài đặt tiện ích. Một phần của tệp XML chỉ định các đặc điểm của tiện ích (ví dụ: tên, tác giả, kích thước ưa thích, v.v.).

    Khi tạo một tiện ích, bạn nên bắt đầu với phần này.

    Định nghĩa nội dung

    Phần này đại diện cho “bộ não” của tiện ích. Một phần xác định loại nội dung và chứa chính nội dung đó hoặc liên kết đến nội dung bên ngoài. Một phần là nơi chứa các thuộc tính tiện ích và cài đặt tùy chỉnhđược kết hợp với logic lập trình và định dạng thông tin thành một tiện ích hoạt động.

    Cách đơn giản nhất tạo một tiện ích - chỉ cần đặt HTML (và có thể cả JavaScript hoặc Flash) vào phần này. Các nhà phát triển web có kinh nghiệm có thể đọc về các tùy chọn kiểm soát truy cập khác, lưu trữ từ xa, sử dụng các ngôn ngữ kịch bản khác và hơn thế nữa. Đây là một ví dụ đơn giản về một tiện ích. Tiện ích này chứa một bức ảnh mà bạn cần nhấp vào để mở album ảnh trên đó trang mới HTML:

    Xác định cài đặt tùy chỉnh

    Một số tiện ích sẽ cho phép người dùng nhập thông tin về bản thân họ. Ví dụ: một thiết bị chơi game có thể hỗ trợ đầu vào ở mức độ khó ưa thích. Phần cài đặt người dùng() của file XML cung cấp các trường đầu vào Thông tin người dùng, xuất hiện trong giao diện của người dùng đã khởi chạy tiện ích. Cài đặt người dùng được lưu vĩnh viễn.

    Ví dụ: trong tiện ích này, lời chào cá nhân thay đổi tùy theo thời gian trong ngày. Trong trường hợp này, người dùng có thể cung cấp các thông tin sau.

    • Tên được sử dụng trong lời chào. Tên này cũng được viết trong dòng tiêu đề.
    • Màu nền.
    • Tôi có cần cho xem một bức ảnh không?

    Đây là giao diện của tiện ích khi người dùng nhấp vào chỉnh sửa để thay đổi cài đặt người dùng:

    Trong đặc điểm kỹ thuật định dạng XML các điều khiển được xác định trong giao diện của tiện ích đi kèm, chịu trách nhiệm về cài đặt của người dùng.





    Xin lưu ý những điều sau:

    Đây là toàn bộ tiện ích, cùng với mã JavaScript hiển thị văn bản chào mừng cho tiện ích.

    Để biết danh sách các thuộc tính, hãy xem .

    Cài đặt tùy chỉnh có thể được gọi từ tiện ích của bạn bằng cách sử dụng API JavaScript đặc biệt, ví dụ:

    var prefs = tiện ích mới.Prefs(); var someStringPref = prefs.getString("StringPrefName"); var someIntPref = prefs.getInt("IntPrefName"); var someBoolPref = prefs.getBool("BoolPrefName");

    Danh sách tất cả Hàm JavaScript nhìn vào.

    Thay thế biến đổi cho cài đặt tùy chỉnh

    Bạn có thể sử dụng thay thế biến có định dạng __UP_ người dùngpref __ ở phần hoặc ở đâu người dùngpref khớp với tên của thuộc tính Tùy chỉnh. Sau khi khởi chạy tiện ích Chuỗi giá trị cài đặt tùy chỉnh tương ứng được thay thế cho biến mà không cần dịch. Ví dụ: trong đoạn mã này, giá trị thời gian chạy do người dùng cung cấp cho cài đặt tùy chỉnh của dự án được thay thế cho __UP_projects__ trong dòng title_url:

    Dưới đây là hướng dẫn chung về cách sử dụng tính năng thay thế biến cho cài đặt tùy chỉnh.

    • Đối với thuộc tính tiêu đề, hãy sử dụng __UP_ tên __. Cái này được dịch sang HTML.
    • Đối với thuộc tính title_url, hãy sử dụng __UP_ tên __. Cái này được dịch sang HTML.
    • Trong phần HTML sử dụng __UP_ tên __. Điều này được dịch sang HTML.
    • TRONG Mã JavaScript trong phần này, hãy sử dụng hàm Gadgets.Prefs().
    Chia sẻ cài đặt người dùng

    Bằng cách sử dụng chức năng shareable-prefs, bạn có thể cung cấp cho nhiều người dùng khả năng thay đổi cài đặt tiện ích. Bằng cách này, người dùng có thể chia sẻ tiện ích và xem ai đã thay đổi điều gì. Ví dụ: các thành viên trong gia đình có thể chia sẻ một tiện ích với danh sách mua sắm và mỗi người có thể thêm sản phẩm yêu thích của mình. Dữ liệu cài đặt người dùng là một phần của trạng thái tiện ích được lưu trữ trên iGoogle. thông tin thêm về cài đặt tùy chỉnh có thể được tìm thấy trong .

    Để cài đặt tùy chỉnh của tiện ích được chia sẻ giữa nhiều người dùng, tiện ích phải chứa một dòng trong phần này. Ví dụ: tiện ích này sử dụng cài đặt tùy chỉnh để điền danh sách mua sắm:

    Đây là mã tiện ích:

    ]]>

    Bằng cách thêm tiện ích hỗ trợ cài đặt chia sẻ vào iGoogle, bạn có thể cung cấp tiện ích này cho chia sẻ theo cách sau.

    Bước 1: Click vào hình tam giác trên tiện ích bạn muốn chia sẻ chia sẻ và chọn Chia sẻ tiện ích này.

    Bước 2: Nếu bạn sử dụng Gmail, hãy chọn những người bạn mà bạn muốn chia sẻ tiện ích hoặc nhập địa chỉ email của họ.

    Bước 3: Quyết định xem bạn bè có thể chỉnh sửa nội dung của tiện ích hay chỉ xem nó trên trang iGoogle của họ.

    • Khi bạn chọn Xem và chỉnh sửa nội dung, bạn bè sẽ có thể chỉnh sửa cài đặt tùy chỉnh của tiện ích. Những thay đổi của chúng sẽ được phản ánh trong phiên bản tiện ích của bạn và trong tất cả các phiên bản dùng chung khác của tiện ích đó.
    • Nếu bạn chọn Xem nội dung, bạn bè sẽ không thể thay đổi cả tiện ích và bản sao của nó trên trang riêng. Chỉ bạn mới có thể thay đổi tiện ích và những thay đổi của bạn sẽ được áp dụng cho tất cả các phiên bản được chia sẻ của tiện ích.

    Nhấp vào Gửi lời mời. Bạn bè sẽ nhận được email từ bạn mời họ thêm tiện ích vào trang iGoogle của họ.

    Những người bạn mà bạn cho phép sửa đổi tiện ích có thể chỉnh sửa cài đặt tùy chỉnh và xuất bản các thay đổi đối với tất cả các phiên bản được chia sẻ của tiện ích.

    Xác định cài đặt tiện ích

    Một phần của tệp XML chỉ định các đặc điểm của tiện ích (ví dụ: tên, tác giả, kích thước ưa thích, v.v.). Ví dụ: