局域网中有A,B,C,D,E,………………若干台机器。在A上编写一软件,设置更改后的主页后,可以将所有网络中的机器的主页即时更改为A机器上设置的主页。是否可以实现?例如,在A机器的程序中,我写入“http://www.163.com”,点更改后,B,C,D,E…………机器上的IE主页统统变为“http://www.163.com”是否可以实现?觉得1000分不够的话,您说话。多少分都成。
解决方案 »
- mscomm给猫发AT指令
- vb编写的程序长时间运行无响应
- 在VB6.0里面,我要在PICTURE控件的图像上面,加入一段文字,怎么办?
- 音乐文件名字修改问题?谢了!
- 诚征教育部推荐教材VB编写合作伙伴,该书为高等教育出版社出版。
- 水晶报表如何才能更新问题,请教各位!
- 请教高手关于打包的问题!!!急,在线等!!!!!!
- 急:如何使listview的report中数字日期排序:如何实现? (100分)
- 请问以下文件是什么形式:二进制文件还是ASCII文件?
- 如何获得应用程序的句柄
- 1000分求网络中设置主页,UP有分,解决了立刻开帖结分。
- 一个VB问题!怎么在VB中设置一个文件的只读属性为不只读?
第一次运行程序的时候读取注册表得到默认主页信息,将该信息保存到注册表自己定义的位置。
然后将此信息保存到一个字符变量中作为核对所用。
然后用Winsock建立一个UDP协议的网络服务,比如端口是7010。如:
If Winsock1.State <> 0 Then Winsock1.Close
Winsock1.Protocol = sckUDPProtocol
Winsock1.Bind 7010用时钟监视定时获取注册表中的主页信息信息和保存的信息对比,当不一致时用Winsock使用
UDP协议广播更新的信息,如:
Winsock1.RemoteHost = "255.255.255.255"
Winsock1.RemotePort = 7010
Winsock1.SendData “更新主页|” & SaveURLInfo当收到网络信息时可以对相应的数据进行分析及处理,如:
Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
Dim NetInfo As String, CommandInfo() As String
Winsock1.GetData NetInfo, vbString, bytesTotal
CommandInfo = Split(NetInfo, "|")
Select Case CommandInfo(0)
Case "更新主页": Dim 注册表 As WshShell
Set 注册表 = New WshShell
注册表.RegWrite "HKEY_LOCAL_MACHINE\...",CommandInfo(1), _
"REG_SZ"
End Select
End Sub在每一台机子上运行此程序便可实现了每台电脑修改主页的时候全部都会一起修改,
如果想固定某台电脑,可以改一下发送的信息内容,如:Winsock1.SendData “更新主页|”& Winsock1.LocalIP & "|" & SaveURLInfo可以更具IP判断是否修改主页信息。
好了,程序已经很明了了,自己试一试吧。
我需要的是不在其他电脑上安装任何的程序来实现修改主页。因为所有的电脑上都有还原精灵,是没有办法安装任何东西的。只能在一台电脑上操作某些程序,然后通过局域网修改其他电脑的主页。
能给个具体的例子么?我不需要保存,只要能远程修改就可以
对方的电脑相连权限不够高,可能会导致修改失败。
其实不知道你会不会用API或WMI读写注册表,如果会API的话,注意一下
RegConnectRegistry函数的使用就可以了,WMI嘛就更简单了,注意你连接
资源的语句就可以了,就像输入正确的ADO连接远程SQL数据库语句一样。
给一个API的例子给你吧:
(注意:两台主机必须先相连,注意权限,如:
"CMD /C NET \\billgates /User:Administrator 12345678")Private Declare Function RegSetValueEx Lib "advapi32.dll" Alias _
"RegSetValueExA" (ByVal hKey As Long, ByVal lpValueName As String, _
ByVal Reserved As Long, ByVal dwType As Long, lpData As Any, _
ByVal cbData As Long) As Long
Private Declare Function RegConnectRegistry Lib "advapi32.dll" Alias _
"RegConnectRegistryA" (ByVal lpMachineName As String, ByVal hKey As Long, _
phkResult As Long) As Long
Private Declare Function RegCloseKey Lib "advapi32.dll" _
(ByVal hKey As Long) As Long
Private Declare Function RegOpenKey Lib "advapi32.dll" Alias _
"RegOpenKeyA" (ByVal hKey As Long, ByVal lpSubKey As String, _
phkResult As Long) As Long
Private Const HKEY_CLASSES_ROOT = &H80000000
Private Const HKEY_CURRENT_CONFIG = &H80000005
Private Const HKEY_CURRENT_USER = &H80000001
Private Const HKEY_DYN_DATA = &H80000006
Private Const HKEY_LOCAL_MACHINE = &H80000002
Private Const HKEY_PERFORMANCE_DATA = &H80000004
Private Const HKEY_USERS = &H80000003
Private Sub Command1_Click()
设置文本值 "\\billgates", "HKEY_LOCAL_MACHINE\SOFTWARE", "新文本", "哈哈"
End SubPrivate Sub 设置文本值(服务器 As String, 注册表 As String, _
键名 As String, 键值 As String)
Dim 主键箱 As Long, 注册表句柄 As Long, 分析() As String, 返回值 As Long
Dim 注册表地址 As String, 网络句柄 As Long
分析 = Split(注册表, "\")
Select Case UCase(分析(0))
Case "HKEY_CLASSES_ROOT": 主键箱 = HKEY_CLASSES_ROOT
Case "HKEY_CURRENT_USER": 主键箱 = HKEY_CURRENT_USER
Case "HKEY_LOCAL_MACHINE": 主键箱 = HKEY_LOCAL_MACHINE
Case "HKEY_USERS": 主键箱 = HKEY_USERS
Case "HKEY_CURRENT_CONFIG": 主键箱 = HKEY_CURRENT_CONFIG
Case "HKEY_DYN_DATA": 主键箱 = HKEY_DYN_DATA
End Select
注册表地址 = Right(注册表, Len(注册表) - Len(分析(0)) - 1)
返回值 = RegConnectRegistry(服务器, 主键箱, 网络句柄)
If 返回值 = 0 Then
返回值 = RegOpenKey(网络句柄, 注册表地址, 注册表句柄)
If 返回值 = 0 Then
返回值 = RegSetValueEx(注册表句柄, 键名, 0, 1, ByVal 键值, _
获取文本字节大小(键值))
RegCloseKey 注册表句柄
If 返回值 = 0 Then
MsgBox "成功"
Else
MsgBox "不能写"
End If
Else
RegCloseKey 注册表句柄
MsgBox "不能打开"
End If
Else
MsgBox "不能连接"
End If
End SubPrivate Function 获取文本字节大小(原始文本 As String) As Long
Dim X As Long, 字节数 As Long, 临时字符 As String
字节数 = 0
For X = 1 To Len(原始文本)
临时字符 = Left(原始文本, X)
临时字符 = Right(临时字符, 1)
If Asc(临时字符) < 0 Then
'处理中文
字节数 = 字节数 + 2
Else
字节数 = 字节数 + 1
'处理英文
End If
Next X
获取文本字节大小 = 字节数
End Function
<meta HTTP-EQUIV=REFRESH CONTENT='1; URL=新网址'>然后把其它机器的主页设置成你机器上的这个index.htm他们一打开就可以转向了..用程序......几乎不能实现...你可以去差一下局域网病毒的有关资料,或许能实现
只要能得到administrator的權限就有辦法搞定。
PCANYWhere
DameWare 都是這樣的﹗
让你输入,多半人都会输入自己的中文名或一些其他的名字,其实这就是Win2000中的用户帐
号,但在Win98中不会去验证用户就让你以这个用户帐号登陆系统了,而且以这个帐号访问网
络上的资源。至于Win98支不支持网络管理注册表,你可以这样看看。
在Win98机启动的使用用 Administrator 用户名登陆98,然后在Win2000中运行:
CMD /C NET USE \\WIN98计算机名 /USER:Administrator然后运行 Regedit
在“文件”菜单中选择“连接网络注册表”,然后选择那个WIN98计算机,看能否打开,如果可
以用API的方法绝对可以实现,如果不行,那就是98不支持了。其实如果通过WMI修改远程注册表是坑定可以的,虽然98中没有WMI,但是可以到Microsoft去下载。
Win2000以上的系统都支持WMI,但是你的要求是Win98,呵呵,这东西已经过时了那么多年了,你
还去考虑它,真是太....,呵呵,算了。