检测文件是否已在javascript / hta中打开

时间:2009-06-17 00:06:29

标签: javascript hta

我正在尝试修复我公司有人在3或4年前创建的.hta。现在,如果你打开一个其他人已经打开的文件,你将丢失你在其上完成的任何工作,并且必须再次手动完成。所以我想只是检查文件是否已经打开,然后锁定编辑,或者只是弹出一个弹出“嘿,如果你试图保存你就会失望”。有没有一种简单的方法可以检查文件是否已在javascript中打开?

打开文件的代码是......

function FileOpen( strSetup )
{
    if( ! strSetup )
    {
        strSetup = ShowDialog( "choose-setup", {"DialogTitle" : "Load Setup"} );
    }

    if( strSetup )
    {
        if( FileSystem.FileExists( App.Paths.Configs + "/" + strSetup + ".setup" ) )
        {
            var fFile = FileSystem.GetFile( App.Paths.Configs + "/" + strSetup + ".setup" );
            App.Config = LoadXMLDocument( fFile.Path );
            // SaveCurrentConfig();
            RefreshView( "setup-summary" );
        }
        else
        {
            alert( "Could not find setup '" + strSetup + "'" );
        }

    }
}

并且LoadXMLDocument的代码是......

//-----------------------------------------------------------------------------
// FUNCTION : LoadXMLDocument - Loads an XML document
// params   : strPath - the path/file of the document to load
//          : bCritical- if set true, we die if the document doesn't load
// returns  : an XML dom object on success, false otherwise
//-----------------------------------------------------------------------------

function LoadXMLDocument( strPath, bCritical )
{
    var xmlDoc = new ActiveXObject( "Msxml2.DOMDocument.3.0" );
    xmlDoc.setProperty( "SelectionLanguage", "XPath" );
    if( ! FileSystem.FileExists( strPath ) )
    {
        Error( "'" + strPath + "' is not a valid file path" );
        if( bCritical ) Abort();
        return( false );
    }
    var fFile = FileSystem.GetFile( strPath );
    xmlDoc.load( fFile.Path );
    if( xmlDoc.documentElement == null )
    {
        Error( "Could not load XML document '" + fFile.Path + "'" );
        if( bCritical ) Abort();
        return( false );
    }
    return( xmlDoc );
}

2 个答案:

答案 0 :(得分:1)

这就是revision control的全部内容。它与没有涉及的同一问题的其他形式没有什么不同。 hta文件。

答案 1 :(得分:0)

我看到这是超级老帖,但为什么不使用VBS?如果它是一个HTA,他们一起支持运行:

objFSO = CreateObject("Scripting.FileSystemObject")

strFilePath = "C:\test.txt"
If objFSO.FileExist(strFilePath) Then
   MsgBox "I win"
End If