視窗

這是一組用於顯示停駐視窗或訊息方塊等功能的 API。

// Retrives the API instance.
IRCXWindowAPI? api = Main.GetAPI<IRCXWindowAPI>();

// Show message box.
var response = api?.ShowMessageBox(
    new RCXCaption(Main.CommonId, Caption.ExtensionName),
    new RCXCaption("Are you OK?"),
    IRCXWindowAPI.ButtonType.Yes_No,
    IRCXWindowAPI.IconType.Question
);
if (response == IRCXWindowAPI.ResponseType.OK)
{
    // Process when the response is OK.
}

也提供用於承載 WPF 的 WebView2 控制項之停駐視窗的 API。

  • 可處理下列 URI。
    • 外部(網際網路、內部網路)網站
    • 配置於執行 RC+ 之電腦本機的靜態網站
      • 亦可為了動態匯入 JavaScript 模組,啟動專用的 HTTP 伺服器。
    • 於執行 RC+ 之電腦本機運作的 Web 應用程式
      • 可指定應用程式的啟動指令(如 node 等)及參數。
        • 作為參數給定 ${port}、${lang} 時,分別會被替換為埠號(自動分配)及顯示語言名稱。
  • 可利用 Web 技術(HTML、CSS、JavaScript 等)實作功能。
    • 視窗關閉、內容儲存時執行腳本
    • 內容編輯
      • 取得所選文字並傳送至剪貼簿
      • 傳送對應於編輯選單的訊息("RCX.Clear"、"RCX.Paste"、"RCX.SelectAll"、"RCX.Undo"、"RCX.Redo")
    • 傳送對應於 F10 鍵顯示說明的訊息("RCX.ShowHelp")
  • 建立主機物件後,可與 C# 端進行互動。
    • 也可使用已實作下列函式的內建主機物件 chrome.webview.hostObjects.BuiltinBridge。
      • string GetCaption(int number):取得指定編號的標題字串。
      • string ReadConfiguration(bool global):以 Base64 編碼字串讀取 Extension 的設定資料。
      • string WriteConfiguration(bool global):以 Base64 編碼字串寫入 Extension 的設定資料。
        • 當 global 旗標為 true 時,設定資料將對 Windows 登入使用者共用;若為 false,則僅限各登入使用者。
// Retrives the API instance.
IRCXWindowAPI? api = Main.GetAPI<IRCXWindowAPI>();

if (api != null)
{
    // Show "Epson Global Portal" site in a docking window
    var webVewInfo = new IRCXWindowAPI.WebViewInfo(
        (_, _, _) => new Uri("https://epson.com/"),
        Id,
        $"{Id}.External",
        new RCXCaption(CommonId, Caption.WindowTitle_External),
        Main.CommonIcon
    );

    await api.ShowDockingWebViewWindowAsync(webViewInfo).ConfigureAwait(true);
}