Python之虚拟机操作:利用VIX二次开发,实现自己的pyvix(系列一)成果展示和python实例
2013-09-02 20:50
1086 查看
在日常工作中,需要使用python脚本去自动化控制VMware虚拟机,现有的pyvix功能较少,而且不适合个人编程习惯,故萌发了开发一个berlin版本pyvix的想法,暂且叫其OpenPyVix。OpenPyVix利用vmware提供的VIX接口,对其重新封装,导出为dll文件,然后利用python的CDLL模块调用其中的方法来实现python自动化控制虚拟机的操作。本系列文章将逐步为你揭开OpenPyVix的神秘面纱,喜欢的猿们支持一下!
好了,言归正传,今天我带给大家的是可用的dll和python的sample,在随后的文章中,我会stepbystep的揭开OpenPyVix的面纱:如何创建dll工程,如何生成不依赖于dll(即静态编译方法)的dll文件,python中使用OpenPyVix的类实例;在具体的dll工程的开发过程中,我会带给大家诸如单例模式,以及Windows中实现互斥的方法等。
需要使用到的python模块有:ctypes中的find_library等。
[code]cwd=os.getcwd()
[/code]
其中my_find_library方法如下:
[code]lib=find_library(name)
[/code]
那么,我们的dll中到底有那些方法呢?看图:
正如博客园所说,代码改变世界,我是一个想通过代码来改变自己人生,改变世界的程序猿!
感谢大家的阅读,敬请期待本系列之二:Python之虚拟机操作:利用VIX二次开发,实现自己的pyvix(系列二)单例模式和互斥访问
PublishedbyWindowsLiveWriter.
好了,言归正传,今天我带给大家的是可用的dll和python的sample,在随后的文章中,我会stepbystep的揭开OpenPyVix的面纱:如何创建dll工程,如何生成不依赖于dll(即静态编译方法)的dll文件,python中使用OpenPyVix的类实例;在具体的dll工程的开发过程中,我会带给大家诸如单例模式,以及Windows中实现互斥的方法等。
需要使用到的python模块有:ctypes中的find_library等。
libpath=my_find_library('VixLib.dll')
[code]cwd=os.getcwd()
os.chdir(os.path.dirname(libpath))
vix=CDLL(libpath)
os.chdir(cwd)
vmOrdinal=c_int()
res=vix.openVMX(byref(vmOrdinal),vmxpath,isLinux,\
sESXHost,sESXUser,sESXPw)
vix.powerOn(vmOrdinal)
...
vix.closeHandle(vmOrdinal)
[/code]
其中my_find_library方法如下:
1:defmy_find_library(name):
[code]lib=find_library(name)
iflib:
returnlib
#find_librarysucksonWindows,sowe'llfakeit
paths=[xforxinsys.path]
paths.append(os.getcwd())
paths.append(module_path)
forpathinpaths:
try:
libpath=os.path.join(path,name)
ifos.path.exists(libpath):
returnlibpath
exceptWindowsError:
continue
returnNone
[/code]
那么,我们的dll中到底有那些方法呢?看图:
正如博客园所说,代码改变世界,我是一个想通过代码来改变自己人生,改变世界的程序猿!
感谢大家的阅读,敬请期待本系列之二:Python之虚拟机操作:利用VIX二次开发,实现自己的pyvix(系列二)单例模式和互斥访问
PublishedbyWindowsLiveWriter.
相关文章推荐
- 【web开发】☆★之利用POI操作Excel表格系列教程【5】设置不同格式单元格
- 利用C语言实现顺序表的实例操作
- Windows下利用win32clipboard实现Python的剪切板(Clipboard)操作
- python实现自己的异步IO等异步操作
- Script.aculo.us开发系列(四):动画弹出菜单的实现-开发自己的动画
- C#软件开发实例.私人订制自己的屏幕截图工具(八)添加键盘操作截图的功能
- Recurrent Neural Network系列2--利用Python,Theano实现RNN
- Recurrent Neural Network系列4--利用Python,Theano实现GRU或LSTM
- 【web开发】☆★之利用POI操作Excel表格系列教程【6】遍历工作簙行和列取值
- 利用python+flask实现股票查询与结果网页展示
- warensoft .NET 快速开发系列--利用C#实现对称式加密
- python学习笔记:利用contextlib和@contextmanager实现with语句上下文实例
- 【Android游戏开发十六】Android Gesture之【触摸屏手势识别】操作!利用触摸屏手势实现一个简单切换图片的功能!
- Android开发之多线程中实现利用自定义控件绘制小球并完成小球自动下落功能实例
- Python爬虫利用cookie实现模拟登陆实例详解
- 【web开发】☆★之利用POI操作Excel表格系列教程【7】Excel文本取值
- C#软件开发实例.私人订制自己的屏幕截图工具(八)添加键盘操作截图的功能
- python利用urllib实现爬取京东网站商品图片的爬虫实例
- 【Android游戏开发十六】Android Gesture之【触摸屏手势识别】操作!利用触摸屏手势实现一个简单切换图片的功能!