您的位置:首页 >> 编程开发 >> Visual Basic >> 系统 >> 正文
RSS
 

Windows未公开函数揭密——之一

http://www.rdxx.com 06年12月19日 04:23 互联网 我要投稿

关键词: Windows , 函数
 

Windows未公开函数揭密——之一

什么是未公开函数?

       对于WindowsAPI函数调用相信大家已经不会陌生了。API函数调用是通过在VB中定义和调用Windows动态连接库中的函数从而扩展VB程序的功能。API函数的定义和调用方法在微软的开发工具中都有详细的说明。

       那么什么是“未公开”函数呢?微软为了某种目的。对于一些封装在系统中的函数没有在任何开发文档提供任何函数说明和定义。而这些函数有很多都是很有用的。所幸的是一些有心之人对Windows系统动态连接库做了十分详细的分析,从而将这些未公开函数公开以供广大开发人员共享(我对他们的感激之情就象滔滔江水,绵绵不绝

       好了,废话少说,言归正传,这里首先向大家介绍的是Windows下未公开的关闭Windows的函数。在Windows API函数中虽然提供了ExitWindowsEx这样的API函数,但是在有一些程序中我们需要象一些程序安装完毕那样提示用户重新启动计算机或者不重新启动计算机。或者要在程序中弹出关闭系统对话框。要实现这些功能就要使用Windows未公开函数了。下面来看程序

首先建立一个新的工程文件,在工程文件中加入一个Module文件。在Module文件中加入以下代码:

 

Option Explicit

  

Public bIsWinNT As Boolean

 

'下面就是未公开的函数定义,注意在Alias之后没有使用函数的真正名字

'而是用了函数编号,这是因为微软没有公开函数名

Declare Function SHRestartSystemMB Lib "shell32" _

       Alias "#59" _

      (ByVal hOwner As Long, _

       ByVal sExtraPrompt As String, _

       ByVal uFlags As Long) As Long

Declare Function SHShutDownDialog Lib "shell32" _

        Alias "#60" _

        (ByVal YourGuess As Long) As Long

 

Declare Function GetVersionEx Lib "kernel32" _

        Alias "GetVersionExA" _

        (lpVersionInformation As OSVERSIONINFO) As Long

                                    

Type OSVERSIONINFO

        dwOSVersionInfoSize As Long

        dwMajorVersion As Long

        dwMinorVersion As Long

        dwBuildNumber As Long

        dwPlatformId As Long

        szCSDVersion As String * 128

End Type

  

Public Const EWX_LOGOFF = 0

Public Const EWX_SHUTDOWN = 1

Public Const EWX_REBOOT = 2

Public Const EWX_FORCE = 4

Public Const EWX_POWEROFF = 8

Public Const shrsExitNoDefPrompt = 1

Public Const shrsRebootSystem = 2

  

Const VER_PLATFORM_WIN32s = 0

Const VER_PLATFORM_WIN32_WINDOWS = 1

Const VER_PLATFORM_WIN32_NT = 2

  

Declare Sub CopyMemory Lib "kernel32" _

9 7 3 1 2 3 4 8 :

 
 
标签: Windows , 函数 打印本文
 
 
  热点搜索
 
 
 



Valid XHTML 1.0 Transitional
Copyright ©2005 - 2008 Rdxx.Com,All Rights Reserved
收藏本页
收藏本站