请教虚拟系统的实现问题 ( 积分: 300 )

  • 主题发起人 主题发起人 可爱小猪
  • 开始时间 开始时间

可爱小猪

Unregistered / Unconfirmed
GUEST, unregistred user!
请教虚拟系统的实现问题
 
使用VMware Workstation
 
网吧系统,用这个干嘛,有毛病啊
 
才三百分呀?
加两个零,再改成元,或者我会告诉你!
 
呵呵,楼上的水平满高啊
哈哈。
 
只是讨论下技术问题,如果涉及到商业商的。那就算了。我只是好奇而已
 
网吧的虚拟盘实现
 
虚拟磁盘请参考FileDisk.
 
顶下,期待高手出现
 
用Delphi实现虚拟盘映射
本实例演示如何映射和断开网络虚拟盘。

向窗体上添加两个TLabel组件、两个TEdit组件和两个TButton组件,设计完成的主界面如图1所示。





图1 主界面



首先添加“连接”按钮的响应代码,在其中调用WNetAddConnection2函数,根据用户输入的本地虚拟盘和网络共享目录来映射虚拟盘,响应代码如下:



procedure TfrmMain.btnConnectClick(Sender: TObject);
var
NetShare :NETRESOURCE;
begin
NetShare.dwType := RESOURCETYPE_DISK;
NetShare.lpLocalName := PAnsiChar(edtLocal.Text);
NetShare.lpRemoteName := PAnsiChar(edtRemote.Text);
NetShare.lpProvider :=’’;
WNetAddConnection2(NetShare, ’’, ’’, CONNECT_UPDATE_PROFILE);
end;



然后添加“断开”按钮的响应代码,在其中调用WNetCancelConnection2函数断开用户输入的本地虚拟盘,响应代码如下:



procedure TfrmMain.btnDisconnectClick(Sender: TObject);
var
strLocalName : PChar;
begin
strLocalName:=PAnsiChar(edtLocal.Text);
WNetCancelConnection2(strLocalName,CONNECT_UPDATE_PROFILE,False);
end;



程序代码如下:



unit Unit1;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, StdCtrls;

type

TfrmMain = class(TForm)
btnConnect: TButton;
btnDisconnect: TButton;
edtLocal: TEdit;
Label1: TLabel;
Label2: TLabel;
edtRemote: TEdit;
procedure btnConnectClick(Sender: TObject);
procedure btnDisconnectClick(Sender: TObject);

private
{ Private declarations }
public
{ Public declarations }
end;

var
frmMain: TfrmMain;
implementation
{$R *.dfm}
procedure TfrmMain.btnConnectClick(Sender: TObject);

var
NetShare :NETRESOURCE;
begin
NetShare.dwType := RESOURCETYPE_DISK;
NetShare.lpLocalName := PAnsiChar(edtLocal.Text);
NetShare.lpRemoteName := PAnsiChar(edtRemote.Text);
NetShare.lpProvider :=’’;
WNetAddConnection2(NetShare, ’’, ’’, CONNECT_UPDATE_PROFILE);
end;

procedure TfrmMain.btnDisconnectClick(Sender: TObject);

var
strLocalName : PChar;
begin
strLocalName:=PAnsiChar(edtLocal.Text);
WNetCancelConnection2(strLocalName,CONNECT_UPDATE_PROFILE,False);
end;

end.



保存文件,然后按F9键运行程序,程序运行的初始画面如图2所示。

在“本地虚拟盘”对应的文本框中输入一个有效的本地虚拟盘,在“网络共享目录”对应的文本框中输入一个有效的网络共享目录,如图3所示。




图2 程序运行的初始画面


图3 输入参数



单击“连接”按钮可以映射虚拟盘,单击“断开”按钮可以断开虚拟盘。
 
呵呵,没有这么简单。
这个是标准的网络虚拟盘。
我的想法是:
截取运行exe的启动,用自己的程序下载数据,之后运行这个exe.
这类的虚拟盘,如果是简单的windows虚拟盘,那顶多50分.
 
谢谢。
filedisk算实现的,正是我所需要的
 
后退
顶部