Adobe Air URLRequest到本地文件的工作方式为Windows 7,而非10

时间:2018-11-12 20:53:27

标签: actionscript-3 air flash-cs6

我为小型Intranet开发了Adobe Air App。所有计算机都已运行Windows 7,但现在开始被Windows 10系统取代。我可以使用Windows 7计算机上的文件类访问映射的驱动器“ I”和本地“ C”驱动器,但在Windows 10上只能使用映射的驱动器“ I”。

编辑:Capabilities.localFileReadDisable在Windows 7和Windows 10系统上均返回false。

********如果Air可以获取有关正在运行的计算机的任何特定信息,序列号,mac地址,计算机名称等,则可以绕过对本地文件的需求。实际上,我获得的信息没有区别得到的,它必须是该计算机唯一的。使用Cookie并不是一种选择,因为它们易变********

以下代码完成了两件事。

首先,它显示Air文件的运行版本,并在映射的驱动器上查找具有最新版本的文件。如果它们相同,则计算机正在运行最新版本。如果它们不同,则会向用户显示新版本,指示应更新应用程序。

第二,它从驻留在本地驱动器上的文本文件中获取特定计算机的名称。该名称用于报告中以指示正在使用哪台计算机。可能有一种更好的方法来完成此操作,但是在Windows 7上,它对我来说效果很好。不幸的是,Windows 10在尝试访问本地驱动器上的文件时引发错误。

错误#2044:未处理的ioError :。 text =错误#2032:流错误。网址:file:/// C:/machineName.txt

任何帮助将不胜感激。

var appXML:XML =  NativeApplication.nativeApplication.applicationDescriptor;
var ns:Namespace = appXML.namespace();
version_txt.text = "V"+appXML.ns::versionNumber;

// Define path to the version number
var updatePath:URLRequest = new URLRequest("file:///I:/air/update.txt");

// Define path to name of specific pc
var machineName:URLRequest = new URLRequest("file:///C:/machineName.txt");

// Define the URLLoaders
var updateLoader:URLLoader = new URLLoader();
function checkUpdate():void{
    updateLoader.load(updatePath);
}

var nameLoader:URLLoader = new URLLoader();

function checkName():void{
    nameLoader.load(machineName);
}

// Listen for when the file has finished loading.
updateLoader.addEventListener(Event.COMPLETE, loaderComplete);
function loaderComplete(e:Event):void
{
    // The output of the text file is available via the data property
    // of URLLoader.
    if(Number(appXML.ns::versionNumber)<Number(updateLoader.data)){
        update_txt.text = "UPDATE TO V"+updateLoader.data;
    }
}

nameLoader.addEventListener(Event.COMPLETE, nameComplete);
var name_txt:String = new String;

function nameComplete(e:Event):void{
    name_txt = nameLoader.data;
    var holder:String = version_txt.text;
    version_txt.text = name_txt+" ** "+holder;
}

0 个答案:

没有答案