我刚看到即将推出的Windows 7的一个非常有用的用户界面功能(访问http://www.gizmodo.com.au/2008/10/windows_7_walkthrough_boot_video_and_impressions-2.html并向下滚动到名为“新窗口调整大小的超级科学视频”的视频)
简而言之,您可以通过标题栏将窗口拖动到屏幕顶部以使其最大化,将其向下拖动以恢复并将其拖动到屏幕的左边缘或右边缘以使其捕捉到位置与你拖动它的边缘相对应,并调整大小以占据屏幕的一半。
现在我知道有一堆基于键盘的应用程序可以执行“类似”的操作,但我还没有看到基于鼠标的程序只执行上述操作,简单,有用,仅此而已。如果您知道一个(或者足够聪明地写一个),请发布URL:)
无论如何,如果我想尝试编写一个小应用程序来执行此操作,我有一个问题:
如果我想尝试编写一个小应用程序来执行此操作,我可以将其编写为.NET应用程序吗?我想连接Windows的窗口拖放处理是相当低级的,可能不是可以在C#.NET中完成的东西?
这里的任何聪明人都能在午餐时间敲出这样的小应用吗? ;)我确信任何模仿Windows 7功能的东西都会非常受欢迎,至少在Windows 7推出之前。
编辑:AeroSnap人员(http://www.aerosnap.de/index_eng.htm)在实现此功能方面做得很好,并根据下载次数判断,这是一个受欢迎的功能!
答案 0 :(得分:6)
有一种正式方式:Windows API Code Pack
适用于Microsoft®.NETFramework的Windows®API代码包提供了一个源代码库,可用于从托管代码访问某些新的Windows 7功能(以及旧版Windows操作系统的某些现有功能)。目前,.NET Framework中的开发人员无法使用这些Windows功能。
此版本(v1.0)支持的各个功能包括:
Windows 7任务栏跳转列表,图标叠加,进度条,选项卡式缩略图和缩略图工具栏。 Windows 7库,已知文件夹,非文件系统容器。 Windows Shell搜索API支持,Shell命名空间实体的层次结构以及Shell对象的拖放功能。 资源管理器浏览器 壳牌物业系统。 Windows Vista和Windows 7通用文件对话框,包括自定义控件。 Windows Vista和Windows 7任务对话框。
答案 1 :(得分:1)
如果您的目标是创建一个适用于所有应用程序以及桌面上所有窗口的挂钩,那么您就无法使用托管代码程序集。您必须使用生成传统DLL(如C ++)的语言编写。
为了挂钩系统级别然后挂钩到所有正在运行的应用程序,你必须提供一个可以放入所有正在运行的aps的地址空间的dll。我冒昧地说,大多数人的日常生活中很大一部分都不是托管的.net框架应用程序。
答案 2 :(得分:0)
这是一个很好的参考网站,可以在.NET应用程序中通过PInvoke使用Windows API。
答案 3 :(得分:0)
感谢您抽出宝贵时间回答。我将使用PInvoke结帐。我假设我需要点击Windows API以挂钩到窗口以及实际执行拖动窗口的移动/调整大小?
答案 4 :(得分:0)
尝试查看这些文章:
答案 5 :(得分:0)
尝试检查这个,你有解释,源代码和官方MSDN文档的参考。
http://www.josefcobonnin.com/post/2007/06/19/Hook-Keyboard-and-Mouse.aspx
答案 6 :(得分:-1)
是的,您可以通过PInvoke从C#执行此操作。 Tbh,学习这种API的最好方法是查看像Bblean这样的东西。这将向您展示您需要知道的内容并将其暴露给PInvoke非常简单。