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

推荐订阅源

P
Privacy International News Feed
H
Help Net Security
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
Blog — PlanetScale
Blog — PlanetScale
T
The Blog of Author Tim Ferriss
Y
Y Combinator Blog
Microsoft Security Blog
Microsoft Security Blog
Stack Overflow Blog
Stack Overflow Blog
Jina AI
Jina AI
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
D
Docker
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
I
InfoQ
Engineering at Meta
Engineering at Meta
H
Heimdal Security Blog
月光博客
月光博客
有赞技术团队
有赞技术团队
S
SegmentFault 最新的问题
V
Vulnerabilities – Threatpost
K
Kaspersky official blog
C
Cisco Blogs
Microsoft Azure Blog
Microsoft Azure Blog
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
MongoDB | Blog
MongoDB | Blog
C
CXSECURITY Database RSS Feed - CXSecurity.com
L
LINUX DO - 热门话题
H
Hackread – Cybersecurity News, Data Breaches, AI and More
T
Tor Project blog
M
MIT News - Artificial intelligence
L
LINUX DO - 最新话题
P
Privacy & Cybersecurity Law Blog
Google DeepMind News
Google DeepMind News
宝玉的分享
宝玉的分享
Security Archives - TechRepublic
Security Archives - TechRepublic
IT之家
IT之家
博客园_首页
F
Full Disclosure
T
Threatpost
www.infosecurity-magazine.com
www.infosecurity-magazine.com
阮一峰的网络日志
阮一峰的网络日志
Security Latest
Security Latest
S
Security @ Cisco Blogs
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
AI
AI
Hacker News - Newest:
Hacker News - Newest: "LLM"
H
Hacker News: Front Page
A
Arctic Wolf
C
Check Point Blog
S
Securelist
A
About on SuperTechFans

博客园 - 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 函数。
   
【运行结果】
    运行这个示例,可以看到任务栏被隐藏,然后再次显示出来,同时伴随着两个消息框的弹出。

..>