这是因为没有完全注册系统中的dll文件。
1、首先需要找到并右击名称为“菜单”按钮,接着需要在接下来d出来的下拉菜单中的下方,找到并点击名称为”运行“按钮:
2、接着需要在接下来d出来的页面框中输入“CMD”命令符,点击“确定”按钮:
3、接着只需要输入“for %1 in (%windir%\system32\dll) do regsvr32exe /s %1”命令按下回车键:
4、最后重启电脑桌面上就不会显示“没有被指定在windows上运行,或者它包含错误”即可解决问题了:
要使用全局钩子,做成DLL文件, 可以用IAT Hook,也可以用inline hook iat hook相对简单,但只有在导入表中明确调用的api才能被hook,如果是用LoadLibrary加载的api就不能被Hook inline hook则没有这个限制,但它需要硬编码(汇编中的jmp指令),难免有系
WIN将所有HOOK组成一个list
最后HOOK的在list头
系统是从list头还是调用回调,如果回调中有调用CallNextHook,下面的HOOK才能收到
如果你能保证你在最后钩上,就能防止其他HOOK程序~
strResult += 磁盘类型: & SystemConvertToInt16(disk(DriveType)ToString())End IfMsgBox(strResult)NextEnd Sub总结:在VBNET中,用API函数可以获取硬盘信息。原来熟悉API函数VB6程序员,可以对API函数声明进行适当的更改后,进行调用。利用FSO(文件系统对象)的ScrrunDLL,也可以获得磁盘信息。在net Framwork中,利用WMI可以获取更多的关于机器硬件的详细信息(参考SystemManagement命名空间)。
用虚拟文件来 *** 作。
FileMapHandle := CreateFileMapping($FFFFFFFF, nil, PAGE_READWRITE, 0, SizeOf(TDATA), PChar(String_ID));
通过公用内存来 *** 作。
PHP没有这些功能的,要知道PHP是跨平台的、重点为WEB服务编写的工具。
不过你可以使用其它语言编写一个控制台的EXE文件来获取,然后PHP调用这个程序获取结果,下面程序可以成功执行:
<php
$s=`dir`;
echo $s;
>
把DIR换为你获取序列号的EXE文件名字既可
Hook这个软件并不是修改硬盘的实际数值,而是为了运行某些破解软件而产生的。一些软件会读取硬件的参数,比如硬盘的ID生成密码,Hook就是拦截软件的读取硬件ID的请求,然后返回修改过的值,使得原本锁定只能在一台机器上运行的软件可以破解使用而已。你所说的目标程序就是需要破解的软件的可执行文件
以上就是关于电脑显示“没有被指定在windows上运行,或者它包含错误”怎么解决全部的内容,包括:电脑显示“没有被指定在windows上运行,或者它包含错误”怎么解决、Hook DirectX API 怎么Hook、如何检测自己程序的API被HOOK了等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)