网站导航免费论文 原创论文 论文搜索 原创论文 网学软件 学术大家 资料中心 会员中心 问题解答 原创论文 论文素材 设计下载 最新论文 下载排行 论文上传 在线投稿 联系我们
返回网学首页
网学联系
最新论文 推荐专题 热门论文 素材专题
当前位置: 网学 > 编程文档 > DELPHI > 正文
Delphi操作系统编程
来源:Http://myeducs.cn 联系QQ:点击这里给我发消息 作者: 用户投稿 来源: 网络 发布时间: 12/10/12
下载{$ArticleTitle}原创论文样式
:
HINSTANCE hKernelLib;
pRegFunction RegisterServiceProcess;
用于记录从DLL加入的函数信息。
然后在主Form的构造代码中加入如下代码:
hKernelLib = LoadLibrary("kernel32.dll");
if(hKernelLib)
{
RegisterServiceProcess =
(pRegFunction)GetProcAddress(hKernelLib,
"RegisterServiceProcess");
if(RegisterServiceProcess)
RegisterServiceProcess(GetCurrentProcessId(),RSP_SIMPLE_SERVICE);
}
这段代码主要是把当前进程变为一个系统服务,从而在任务列表中把程序隐藏起来,相应的在构析代码中加入
if(hKernelLib)
{
if(RegisterServiceProcess)
RegisterServiceProcess(GetCurrentProcessId(),
RSP_UNREGISTER_SERVICE);
FreeLibrary(hKernelLib);
}
这样处理之后,程序就不在任务列表中出现了,但仍可用EnumWindows函数查出来。

如何决定Windows的版本
   Windows具有多个版本,一个应用程序或者具有运行在多个Windows版本下的灵活性,或者通过条件编译指令,编译成只能在一个操作平台下工作。
  下面介绍一种方法,可以使应用程序能动态地决定Windows操作系统的版本。应用程序通过调用Windows API函数GetVersionEx可以获得Windows的版本信息,该函数使用一个TOSVersionInfo类的变参,所有Windows版本信息就包含在其中,其结构如下:
   typedef struct _OSVERSIONINFO{
           DWORD dwOSVersionInfoSize; //结构的大小
           DWORD dwMajorVersion; //主版本
           DWORD dwMinorVersion; //副版本
           DWORD dwBuildNumber; //建立版本
           DWORD dwPlatformId; //操作平台标识
           TCHAR szCSDVersion[ 128 ]; //版本标识字符串 } OSVERSIONINFO;
  下面是使用该函数的一个例子:
   procedure TForm1.Button1Click(Sender: TObject);
   var VersionInfo: TOSVersionInfo;
   begin
    VersionInfo.dwOSVersionInfoSize := Sizeof(TOSVersionInfo);
    GetVersionEx(VersionInfo);
    case VersionInfo.dwPlatformID of
     VER_PLATFORM_WIN32S: Do_SomeThing;
     VER_PLATFORM_WIN32_WINDOWS: Do_SomeOtherThing;
     VER_PLATFORM_WIN32_NT: Do_SomeThingElse;
    end;
   end;

内存知多少?
   下面介绍一种方法可以决定系统内存的多少、使用状态等信息。更重要的是,应用程序可以利用这项技术来决定客户机的可用内存的大小,利用这些信息,应用程序可以动态地优化程序的性能。例如,如果有足够的内存可以利用双缓存优化位图的操作。
   利用Windows API函数GlobalMemoryStatus可以完成上述功能。GlobalMemoryStatus接收一个类型为TMemoryStatus的变参,通过这个参数就可以获得Windows当前的内存状态。TMemoryStatus的结构如下:
    typedef struct _MEMORYSTATUS { // mst
           DWORD dwLength; // sizeof(MEMORYSTATUS),该记录结构的大小
           DWORD dwMemoryLoad; // 使用内存所占百分比
           DWORD dwTotalPhys; // 物理内存的字节数
           DWORD dwAvailPhys; // 自由物理可用内存字节数
           DWORD dwTotalPageFile; // 页文件字节数 
           DWORD dwAvailPageFile; // 页文件的自由字节数
           DWORD dwTotalVirtual; // 地址空间的用户字节数
           DWORD dwAvailVirtual; // 自由用户字

网学推荐

免费论文

原创论文

浏览:
设为首页 | 加入收藏 | 论文首页 | 论文专题 | 设计下载 | 网学软件 | 论文模板 | 论文资源 | 程序设计 | 关于网学 | 站内搜索 | 网学留言 | 友情链接 | 资料中心
版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
Copyright 2008-2015 myeducs.Cn www.myeducs.Cn All Rights Reserved
湘ICP备09003080号