当前位置: 代码迷 >> 汇编语言 >> 怎么用汇编得到IE的安装路径?
  详细解决方案

怎么用汇编得到IE的安装路径?

热度:860   发布时间:2013-02-26 00:00:00.0
如何用汇编得到IE的安装路径?????
我的一个汇编程序已调试成功

但是还想在里面加一个功能,要用到IE的路径

其实只要获得系统安装的盘符就行了     然后加上\Program   Files\Internet   Explorer\IEXPLORE.EXE     就行了

但是如何获得系统安装的盘符???       如何连接字符串???

最后结果要放到dd类型的值里

还有个问题         如何用汇编实现sleep()的功能???       当然不能用循环的方法       因为耗费cpu



------解决方案--------------------------------------------------------
Sleep() 功能的实现, 还是得借助系统函数实现吧, Sleep() 自首应该是比较简单的了. 循环里面加上 hlt 指令可能会对 cpu 的占用有所改善, 但对时间控制上又会多了些周折.

加入 advapi32, 对文件不应该有直接的 1K 的增大. 如果确实不能使用它的话, 要么试试 GetEnvironmentVariable( "ProgramFiles ")+ "\Internet Explorer " 来确定 ie 的路径. 不过, 这时设定的 IE 自身路径名是缺省的, 虽然绝大多数场合都是的:
....
.const
szProg db 'ProgramFiles ', 0
szIE db '\Internet Explorer ', 0

.data?
szProgPath db MAX_PATH dup (?)

.code
start:
invoke GetEnvironmentVariable, addr szProg, addr szProgPath, MAX_PATH - 1
invoke lstrcat, addr szProgPath, addr szIE
invoke MessageBox, NULL, addr szProgPath, addr szProg, MB_OK or MB_ICONINFORMATION
....

GetEnviroonmentVariable() 函数是 kernel32 中的, 一般不需要再行加入
------解决方案--------------------------------------------------------
invoke GetWindowsDirectory,sysPath,sizeof sysPath

应该改成这样
invoke GetWindowsDirectory,addr sysPath,sizeof sysPath

另外 GetWindowsDirectory函数没有返回值sysPath就保存着windows目录的路径
  相关解决方案