具有嵌入式HTML和透明背景的AutoHotKey GUI

时间:2016-05-04 16:20:13

标签: html css internet-explorer activex autohotkey

我尝试使用以下代码制作AutoHotKey脚本以显示HTML文件中的透明叠加层:

SendMode Input  ; Recommended for new scripts due to its superior speed and reliability.
SetWorkingDir %A_ScriptDir%  ; Ensures a consistent starting directory.
#NoEnv  ; Recommended for performance and compatibility with future AutoHotkey releases.
#Warn  ; Enable warnings to assist with detecting common errors.
#SingleInstance, force
Menu Tray, tip, %A_ScriptName% ; Custom traytip
OverlayVisible := 0

; ---------------------- CUSTOMIZE BELOW HERE ----------------------

PositionX      := 31     ; x position of top left corner of overlay
PositionY      := 423    ; y position of top left corner of overlay

F1::
    Gosub Sub_BuildHTML
    Gosub Sub_ToggleOverlay
return

Sub_ToggleOverlay:
    if !OverlayVisible {
        Gosub Sub_ShowOverlay
    } else {
        Gosub Sub_HideOverlay
    }
    OverlayVisible := !OverlayVisible
return

; Creates and shows the GUI
Sub_ShowOverlay:
    Gui GUI_Overlay:New, +ToolWindow  +LastFound +AlwaysOnTop -Caption -Border +hwndGUI_Overlay_hwnd

    Gui Margin, 0,0  
    Gui Add, ActiveX, w400 h225 vWB BackGroundTrans, Shell.Explorer
    URL := "file:///" . A_ScriptDir . "/overlay.html"
    WB.Navigate(URL)

    WinSet Transparent, 255
    ;WinSet TransColor, White 0
    Gui Show, Hide, Overlay

    WinMove PositionX, PositionY
    Gui GUI_Overlay:Show, NoActivate
return

Sub_HideOverlay:
    Gui GUI_Overlay:Destroy
return

Sub_BuildHTML:
    FileDelete, overlay.html
    FileAppend,
    (
<!DOCTYPE html>
<html>
  <meta charset="utf-8" http-equiv="X-UA-Compatible" content="IE=edge"/>
  <head>
    <style type="text/css">
    body {
      background-color: transparent;
      overflow:hidden;
    }
    #header1 {
      color:blue;
    }
    </style>
  </head>
  <body>
    <div id="header1">TEST</div>
    <img src="http://i.stack.imgur.com/FBZq5.png" />
  </body>
</html>
), overlay.html
return

除了透明度之外的一切都很有效。我可以使用WinSet Transparent来使整个控件透明,但我想要的只是覆盖的边缘淡出透明度,以便HTML的实际内容可见。

我为HTML创建了一个背景图像,其中所需的淡入淡出为透明,但由于HTML的背景仍为白色,因此它只是淡化为白色。

似乎是IE不想呈现透明背景的问题?有没有办法解决这个问题,以便背景真的透明或者是否有其他解决办法?

2 个答案:

答案 0 :(得分:0)

This script透明显示控件: ransparency at 118e

还有TransColor。其他设置可用。

TransColor at 150

答案 1 :(得分:0)

ive试图弄清楚同一件事。我精通html,css,javascript,coffeescript,scss和其他一些涉及Web设计等的语言。以我的经验,唯一能够使网页透明bg的地方就是电子。我一直在尝试中子。它是一种像电子一样的渲染器,但用于ahk。我建议去那里看看。如果您发现任何问题,请告诉我。可在geek dude制作的github上找到Neuk for ahk。这是一个网络研讨会。应该有链接到它。 https://www.youtube.com/watch?v=cTRcOG28hYI