⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 test.py

📁 Eterlogic公司所提供免费的虚拟磁盘SDK
💻 PY
字号:
#python

import win32com.client
import pythoncom
import win32com.server.util
import msvcrt
import ctypes
import os

from array import *
from win32com import universal
from win32com.server.util import wrap

universal.RegisterInterfaces('{aaadcf2c-39ae-4faa-bfc7-7b83d02ebc4f}', 0, 1, 0, ["IVirtualDriveHandler"])

g_disk_size = 16;
                          
class CVirtualDriveHandler:
	_public_methods_ = ['OnReadData','OnWriteData']
	_com_interfaces_ = ['IVirtualDriveHandler']

	def __init__(self):
		self.m_data = ctypes.create_string_buffer(g_disk_size*1024*1024)
		

	def OnReadData(self, Offset,Size,Buffer):
		Offset = int(Offset)
		print '===> OnReadData',Offset,Size
		Buffer = buffer(self.m_data, Offset, Size)
               	return (0,Buffer,Size)

	def OnWriteData(self, Offset,Size,Buffer):
        	Offset = int(Offset)
		print '===> OnWriteData',Offset,Size 
        	for i in range(0,Size):
			self.m_data[Offset+i] = Buffer[i]
        	return Size

#create server and client instance
server = win32com.client.dynamic.Dispatch("VDSDK.VirtualDrivesManager")
client = CVirtualDriveHandler()
clientIUnknown = wrap(client)

#initialize SDK
if server.InitializeVDSDK() == False:
	print 'Error: can not initialize VDSDK'
	os._exit(1)

handle = server.CreateVirtualDrive(ord('Z'),g_disk_size,clientIUnknown)
if handle != -1:
	print 'VirtualDrive created. Handle =',handle
	print 'Press any key to quit'
	msvcrt.getch()

	print 'Destroying virtual drive...'
	result = server.DestroyVirtualDrive(handle,1)
	if result:
		print 'OK'
	else:
		print 'ERROR'
else:
	print 'ERROR: Can not create virtual drive'

server.ShutdownVDSDK(True)
						  

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -