设为首页 收藏本站
查看: 786|回复: 0

[经验分享] (转)Vix_API 操作 VMware

[复制链接]

尚未签到

发表于 2015-4-6 17:16:17 | 显示全部楼层 |阅读模式
  对虚拟机(VMware Workstation)进行程序控制,查询了VMware官方网站的一些内容,但调试的时候还是出现很多问题。
      刚开始想通过命令行的方式控制虚拟机,但总是存在一些问题,到现在也没搞懂。
      首先,网上下载的绿色版还是有很多功能不能实现。
      其次,虚拟机版本不一样,其支持的命令也不一样,版本越高,支持的命令越多。
      我使用VMware Workstation 6.0.3 build-80004,在命令行下,仅可以执行(1)开启(2)关闭(3)重启(4)挂起 这四个功能,我最想使用的恢复快照却不能使用。
      开启:vmware -x vm.vmx
      关闭:vmrun stop vm.vmx
      重启:vmrun reset vm.vmx soft (无soft时为直接重启)
      挂起:vmrun suspend vm.vmx
      幸好,从6.0版本开始提供Vix_API了,可以直接在自己的程序中使用Vix_API操作虚拟机,而且各项功能都可以实现 :-)
      在完整安装VMware Workstation 6.0后,在安装目录下就会有VMware VIX文件夹,其中包含了Vix_API及相关文档、dll、lib等文件。
      第一,包含头文件,连接lib
      vix.h、vm_basic_types.h、VixAllProducts.lib、VixAllProductsd.lib
      第二,按照文档说明操作Vix_API
      VixHost_Connect()、 VixHost_Disconnect()、VixHost_FindItems()、VixHost_RegisterVM()、VixHost_UnregisterVM()、VixJob_CheckCompletion()、VixJob_GetError()、VixJob_GetNthProperties()、VixJob_GetNumProperties()、VixJob_Wait()、VixSnapshot_GetChild()、VixSnapshot_GetNumChildren()、VixSnapshot_GetParent()、VixVM_AddSharedFolder()、ixVM_CopyFileFromGuestToHost()、VixVM_CopyFileFromHostToGuest()、VixVM_CreateDirectoryInGuest()、VixVM_CreateSnapshot()、VixVM_CreateTempFileInGuest()、VixVM_Delete()、VixVM_DeleteDirectoryInGuest()、VixVM_DeleteFileInGuest()、VixVM_DirectoryExistsInGuest()、VixVM_EnableSharedFolders()、VixVM_FileExistsInGuest()、VixVM_GetCurrentSnapshot()、VixVM_GetNamedSnapshot()、VixVM_GetNumRootSnapshots()、VixVM_GetNumSharedFolders()、VixVM_GetRootSnapshot()、VixVM_GetSharedFolderState()、VixVM_InstallTools()、VixVM_KillProcessInGuest()、VixVM_ListDirectoryInGuest()、VixVM_ListProcessesInGuest()、VixVM_LoginInGuest()、VixVM_LogoutFromGuest()、VixVM_Open()、VixVM_OpenUrlInGuest()、VixVM_PowerOff()、VixVM_PowerOn()、VixVM_RemoveSharedFolder()、VixVM_RemoveSnapshot()、VixVM_RenameFileInGuest()、VixVM_Reset()、VixVM_RevertToSnapshot()、VixVM_RunProgramInGuest()、VixVM_RunScriptInGuest()、VixVM_SetSharedFolderState()、VixVM_Suspend()、VixVM_UpgradeVirtualHardware()、VixVM_WaitForToolsInGuest()、Vix_FreeBuffer()、Vix_GetErrorText()、Vix_GetHandleType()、Vix_GetProperties()、Vix_GetPropertyType()、Vix_PumpEvents()、Vix_ReleaseHandle()、
        第三,使用正确的dll文件
      我遇到的这个问题,困扰了我一天来调试。在文档中有相关说明,不同版本的VMware 对应不同的dll文件,否则在VixHost_Connect时就会出现报出参数出错的错误!
  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  根据具体实践,使用命令行模式,首先调到VIX目录下,但只有一条命令是有效的,vmrun start "(.vmx的绝对路径,不要出现中文)",如有其他可行的命令欢迎评论。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.iyunv.com/thread-54377-1-1.html 上篇帖子: VMWare 安装 Linux 下篇帖子: 批处理 启动/关闭 VMware服务
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表