惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

酷 壳 – CoolShell
酷 壳 – CoolShell
雷峰网
雷峰网
H
Hackread – Cybersecurity News, Data Breaches, AI and More
Spread Privacy
Spread Privacy
H
Hacker News: Front Page
PCI Perspectives
PCI Perspectives
Webroot Blog
Webroot Blog
罗磊的独立博客
H
Heimdal Security Blog
TaoSecurity Blog
TaoSecurity Blog
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
大猫的无限游戏
大猫的无限游戏
月光博客
月光博客
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
Google Online Security Blog
Google Online Security Blog
Last Week in AI
Last Week in AI
美团技术团队
Help Net Security
Help Net Security
The Hacker News
The Hacker News
C
Cisco Blogs
T
The Blog of Author Tim Ferriss
J
Java Code Geeks
The Register - Security
The Register - Security
IT之家
IT之家
WordPress大学
WordPress大学
Jina AI
Jina AI
Recent Commits to openclaw:main
Recent Commits to openclaw:main
H
Help Net Security
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
T
Threat Research - Cisco Blogs
P
Proofpoint News Feed
NISL@THU
NISL@THU
爱范儿
爱范儿
The GitHub Blog
The GitHub Blog
Scott Helme
Scott Helme
V
Vulnerabilities – Threatpost
B
Blog
T
Tenable Blog
博客园 - 三生石上(FineUI控件)
T
The Exploit Database - CXSecurity.com
S
Security Affairs
小众软件
小众软件
Hacker News: Ask HN
Hacker News: Ask HN
Security Latest
Security Latest
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
W
WeLiveSecurity
A
Arctic Wolf
L
LINUX DO - 热门话题
Google DeepMind News
Google DeepMind News
M
MIT News - Artificial intelligence

博客园 - Wisdom-zh

【关注】“诋毁” 一下博客园的模板 混淆器【修正版】 发一个混淆器, Nuva 写的 Win32Ole 演示【控制 Word】 通用数据浏览示例 方便的 XML 数据绑定 Swap 函数 延迟计算 短路运算 语法兼容 之 运算符总结 这是什么语言的代码 Nuva 语法兼容 之 控制结构总结 设计模式 之 状态机模式 Nuva 示例代码(每日一帖)之 源代码统计 Nuva 示例代码(每日一帖)之 数据架构提取 Nuva 示例代码(每日一帖)之 ShowMessage Nuva 示例代码(每日一帖)之 异常处理 Nuva 示例代码(每日一帖)之 语法兼容 挑战 XSLT 最擅长的 XML 文档转换
Win32Api 演示【控制任务栏】
Wisdom-zh · 2006-09-28 · via 博客园 - Wisdom-zh

<..========================================================
==                                                       ==
==                Macrobject Nuva Samples                ==
==                                                       ==
==      Copyright (c) 2004-2006 Macrobject Software      ==
==                                                       ==
==                  ALL RIGHTS RESERVED                  ==
==                                                       ==
==               http://www.macrobject.com               ==
==                                                       ==
========================================================..>
<.
  var SW_HIDE = 0;
  var SW_SHOWNORMAL = 1;

  var MB_ICONINFORMATION = $00000040;

  var dll = System.Win32Api('user32',
      [
        ['FindWindow',       'FindWindow',       'SS',   'L'],
        ['ShowWindow',       'ShowWindow',       'LL',   'L'],
        ['MessageBox',       'MessageBox',       'ISSI', 'I']
      ])

  var hwnd = dll.FindWindow('Shell_TrayWnd', '')

  dll.MessageBox(0, 'Hide it', 'Win32Api Demo', MB_ICONINFORMATION)
  dll.ShowWindow(hwnd, SW_HIDE)

  dll.MessageBox(0, 'Show it', 'Win32Api Demo', MB_ICONINFORMATION)
  dll.ShowWindow(hwnd, SW_SHOWNORMAL)
.>


<..
【简介】
    本例是一个 Windows Api 演示程序,目的为了演示在 Nuva 语言中如何调用 Windows 的 dll 动态库。
   
    在 Nuva 语言中,调用 dll 动态库函数,需要声明这些函数的接口(具体声明的方式可以参见本例),然后直接调用即可。
   
【看点】
    1、本例首先声明了 user32 中的三个函数,分别给出其别名、函数名称、参数类型、返回类型,声明方式如下:
       win32ApiObj = System.Win32Api(dllName, funDefSet) 或者
       win32ApiObj = System.Win32Api.New(dllName, funDefSet)
       这个函数返回一个 Win32Api 对象,通过这个对象可以直接调用 dll 的函数。
       funDefSet 是一个函数集合,每个函数需要声明别名、函数名称、参数类型、返回类型信息。
       调用 dll 函数时可以直接使用别名。
       在 Nuva 语言中,dll 数据类型直接采用首字母缩写声明即可,有如下类型:
         N :Number
         L :LongWord
         I :Integer
         S :String
         P :Pointer
         C :Callback
         V :Void
       其中,Pointer 用于有返回的参数(ref param),Callback 用于回调(未实现,暂时保留)
   
    2、本例为了 WinApi 的调用,在程序开始部分声明了一些变量,这些变量都采用 WinApi 的命名;有些值是十六进制的,在 Nuva 语言中,可以采用 $ 或者 0x 开头的方式声明十六进制数字。
   
    3、程序中首先通过 FindWindow 查找任务栏的句柄,然后通过 ShowWindow 将其隐藏和显示。
   
    4、程序中还通过 MessageBox 函数弹出传统的 Windows 消息框,虽然这个消息框的灵活性远逊色与 System.Ui.ShowMessage,但是还是可以为其定制不同的消息方式。

【扩展】
    本例是一个 Windows Api 演示程序,通过声明 Windows dll 的函数接口,可以很轻易的在 Nuva 语言中调用 Windows 的 Api 函数。
   
【运行结果】
    运行这个示例,可以看到任务栏被隐藏,然后再次显示出来,同时伴随着两个消息框的弹出。

..>