Windows API(C#)
jingang123gz
热爱C#编程
展开
-
C#无边框窗体移动的三种方法
1.重写wndProc代码: protected override void WndProc(ref Message m){ const int WM_NCHITTEST = 0x84; const int HTCLIENT = 0x01; const int HTCAPTION = 0x02; if (m.Msg ==转载 2008-09-03 23:06:00 · 2072 阅读 · 2 评论 -
通过win32api让c#控制Windows任务栏
如果你要在你的C#程序中控制Windows的任务栏,有两个Windows api 可以帮到你!他们就是 FindWindowA 和 ShowWindowC#中声明如下:using System.Runtime.InteropServices;[DllImport("user32.dll", EntryPoint = "FindWindowA")]public static转载 2008-07-17 21:41:00 · 670 阅读 · 0 评论 -
Windows API函数大全---附:windows运行命令详解
1. API之网络函数 WNetAddConnection 创建同一个网络资源的永久性连接 WNetAddConnection2 创建同一个网络资源的连接 WNetAddConnection3 创建同一个网络资源的连接 WNetCancelConnection 结束一个网络连接转载 2008-07-17 07:51:00 · 939 阅读 · 0 评论 -
c#如何限制程序内存使用的大小
c#如何限制程序内存使用的大小 c#虽然内置垃圾回收机制,但是并不能解决程序占用内存庞大的问题,如果我们仔细观察任务管理器,我们会发现一个程序如果最小化的时候,它所占用的会骤然减小,这时操作系统会把程序用不到的内存暂时放到虚拟内存中,当我们再把程序最大化时,发现内存并没有完全的从虚拟内存调到内存中来,是因为操作系统的内存管理机制只调用目前需要的,那么剩下的,有可能将来调用,有可能根本没转载 2008-07-16 20:57:00 · 1968 阅读 · 1 评论 -
[转载来的]P/Invoke使用Win32非托管函数
我们将在下边深入探讨在C#中使用Win32和其他库非.net托管函数的方法。 C# 用户常提出两个问题:“为什么要另外编写代码来使用windows内置功能?在框架中为什么没有相应的内容为我完成这一任务?”当框架小组构建他们的 .NET 部分时,他们评估了为使 .NET 程序员可以使用 Win32 而需要完成的工作,结果发现 Win32 API 集非常庞大。他们没有足够的资源为所有 Wi转载 2008-07-16 18:56:00 · 322 阅读 · 0 评论 -
C# winform中不规则窗体制作的解决方案(已经解决24位色以上不能正常显示问题)
作者:杨丹 相信每个编程爱好者都希望自己的程序不仅性能优越而且有一个美观的界面,一个区别于别人的程序的个性化的界面。然而以前烦琐的API调用和大量的代码使大家望而却步。现在好了,在C#中通过少量的代码就可以实现不规则窗体的制作。如果您有兴趣就接着往下看吧。 一、在说我用的方法前,我不得不说一下另一种方法,这种方法在实现不规则窗体自身显示效果(即除开窗体的移动、最大最小话、关闭等)时是不用编代码的转载 2008-07-16 17:49:00 · 547 阅读 · 0 评论 -
我的 WinClock 项目系列之二 (功能细节,在Windows API 里面查找需要的功能)
1. 不规则窗口的创建 方法一: 让图片的背景色与显示部分的颜色明显不同,将 FormBorderStyle 属性设置为 None。 将窗体的 BackgroundImage 属性设置为先前创建的位图文件。 设置窗体的 BackColor 图片 背景色,在窗体的构造函数里添加 this.TransparencyKey = this.BackColor;转载 2008-07-16 17:45:00 · 396 阅读 · 1 评论 -
运用API函数获取系统信息
API函数是构筑Windows应用程序的基石,是Windows编程的必备利器。每一种Windows应用程序开发工具都提供了间接或直接调用了Windows API函数的方法,或者是调用Windows API函数的接口,也就是说具备调用动态连接库的能力。Visual C#和其它开发工具一样也能够调用动态链接库的API函数。本文中笔者就结合实例向大家介绍在Visual C#中如何调用各种转载 2008-07-14 12:21:00 · 278 阅读 · 0 评论 -
WPF中嵌入普通Win32程序的方法
公司现在在研发基于.Net中WPF技术的产品,由于要兼容旧有产品,比如一些旧有的Win32程序、第三方的Win32程序等等,还要实现自动登录这些外部Win32程序,因此必须能够将这些程序整合到我们的系统中来,让使用者看起来它们好像是一个程序。 在MSDN中有专门的章节提到了在WPF中嵌入Win32控件的办法,那就是使用 HwndHost ,只要把 Win32控件的句柄传递给 HwndH转载 2008-07-17 21:39:00 · 1439 阅读 · 1 评论 -
Windows API 技巧集
一)不规则窗口 Windows提供的只是标准的矩形窗口,要想建立一个不规则的窗口就需要调用API函数来实现。建立一个不规则的窗口,一般是先用创建区域的API函数建立一个不规则的区域,再用API函数SetWindowRgn改变窗口的区域。这些API函数在C++ Builder中包含在头文件wingdi.h和winuser.h里面,因此,要使用这些API函数就要先在程序头部加上包含头文件的语转载 2008-07-17 07:49:00 · 1078 阅读 · 1 评论 -
用C#调用Windows API和其它进程通信
设计初衷: 公司为了便于网络管理,使用了IEEE 802.1X的网络访问控制,这样每次开机需要输入两次登录密码,于是我就研究了一下用C#来帮我输入第二此登录的密码 设计思想: 主要是通过调用Windows API中的一些方法,主要使用的也就是FindWindow,FindWindowEx和SendMessage这三个函数,循环遍历当前的所有窗口,找到目标窗口和进程以后把保存在特定位置的转载 2008-07-16 20:38:00 · 609 阅读 · 0 评论 -
从局域网中找出所有的机器
下面的5行代码完成了从局域网中找出所有的机器 foreach(DirectoryEntry domain in root.Children){ lb_pcName.Items.Add("★★★"+domain.Name+"★★★"); foreach(DirectoryEntry pc in domain.Children) { if(pc.Name!="Schema")转载 2008-07-14 12:33:00 · 344 阅读 · 0 评论 -
制作不可移动窗体
其实,在制作不可移动窗体是非常简单的,我们只要涉及到一个消息--WM_WINDOWPOSCHANGING。这个消失是发生在窗口改变或者窗口移动时产生的,那么我们想要制作不可移动窗体,只要修改此消息的过程就可以了。 因为在此消息中包含有,窗体新的位置和大小,所以当系统收到这个消息时,它就会把原来的窗口销毁掉,然后重绘窗口的新位置和大小。所以,我们只要把新转载 2008-07-14 16:44:00 · 468 阅读 · 0 评论 -
隐藏当前进程
函数状态: 正式函数函数功能描述:RegisterServiceProcess函数注册或者取消一个进程为服务。当用户注销之后,服务进程仍可运行。函数原型:DWORD RegisterServiceProcess( DWORD dwProcessId, DWORD dwType );参数:dwProcessId 指定注册为服务的进程标识(Id),当前进程可原创 2008-08-21 21:18:00 · 1397 阅读 · 1 评论 -
在Visual C#程序中使用系统热键
在Visual C#程序中使用系统热键 <!--google_ad_client = "pub-8607259453615206";//336x280, 创建于 07-12-21google_ad_slot = "9108644429";google_ad_width = 336;google_ad_height = 280;//-->atop转载 2008-07-19 12:21:00 · 665 阅读 · 1 评论 -
纯C#钩子实现及应用
关于钩子请参见微软中国社区中《HOOK专题》一文。纯C#钩子(Hook)实现要实现系统钩子其实很简单,调用三个Win32的API即可。SetWindowsHookEx 用于设置钩子。(设立一道卡子,盘查需要的信息) [DllImport( "user32.dll", CallingConvention = CallingConvention.StdCall )]转载 2008-07-19 12:05:00 · 868 阅读 · 0 评论 -
窗口和消息
窗口和消息整理编译 在前两章,程序使用了同一个函数MessageBox来向使用者输出文字。MessageBox函数会建立一个「窗口」。在Windows中,「窗口」一词有确切的含义。一个窗口就是屏幕上的一个矩形区域,它接收使用者的输入并以文字或图形的格式显示输出内容。MessageBox函数建立一个窗口,但这只是一个功能有限的特殊窗口。原创 2008-07-20 14:39:00 · 892 阅读 · 0 评论 -
Windows_API_函数 参考大全
1. API之网络函数 WNetAddConnection 创建同一个网络资源的永久性连接 WNetAddConnection2 创建同一个网络资源的连接 WNetAddConnection3 创建同一个网络资源的连接 WNetCancelConnection 结束一个网络连接 WNetCancelConnection2 结束一个网络连接 WNetCloseEnum 结束一次枚举操作 WNetC原创 2008-07-20 14:22:00 · 1598 阅读 · 0 评论 -
系统钩子介绍
一、 介绍 本文将讨论在.NET应用程序中全局系统钩子的使用。为此,我开发了一个可重用的类库并创建一个相应的示例程序(见下图)。 你可能注意到另外的关于使用系统钩子的文章。本文与之类似但是有重要的差别。这篇文章将讨论在.NET中使用全局系统钩子,而其它文章仅讨论本地系统钩子。这些思想是类似的,但是实现要求是不同的。 二、 背景 如果你对Windows系统钩子的概念不熟悉,让我作一下简短的转载 2008-07-16 20:55:00 · 442 阅读 · 0 评论 -
C# API 调用格式和参数类型
一、调用格式using System.Runtime.InteropServices; //引用此名称空间,简化后面的代码//使用DllImportAttribute特性来引入api函数,注意声明的是空方法,即方法体为空。[DllImport("user32.dll")]public static extern ReturnType FunctionName(ty转载 2008-07-16 19:02:00 · 456 阅读 · 0 评论 -
C# 实现屏幕键盘 (ScreenKeyboard)
要实现一个屏幕键盘,需要监听所有键盘事件,无论窗体是否被激活。因此需要一个全局的钩子,也就是系统范围的钩子。什么是钩子(Hook) 钩子(Hook)是Windows提供的一种消息处理机制平台,是指在程序正常运行中接受信息之前预先 启动的函数,用来检查和修改传给该程序的信息,(钩子)实际上是一个处理消息的程序段,通 过系统调用,把它挂入系统。每当特定的消息发转载 2008-07-16 17:40:00 · 486 阅读 · 0 评论 -
C#创建不规则窗体代码(Win API应用)
/* * ***********************警告******************************************** * 如果引用请不要删除本注释! * 本代码受版权法和国际条约保护,如未经授权擅自复制或散发本代码(或其中任何部份), * 将受到严厉的法律制裁,并将在法律许可的最大限度内受到起诉! * 版权所转载 2008-07-15 02:04:00 · 318 阅读 · 0 评论 -
使用API函数播放MP3等音频文件的类设计(C#)
C#没有提供播放MP3等音频文件的类,要编写播放MP3等音频文件程序,必须使用第三方控件或类。本文使用API函数mciSendString,编写一个播放MP3等音频文件的类。 具体源码如下:一、使用API函数mciSendString构成的媒体播放类。using System;using System.Runtime.InteropServices; using System.Text; usin转载 2008-07-14 17:22:00 · 264 阅读 · 0 评论 -
一个窗口居中的例子(Win32)
要实现窗口居中显示并不难,只要在窗体创建的时候我们设置窗口的位置就可以了.在这里我们主要用到3个API函数,分别是:GetSysMetrics,GetWindowRect,SetWindowPos.我们用GetSysMetrics来获的屏幕的宽度和高度,然后用GetWindowRect来获取窗口的坐标.通过运算后计算出居中窗口的位置,最后用SetWindowPos来设置窗体的位置.整个过程就是如转载 2008-07-14 16:43:00 · 1800 阅读 · 0 评论 -
利用Windows API获得系统高级功能
利用Windows API获得系统高级功能 邹刚 VB无疑是最先进的编程工具之一,但在涉及windows 32位系统的核心编程方面——譬如一些高级功能的实现上,它仍然显得有些力不从心,这需要我们充分利用vb的强大的Windows API函数调用能力来弥补。以下代码将向您展示如何利用Windows API控制系统托盘(图标)区、开始菜单、任务栏以及禁用/起用ctrl-alt-del、退出网转载 2008-07-16 20:36:00 · 519 阅读 · 0 评论 -
C#中调用API
C#中调用API 介绍 API(Application Pr转载 2008-07-12 12:18:00 · 377 阅读 · 0 评论 -
如何在C#中使用Win32和其他库之三(转)
具有内嵌字符数组的结构某些函数接受具有内嵌字符数组的结构。例如,GetTimeZoneInformation() 函数接受指向以下结构的指针:typedef struct _TIME_ZONE_INFORMATION { LONG Bias; WCHAR StandardName[ 32 ]; SYSTEMTIME StandardDate原创 2008-07-12 11:58:00 · 266 阅读 · 0 评论 -
如何在C#中使用Win32和其他库之一(转)
如何在C#中使用Win32和其他库之一(转) =========================================================== 作者: hphubei(http://hphubei.itpub.net)发表于: 2007.07.14 12:42分类: ASP.NET技巧 出处: http://hphubei.itpub.net/post/2转载 2008-07-12 11:54:00 · 306 阅读 · 0 评论 -
C#中调用Windows API的要点
在.Net Framework SDK文档中,关于调用Windows API的指示比较零散,并且其中稍全面一点的是针对Visual Basic .net讲述的。本文将C#中调用API的要点汇集如下,希望给未在C#中使用过API的朋友一点帮助。另外如果安装了Visual Studio .net的话,在C:/Program Files/Microsoft Visual Studio .NET/转载 2008-07-12 11:07:00 · 307 阅读 · 0 评论 -
用Visual C#调用Windows API函数
Api函数是构筑Windws应用程序的基石,每一种Windows应用程序开发工具,它提供的底层函数都间接或直接地调用了Windows API函数,同时为了实现功能扩展,一般也都提供了调用WindowsAPI函数的接口, 也就是说具备调用动态连接库的能力。Visual C#和其它开发工具一样也能够调用动态链接库的API函数。.NET框架本身原创 2008-07-12 10:46:00 · 307 阅读 · 0 评论 -
如何在C#中使用Win32和其他库之二(转)
简单字符串下面是一个接受字符串参数的函数的简单示例:BOOL GetDiskFreeSpace( LPCTSTR lpRootPathName, // 根路径 LPDWORD lpSectorsPerCluster, // 每个簇的扇区数 LPDWORD lpBytesPerSector, // 每个扇区的字节数 LPDWORD lpNumb转载 2008-07-12 11:57:00 · 247 阅读 · 0 评论 -
C#程序模拟鼠标操作 [Simulate Mouse Movement and Click Programmatically]
Simulate Mouse Movement and Click Programmatically 有时,我们需在我们的程序中模拟鼠标的移动、点击等动作。——比如,一个再现用户操作的宏,或者一个演示操作方法的Demo程序。那么,我们在.Net中如何实现呢? .Net并没有提供改变鼠标指针位置、模拟点击操作的函数;但是Windows API提供了。其中一个是: 复制转载 2008-07-12 11:48:00 · 639 阅读 · 0 评论 -
用C#获取CPU编号、硬盘编号等系统有关环境、属性
用C#获取CPU编号、硬盘编号等系统有关环境、属性如果利用C#获取系统有关环境和属性,这个也是在网上问得比较多的问题,不过大部分只有提问没有回答,最近正好想做有关方面的东西,整理了一下,提供给大家,希望能给大家提供参考意见:首先需要定义几个结构(struct) ,便于DllImport作为返回参数调用。以下是代码:CpuInfo.csusing System;using System.Co转载 2008-07-12 12:27:00 · 587 阅读 · 1 评论 -
C#调用Windows API函数,实现透明窗体 - 转
这篇文章不是Windows Mobile的,而是Win32的。这篇文章主要介绍一下C#下如何调用Windows API函数,这里也想说一下,Windows Mobile编程不能把眼光只局限于手机,手机与PC端相结合的程序也是很有挑战力、很有市场的。所以,这也是我写这篇文章的原因之一。 做Delphi的时候,实现窗体透明很简单,因为Delphi对Windows API的封装很好。不转载 2008-07-12 12:11:00 · 1183 阅读 · 0 评论 -
如何在C#中使用 Win32和其他库 (转)
如何在C#中使用 Win32和其他库 这一次我们将深入探讨如何在 C# 中使用 Win32 和其他现有库。 C# 用户经常提出两个问题:“我为什么要另外编写代码来使用内置于 Windows 中的功能?在框架中为什么没有相应的内容可以为我完成这一任务?”当框架小组构建他们的 .NET 部分时,他们评估了为使 .NET 程序员可以使用 Win32 而需要完成的工转载 2008-07-12 12:01:00 · 305 阅读 · 0 评论 -
C# 中通过 P/Invoke 调用Win32 DLL
在 C# 中通过 P/Invoke 调用Win32 DLL 发布日期 : 1/13/2005 | 更新日期 : 1/13/2005http://msdn.microsoft.com/zh-cn/library/aa686045.aspxJason Clark 下载本文的代码: NET0307.exe (133KB) 我在自己最近的编程中注意到一个趋势,正是这个趋转载 2008-07-12 12:20:00 · 442 阅读 · 0 评论 -
在C#中调用windows API函数
Api函数是构筑Windws应用程序的基石,每一种Windows应用程序开发工具,它提供的底层函数都间接或直接地调用了Windows API函数,同时为了实现功能扩展,一般也都提供了调用WindowsAPI函数的接口, 也就是说具备调用动态连接库的能力。Visual C#和其它开发工具一样也能够调用动态链接库的API函数。.NET框架本身提供了这样一种服务,允许受管辖的代码调用动态链接库中实现的非转载 2008-07-12 12:24:00 · 408 阅读 · 0 评论 -
API之网络函数
1. API之网络函数WNetAddConnection 创建同一个网络资源的永久性连接 WNetAddConnection2 创建同一个网络资源的连接 WNetAddConnection3 创建同一个网络资源的连接 WNetCancelConnection 结束一个网络连接 WNetCancelConnection2 结束一个网络连接 WNetCloseEnum 结束一次枚举操作 WNetC转载 2008-07-16 20:32:00 · 501 阅读 · 0 评论 -
C# API 如何保证使用托管对象的平台调用成功
三、如何保证使用托管对象的平台调用成功?如果在调用平台 invoke 后的任何位置都未引用托管对象,则垃圾回收器可能将完成该托管对象。这将释放资源并使句柄无效,从而导致平台invoke 调用失败。用 HandleRef 包装句柄可保证在平台 invoke 调用完成前,不对托管对象进行垃圾回收。例如下面:FileStream fs = new FileStream( "a.tx转载 2008-07-16 19:01:00 · 351 阅读 · 0 评论 -
【转载来的】关于句柄的一些知识
句柄的本质 一、书上定义: >(Microsoft Press,by Richard Wilton) 在Windows环境中,句柄是用来标识项目的,这些项目包括:模块(module)、任务(task)、实例 (instance)、文件(file)、内存块(block of memory)、菜单(menu)、控制(control)、字体(fon转载 2008-07-16 18:54:00 · 331 阅读 · 0 评论