(转)Vix_API 操作 VMware
對虛擬機(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的絕對路徑,不要出現中文)",如有其他可行的命令歡迎評論。
轉載于:https://www.cnblogs.com/lossingdawn/p/4075887.html
總結
以上是生活随笔為你收集整理的(转)Vix_API 操作 VMware的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Checked ==true ? Y:N
- 下一篇: 檢查權限