| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1693 人关注过本帖
标题:[原创]困扰---代理服务器的设置(利用注册表)
只看楼主 加入收藏
zzcko
Rank: 1
等 级:新手上路
帖 子:20
专家分:0
注 册:2006-8-13
收藏
 问题点数:0 回复次数:11 
[原创]困扰---代理服务器的设置(利用注册表)
*/ --------------------------------------------------------------------------------------
*/ 出自: 编程中国 http://www.bc-cn.net
*/ 作者: zzcko
*/ 时间: 2007-8-21 编程论坛首发
*/ 声明: 尊重作者劳动,转载请保留本段文字
*/ --------------------------------------------------------------------------------------


以下的程序是编译通过的(在WIN-TCH上)


/* Agent server setting *
* --------@author zzc */

#include "Stdio.h"
#include "Stdlib.h"
#include "Caonio.h"
#include "time.h"

void setting()
{
char *p,*q;
char t1[20]="\"",t2[20]="\"";
char str1[20];
char str2[10];
char str3[200]="echo \"ProxyServer\"=\"";
p=str1;
q=str2;
system("cls");
printf("Please input agent server IP address(Default 10.38.84.248):");
gets(str1);
if(strlen(str1)==0)
p="10.38.84.248";
printf("Please input port number(Default 808):");
gets(str2);
if(strlen(str2)==0)
q="808";
strcat(str3,p);
strcat(str3,":");
strcat(str3,q);
strcat(str3,"\" >>set.reg");
system("echo Windows Registry Editor Version 5.00 >set.reg");
system("echo.>>set.reg");
system("echo [HKEY_LOCAL_MACHINE\\SOFTWARE\\Policies\\Microsoft\\Internet Explorer\\Control Panel] >>set.reg");
system("echo \"Proxy\"=dword:00000000 >>set.reg");
system("echo.>>set.reg");
system("echo [HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Internet Settings] >>set.reg");
system("echo \"ProxyEnable\"=dword:00000001 >>set.reg");
system(str3);
system("echo.>>set.reg");
system("echo.>>set.reg");
system("reg import set.reg");
system("del set.reg");
printf("Press any key return main menu!");
getch();
}

void unset()
{
system("cls");
system("echo Windows Registry Editor Version 5.00 >unset.reg");
system("echo.>>unset.reg");
system("echo [HKEY_LOCAL_MACHINE\\SOFTWARE\\Policies\\Microsoft\\Internet Explorer\\Control Panel] >>unset.reg");
system("echo \"Proxy\"=dword:00000001 >>unset.reg");
system("echo.>>unset.reg");
system("echo [HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Internet Settings] >>unset.reg");
system("echo \"ProxyEnable\"=dword:00000000 >>unset.reg");
system("echo \"ProxyServer\"=\" : \" >>unset.reg");
system("echo.>>unset.reg");
system("echo.>>unset.reg");
system("reg import unset.reg");
system("del unset.reg");
printf("Press any key return main menu!");
getch();
}

void main()
{
int sel;
while(1)
{
system("cls");
printf("Agent server setting\n\t\t ---@Author ZZC\n\n1.Agent server setting\n2.Close agent\n3.Exit\n");
scanf("%d",&sel);
switch(sel)
{
case 1:
setting();
break;
case 2:
unset();
break;
case 3:
exit(0);
default :
system("cls");
printf("Please select 1~3!\n");
printf("Press any key return main menu!");
getch();
}
}
}

搜索更多相关主题的帖子: 代理服务器 注册表 困扰 中国 
2007-08-21 07:24
lishizelibin
Rank: 2
等 级:论坛游民
帖 子:513
专家分:41
注 册:2007-5-10
收藏
得分:0 

惟有学习不断的学习!
2007-08-21 08:08
zzcko
Rank: 1
等 级:新手上路
帖 子:20
专家分:0
注 册:2006-8-13
收藏
得分:0 

上面的程序随然可以跑,但是有点绕远路的确良嫌疑.
在void setting()函数中:

system("echo Windows Registry Editor Version 5.00 >set.reg");
system("echo.>>set.reg");
system("echo [HKEY_LOCAL_MACHINE\\SOFTWARE\\Policies\\Microsoft\\Internet Explorer\\Control Panel] >>set.reg");
system("echo \"Proxy\"=dword:00000000 >>set.reg");
system("echo.>>set.reg");
system("echo [HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Internet Settings] >>set.reg");
system("echo \"ProxyEnable\"=dword:00000001 >>set.reg");
system(str3);
system("echo.>>set.reg");
system("echo.>>set.reg");
system("reg import set.reg");
system("del set.reg");

这一段的内容的意思是,我先创建一个set.reg文件,然后用reg import命令导入注册表。
但是在reg命令中有个reg add命令可以直接向注册表导入一项,直接向注册表中导入,而不必建文件。所以上面导入可以改成如下样式:

system("reg add \"HKLM\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Internet Settings\" /v proxy /t reg_dword /d 0x0");

但是改成这样后,问题出现了,win-tc编译可以通过,但是在运行时会得到如下结果:

Program too big to fit in memory

后来偶然我把上面那句改成下面的情况:

system("reg add \"HKLM\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Internet\" /v proxy /t reg_dword /d 0x0");

这样可以完成运行,也可以得到程序表达式所要的结果。即往internet项里写入了proxy值为0x0.
但我要的结果是往internet settings里写入proxy值为0x0.

后来我又做了许多测试,结果证明,只要比HKLM\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Internet的长度长一个字符,就会
产生Program too big to fit in memory的结果。

哪位高人可以解释下为什么吗?有什么好的解决办法?

2007-08-21 11:12
totohack
Rank: 1
等 级:新手上路
帖 子:133
专家分:0
注 册:2007-7-15
收藏
得分:0 
思路不错,可是,没有 注册表 怎么办

2007-08-23 11:46
zzcko
Rank: 1
等 级:新手上路
帖 子:20
专家分:0
注 册:2006-8-13
收藏
得分:0 

你说的没有注册表是什么意思?windows系统里还有没有注册表的?呵呵...

2007-08-24 07:22
静夜思
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:济南的冬天
等 级:管理员
威 望:11
帖 子:8913
专家分:2567
注 册:2004-3-25
收藏
得分:0 
编程中国原创计划及声明
  • 严肃性
    不求文章要写的多么经典,但一定要是自己的原创。求助、转载、广告等其他类型帖子冒充原创者,视用户等级禁言一段时间或封ID。

  • 本站首发
    原创帖必须是本站首发,在其他站点发布以后在本论坛发布的,我们拒绝承认为原创,一律视为转载。

  • 鼓励原创
    原创帖在发布以后,管理员通过网上划词搜索辨别是否为原创,如确定为原创,只要文章不是过于简陋就会推荐为本版精华,优秀的同时收录至本站技术教程频道。

畅所欲言
2007-08-24 16:06
Knocker
Rank: 8Rank: 8
等 级:贵宾
威 望:47
帖 子:10454
专家分:603
注 册:2004-6-1
收藏
得分:0 
奇怪,封就封了,为什么这个贴子也会有LS这个回复?难是自动处理回复的?

九洲方除百尺冰,映秀又遭蛮牛耕。汽笛嘶鸣国旗半,哀伤尽处是重生。     -老K
治国就是治吏。礼义廉耻,国之四维。四维不张,国之不国。   -毛泽东
2007-08-24 16:12
coachard
Rank: 3Rank: 3
等 级:新手上路
威 望:7
帖 子:1251
专家分:0
注 册:2007-8-12
收藏
得分:0 
这个论坛的程序很奇怪,貌似很强大。。。

哪天管理员开源,让大家学习下~~~~`

偶学编程,也许本身就是一个错。。。
2007-08-24 16:17
zzckoa
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2007-8-26
收藏
得分:0 
[QUOTE]8
[/QUOTE]
2007-08-26 20:46
zzckoa
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2007-8-26
收藏
得分:0 

[QUOTE]第 8 楼 这个论坛的程序很奇怪,貌似很强大。。。

哪天管理员开源,让大家学习下~~~~`[/QUOTE]

真的貌似很强大唉。。。

2007-08-26 20:47
快速回复:[原创]困扰---代理服务器的设置(利用注册表)
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.036443 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved