kevins 发表于 2005-5-1 15:37:00

突然想问一个问题

QQ珊瑚虫外挂是用什么写的?为什么我用language2000和PEidentifer都查不出,不会是用汇编写的吧!!!

yzhlinux 发表于 2005-5-1 16:13:00

win32汇编

游侠无极限 发表于 2005-5-1 16:33:00

<P>发现他的一个提示信息和别的不太一样,呵呵</P><P>this program must be run under Win32</P><P>而不是</P><P>This program cannot be run in DOS mode</P>

kevins 发表于 2005-5-1 17:24:00

<P>RegSetValueEx Lib "advapi32.dll" Alias "RegSetValueExA" (ByVal hKey As Long, ByVal lpSubKey As String, ByVal Reserved As Long, ByVal dwType As Long, ByVal lpData As Any, ByVal cbData As Long) As Long</P><P>呵呵,这里居然还有人的,那我想再多问一个问题,上面是修改注册表的API函数,</P><P>如我想修改RegSetValueEx hKey, "TcpNumConnections", 0, REG_DWORD, n, 4</P><P>到到底n是用什么进制的数。我实验中觉得好像是Ascii码!!</P>

游侠无极限 发表于 2005-5-1 18:30:00

n 用 Long 类型,
[此贴子已经被作者于2005-5-1 18:39:25编辑过]

kevins 发表于 2005-5-1 19:16:00

上面代码我应该怎么改啊???

游侠无极限 发表于 2005-5-1 21:39:00

<P>dim n as Long</P><P>n = xxx</P><P>RegSetValueEx hKey, "TcpNumConnections", 0, REG_DWORD, n, 4</P><P>我是看网上资料的,由于现在没有VB6,无法测试……</P>

kevins 发表于 2005-5-2 14:49:00

<P>RegSetValueEx hKey, "TcpNumConnections", 0, REG_DWORD, "100", 4</P><P>我直接为它赋100的值,为什么我查看时却是很大的值???</P>

游侠无极限 发表于 2005-5-2 16:20:00

<P>你为什么要加上引号?</P><P>"100" 是字符串</P><P>100 是数字</P>

kevins 发表于 2005-5-2 18:41:00

如果不加引号就会出“类型不匹配”的提示!!

游侠无极限 发表于 2005-5-2 18:45:00

<P>用变量呢?</P><P>dim x as long</P><P>x = 100 </P><P>RegSetValueEx hKey, "TcpNumConnections", 0, REG_DWORD, x, 4</P><P>实在不行把声明中的 As Any 改为 As Long</P>

kevins 发表于 2005-5-2 19:52:00

<P>但是如果我想别人输入一个数为它的值,那不是很麻烦吗???</P><P>如我用一个Test接收输入的数,我是不是应该这样写啊:</P><P>dim x as long</P><P>x=val(Text1.text)</P><P>RegSetValueEx hKey, "TcpNumConnections", 0, REG_DWORD, x, 4</P><P>但这样写注册表根本不会去创建TcpNumConnections这个键!!</P>

kevins 发表于 2005-5-2 19:58:00

<P>还有,改any为long,和</P><P>dim x as long</P><P>x = 100 </P><P>RegSetValueEx hKey, "TcpNumConnections", 0, REG_DWORD, x, 4</P><P>这样写它也不会创建TcpNumConnections这个键!!为什么它不像REG_SZ那么容易写啊!!</P>

游侠无极限 发表于 2005-5-2 20:36:00

<P>手头没有VB,我现在也帮不了你了</P>
声明还是用As Any 的
<P>RegSetValueEx hKey, "TcpNumConnections", 0, REG_DWORD, byval x, 4</P>
<P>看看这个吧</P>
[此贴子已经被作者于2005-5-2 20:38:20编辑过]

游侠无极限 发表于 2005-5-2 20:39:00

<DIV class=quote><B>以下是引用<I>kevins</I>在2005-5-2 19:52:56的发言:</B>
<P>但是如果我想别人输入一个数为它的值,那不是很麻烦吗???</P>
<P>如我用一个Test接收输入的数,我是不是应该这样写啊:</P>
<P>dim x as long</P>
<P>x=val(Text1.text)</P>
<P>RegSetValueEx hKey, "TcpNumConnections", 0, REG_DWORD, x, 4</P>
<P>但这样写注册表根本不会去创建TcpNumConnections这个键!!</P></DIV>


数字 字符串 转换在这里是必须的,你不可能避免
还有检查API的返回值会是一个好习惯
[此贴子已经被作者于2005-5-2 20:40:46编辑过]

BCGSoftBug 发表于 2005-5-17 12:34:00

<P>游侠</P><P>我建议你仔细看看这个api的定义</P><P>1声明没错</P><P>2 使用方法的一种</P><P>dim x as long</P><P>x=val(Text1.text)</P><P>RegSetValueEx hKey, "TcpNumConnections", 0, REG_DWORD, varptr(x), 4</P><P>传送指针(就是lpData)</P><P>在调用api时,如果传字符串变量,都是船指针,byval只是在复制以后传送副本的指针</P>

游侠无极限 发表于 2005-5-23 20:26:00

<P>…… 问题不是我出的</P><P>我还是喜欢直接由指针类型的语言</P>
页: [1]
查看完整版本: 突然想问一个问题