小码哥

谁谓河广,一苇杭之

   :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理 ::
  7 随笔 :: 17 文章 :: 74 评论 :: 0 Trackbacks
办公室通过路由器上网,所以不能直接远程桌面登录到自己计算机上,办公室的人都想在宿舍登录到自己的计算机上工作学习,所以可以简单的将路由器的3389端口(windows远程桌面默认使用3389端口)映射到自己的IP上,同时修改其他人计算机的远程桌面端口,然后再相应的将路由器端口映射到自己的IP上即可。
修改远程桌面端口需要修改注册表中的两个值:
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp]
"PortNumber"=dword:00000d3d

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\Wds\rdpwd\Tds\tcp]
"PortNumber"=dword:00000d3d

修改两个值,十进制是0-65535,双字十六进制是0x00000000-0x0000FFFF,推荐修改为1024以上。

如何使用windows api编写一个小程序来修改端口呢?接下来就详细的讲讲这个程序应该如何实现,另外在讨论一下如何使用windows api编写简单的windows程序。

下载开源的windows api集成开发环境Code::Blocks (访问Code::Blocks主页)
建议下载集成mingw的CodeBlocks,这样就不用单独下载安装mingw了,如果不知道什么是mingw,赶紧google一下看看吧。配置好开发环境后,就可以开始下一步啦。

启动Code::Blocks,然后新建一个Win32 GUI Project,这样IDE会自动构建一个对话框,而且程序的基本结构也就构造好了。程序的入口就是WinMain函数,然后就可以在这个基础之上编写我们的程序了。

先确定这个程序有几个窗口,然后修改resource.rc文件,资料都可以去MSDN查找
resource.rc

resource.rc文件很简单,包括两个对话框,同时对话框里包括了一些简单的控件。

修改resource.h文件,在其中添加一些控件的预定义
resource.h

编写一些简单的工具函数,主要实现2进制、10进制和16进制之间的相互转换,和一些输入的校验。这个程序做的不是很完善,没有校验一些输入数据。

这里是utils.h文件(H代表16进制,D代表10进制,B代表2进制)
utils.h

这里是utils.c文件
utils.c

最后是主程序main.c

main.c


关于使用windows api操作注册表需要注意的是:

1.先打开注册表,获得注册表的句柄,代码为:
1 //打开注册表
2             RegOpenKeyEx(HKEY_LOCAL_MACHINE,"SYSTEM\\CurrentControlSet\\Control\\Terminal Server\\Wds\\rdpwd\\Tds\\tcp",0,KEY_ALL_ACCESS,&wds);
3             RegOpenKeyEx(HKEY_LOCAL_MACHINE,"SYSTEM\\CurrentControlSet\\Control\\Terminal Server\\WinStations\\RDP-Tcp",0,KEY_ALL_ACCESS,&winstations);


2.然后在读入注册表的值或是写入注册表的值

例如读取PortNumber的值到变量value中:

 //读取注册表的值
            DWORD value = 0;
            DWORD dwType 
= REG_DWORD;
            DWORD dwSize 
= sizeof(DWORD);
            RegQueryValueEx(wds,
"PortNumber",NULL,&dwType,(LPBYTE)&value, &dwSize);


例如写值到PortNumber中:

int port = 3389



RegSetValueEx(wds,
"PortNumber",0,REG_DWORD,(LPBYTE)&port, sizeof(DWORD)) 

 

这里是最终程序的截图,[下载这个程序]

 

posted on 2008-12-02 18:24 小码哥 阅读(2604) 评论(0)  编辑  收藏 所属分类: windows apiC语言

只有注册用户登录后才能发表评论。


网站导航: