开发者社区 问答 正文

如何实现程序暂停,等待鼠标或键盘输入后进行下一步动作?

Func Start()
    $url = "D:\src\test.html"
    $ie = J_IE_Create($url, "", "", "")
    J_Windows($ie, "最大化")
    $htmlContent_1 = '<!DOCTYPE html><html><head><title>Test</title></head><body><div id="Layer1" style="position:absolute;width:100%;height:100%;z-index:-1"><img src="'
    $htmlMid = 'D:\src\images\幻灯片'
    $htmlContent_2 = '.jpg" height="100%" width="100%"/></body></html>'
    $maxSlide = 8
    While 1
        $count = 1
        $htmlContent = $htmlContent_1 & $htmlMid & $count & $htmlContent_2
        J_File_Write($url, $htmlContent, "覆盖")
        J_IE_Link($ie, $url)

        While 1
            If _IsPressed("01") Or _IsPressed("4E") Or _IsPressed("27") Then
                $count = $count + 1
                If $count > $maxSlide Then
                    $count = $maxSlide
                EndIf
                $htmlContent = $htmlContent_1 & $htmlMid & $count & $htmlContent_2
                J_File_Write($url, $htmlContent, "覆盖")
                J_IE_Link($ie, $url)
            ElseIf _IsPressed("50") Or _IsPressed("25") Then
                $count = $count - 1
                If $count = 0 Then
                    $count = 1
                EndIf
                $htmlContent = $htmlContent_1 & $htmlMid & $count & $htmlContent_2
                J_File_Write($url, $htmlContent, "覆盖")
                J_IE_Link($ie, $url)
            ElseIf _IsPressed("1B") Then
                J_Windows($ie, "最小化")
            ElseIf _IsPressed("0D") Then
                J_Windows($ie, "最大化")
            ElseIf _IsPressed("2E") Then
                J_IE_Close($ie)
                Exit
            EndIf
            Sleep(50)
        WEnd
    WEnd
EndFunc   ;==>Start
代码奉上,起因是想用码栈控制IE实现类似PPT播放的功能。

展开
收起
leesharpen 2017-03-11 23:26:52 2857 分享 版权
阿里云 AI 助理回答

看起来您正在尝试使用某种脚本语言(可能是AutoIt或其他类似自动化工具)来启动一个网页(test.html),并对其进行动态修改,比如插入图片元素。这段代码的目的是循环显示不同的幻灯片图片,但似乎在拼接HTML内容时遇到了问题。

根据您的代码片段,我注意到您可能需要帮助理解如何正确地构造和插入HTML内容以实现幻灯片功能。不过,请注意,直接在这里执行或调试具体的脚本代码并不符合我的能力范围,但我可以提供一些指导思路:

  1. 构建动态HTML内容: 您已经定义了HTML内容的部分字符串变量,如$htmlContent_1, $htmlMid, 和 $htmlContent_2。要动态生成每个幻灯片的图片标签,您应该在一个循环中改变图片的文件名部分(即$htmlMid中的实际图片路径),然后将这些部分组合成完整的HTML字符串。

  2. 循环与计数: 您初始化了$count = 1但在提供的代码片段中没有看到它被用于控制循环或图片索引。如果目的是遍历8张幻灯片,您需要在循环内部更新$count并用它来确定当前应显示的图片编号,从而动态生成正确的图片路径。

  3. 拼接图片URL: 确保在每次循环中正确地拼接图片的完整URL或路径。例如,如果图片名为“slide1.jpg”到“slide8.jpg”,您需要在循环中根据$count来构造$htmlMid

  4. 更新DOM: 一旦生成了包含所有幻灯片图片的完整HTML内容,您需要一种方法将其插入到网页中。这通常涉及到查找或创建一个容器元素(如<div id="slider">...</div>),然后使用自动化工具的功能(如J_IE_ExecuteScript)来执行JavaScript代码,将新内容插入到页面的指定位置。

基于上述分析,一个简化的逻辑框架可能是这样的:

While $count <= $maxSlide
    $currentSlide = "slide" & $count & ".jpg"
    $fullImagePath = $htmlMid & $currentSlide & $htmlContent_2
    ; 假设这里有一个函数或方法可以用来更新网页上的某个元素内容
    ; J_IE_ExecuteScript($ie, "document.getElementById('slider').innerHTML += '" & $fullImagePath & "';")
    Sleep(若干毫秒) ; 如果需要间隔显示幻灯片
    $count += 1
WEnd

请根据您使用的具体自动化工具的API文档调整上述示例代码。如果您是在寻找阿里云产品相关的解决方案,例如使用OSS存储图片、通过函数计算(Function Compute)处理图片或者部署Web应用等,也欢迎提问,我会提供相应的技术指导。

有帮助
无帮助
AI 助理回答生成答案可能存在不准确,仅供参考
0 条回答
写回答
取消 提交回答
问答地址: