#include <stdio.h>
#include <stdlib.h>#include "vix.h"#define USE_WORKSTATION#ifdef USE_WORKSTATION#define CONNTYPE VIX_SERVICEPROVIDER_VMWARE_WORKSTATION#define HOSTNAME ""
#define HOSTPORT 0
#define USERNAME ""
#define PASSWORD ""#define VMPOWEROPTIONS VIX_VMPOWEROP_LAUNCH_GUI
#endif // USE_WORKSTATIONint
main()
{
VixError err;
char *vmxPath= "E:\\win7\\Windows 7 x64.vmx";//此处路径自行修改,不要出现中文
VixHandle hostHandle = VIX_INVALID_HANDLE;
VixHandle jobHandle = VIX_INVALID_HANDLE;
VixHandle vmHandle = VIX_INVALID_HANDLE; jobHandle = VixHost_Connect(VIX_API_VERSION,
CONNTYPE,
HOSTNAME, // *hostName,
HOSTPORT, // hostPort,
USERNAME, // *userName,
PASSWORD, // *password,
, // options,
VIX_INVALID_HANDLE, // propertyListHandle,
NULL, // *callbackProc,
NULL); // *clientData);
err = VixJob_Wait(jobHandle,
VIX_PROPERTY_JOB_RESULT_HANDLE,
&hostHandle,
VIX_PROPERTY_NONE);
if (VIX_FAILED(err)) {
goto abort;
} Vix_ReleaseHandle(jobHandle);
jobHandle = VixVM_Open(hostHandle,
vmxPath,
NULL, // VixEventProc *callbackProc,
NULL); // void *clientData);
err = VixJob_Wait(jobHandle,
VIX_PROPERTY_JOB_RESULT_HANDLE,
&vmHandle,
VIX_PROPERTY_NONE);
if (VIX_FAILED(err)) {
goto abort;
} Vix_ReleaseHandle(jobHandle);
jobHandle = VixVM_PowerOn(vmHandle,
VMPOWEROPTIONS,
VIX_INVALID_HANDLE,
NULL, // *callbackProc,
NULL); // *clientData);
err = VixJob_Wait(jobHandle, VIX_PROPERTY_NONE);
if (VIX_FAILED(err)) {
goto abort;
} Vix_ReleaseHandle(jobHandle);
jobHandle = VixVM_PowerOff(vmHandle,
VIX_VMPOWEROP_NORMAL,
NULL, // *callbackProc,
NULL); // *clientData);
err = VixJob_Wait(jobHandle, VIX_PROPERTY_NONE);
if (VIX_FAILED(err)) {
goto abort;
}abort:
Vix_ReleaseHandle(jobHandle);
Vix_ReleaseHandle(vmHandle); VixHost_Disconnect(hostHandle); return ;
}
这是一个在CodeBlocks上写的c程序,安装了虚拟机的,具体源码请在“C:\Program Files (x86)\VMware\VMware VIX\Samples\powerOn.c”里查看,
注:
1、在project->Properties->C/C++->添加头文件所在文件夹(把头文件放程序文件夹里)
2、添加头文件vix.h与vm_basic_types.h
3、在project->Properties->Project Setting->Project build options->linker settings->添加动态链接库VixAllProductsDyn.lib
4、在debug下添加VixAllProductsDyn.dll