2011-08-04 8 views
1

アクションスクリプト3.0を使用してコードをコンパイルしてフラッシュする10アクションスクリプトでハードディスクのシリアル番号を取得する方法

アクションスクリプトでハードディスクのシリアル番号を取得する方法は?

私はこの情報をセキュリティ要件なしで取得したいと考えています。それを行う方法はありますか?

+2

私はAS3はこの種のもののために高すぎると思う... – BoltClock

+1

ActionScript + AIRといくつかのNATへのアクセスこれは可能かもしれませんが、そうでなければ私はどのように...あなたは何を試しましたか? enyエラーメッセージが表示されましたか? – Yahia

+0

AIRでは、私は試していませんでした。 – okami

答えて

1

FlashPlayerから行う方法はありません。初めて手動で入力するようにユーザーに要求し、SharedObjectを使用して、再度尋ねることはありません。

AIRを使用すると、ネイティブOSのプロセスをフォークし、HDDのシリアル番号を取得するためにそれを伝えることができます。このことができます

var nativeProcessStartupInfo:NativeProcessStartupInfo = new NativeProcessStartupInfo(); 
var file:File = File.applicationDirectory.resolvePath("some_hdd_utility.exe"); 
nativeProcessStartupInfo.executable = file; 
var processArgs:Vector.<String> = new Vector.<String>(); 
processArgs.push("someArgs"); 
nativeProcessStartupInfo.arguments = processArgs; 
process = new NativeProcess(); 
process.addEventListener(ProgressEvent.STANDARD_OUTPUT_DATA, onOutputData); 
process.start(nativeProcessStartupInfo); 
public function onOutputData(event:ProgressEvent):void 
{ 
    var stdOut:ByteArray = process.standardOutput; 
    var data:String = stdOut.readUTFBytes(process.standardOutput.bytesAvailable); 
    trace("Got: ", data); 
} 

希望を。

5

デバイスのすべての物理メディアをC#コンソールアプリケーションから取得し、各物理メディアとそのプロパティをxmlとして出力できます。その後、APIを使用するAirアプリケーションでは、前記の物理媒体とそのプロパティ、つまりハードディスクドライブのシリアル番号を取得できます。私はこの例を作っ:

GetPhysicalMedia.cs:

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using System.Text.RegularExpressions; 
using System.Management; 

namespace GetPhysicalMedia 
{ 
    class Program 
    { 
     static void Main(string[] args) 
     { 
      ManagementClass managementClass = new ManagementClass("Win32_PhysicalMedia"); 

      String physicalMediaXml = ""; 

      physicalMediaXml += "<physicalMedia>\n"; 

      foreach (ManagementObject managementObject in managementClass.GetInstances()) 
      { 
       physicalMediaXml += "\t<physicalMedium "; 
       physicalMediaXml += "caption" + "='" + managementObject["Caption"] + "' "; 
       physicalMediaXml += "description" + "='" + managementObject["Description"] + "' "; 
       physicalMediaXml += "installDate" + "='" + managementObject["InstallDate"] + "' "; 
       physicalMediaXml += "name" + "='" + managementObject["Name"] + "' "; 
       physicalMediaXml += "status" + "='" + managementObject["Status"] + "' "; 
       physicalMediaXml += "creationClassName" + "='" + managementObject["CreationClassName"] + "' "; 
       physicalMediaXml += "manufacturer" + "='" + managementObject["Manufacturer"] + "' "; 
       physicalMediaXml += "model" + "='" + managementObject["Model"] + "' "; 
       physicalMediaXml += "sku" + "='" + managementObject["SKU"] + "' "; 
       physicalMediaXml += "serialNumber" + "='" + managementObject["SerialNumber"] + "' "; 
       physicalMediaXml += "tag" + "='" + Regex.Replace((String)managementObject["Tag"], "\\\\", "&#92;") +"' "; 
       physicalMediaXml += "version" + "='" + managementObject["Version"] + "' "; 
       physicalMediaXml += "partNumber" + "='" + managementObject["PartNumber"] + "' "; 
       physicalMediaXml += "otherIdentifyingInfo" + "='" + managementObject["OtherIdentifyingInfo"] + "' "; 
       physicalMediaXml += "poweredOn" + "='" + managementObject["PoweredOn"] + "' "; 
       physicalMediaXml += "removable" + "='" + managementObject["Removable"] + "' "; 
       physicalMediaXml += "replaceable" + "='" + managementObject["Replaceable"] + "' "; 
       physicalMediaXml += "hotSwappable" + "='" + managementObject["HotSwappable"] + "' "; 
       physicalMediaXml += "capacity" + "='" + managementObject["Capacity"] + "' "; 
       physicalMediaXml += "mediaType" + "='" + managementObject["MediaType"] + "' "; 
       physicalMediaXml += "mediaDescription" + "='" + managementObject["MediaDescription"] + "' "; 
       physicalMediaXml += "writeProtectOn" + "='" + managementObject["WriteProtectOn"] + "' "; 
       physicalMediaXml += "cleanerMedia" + "='" + managementObject["CleanerMedia"] + "' "; 
       physicalMediaXml += "/>\n"; 

      }// end foreach 

      physicalMediaXml += "</physicalMedia>\n"; 

      Console.WriteLine(physicalMediaXml); 

     }// end method 

    }// end class 

}// end namespace 

Main.as:

package 
{ 
    import flash.desktop.NativeProcess; 
    import flash.desktop.NativeProcessStartupInfo; 
    import flash.display.Sprite; 
    import flash.events.Event; 
    import flash.events.ProgressEvent; 
    import flash.filesystem.File; 

    public class Main extends Sprite 
    { 
     private var _nativeProcess:NativeProcess; 
     private var _nativeProcessSUI:NativeProcessStartupInfo; 
     private var _physicalMedia:XML; 

     public function Main():void 
     { 
      _nativeProcess = new NativeProcess(); 
      _nativeProcessSUI = new NativeProcessStartupInfo(); 

      _nativeProcessSUI.executable = File.applicationDirectory.resolvePath("GetPhysicalMedia.exe"); 
      _nativeProcess.addEventListener(ProgressEvent.STANDARD_OUTPUT_DATA, onNativeProcessSOD); 
      _nativeProcess.addEventListener(Event.STANDARD_OUTPUT_CLOSE, onNativeProcessSOC); 
      _nativeProcess.start(_nativeProcessSUI); 

     }// end function 

     private function onNativeProcessSOD(e:ProgressEvent):void 
     { 
      _physicalMedia = XML(_nativeProcess.standardOutput.readUTFBytes(_nativeProcess.standardOutput.bytesAvailable)); 

     }// end function 

     private function onNativeProcessSOC(e:Event):void 
     { 
      trace(_physicalMedia.physicalMedium.(String(@tag).search("PHYSICALDRIVE0") > -1)[email protected]); // output: V5FEVZ2W 
      trace(_physicalMedia.physicalMedium.(String(@tag).search("PHYSICALDRIVE1") > -1)[email protected]); // output: WD-WCASU2856512 

     }// end function 

    }// end class 

}// end package 

これは、あなたがGetPhysicalMedia.exeために得る出力の例です

<physicalMedia> 
    <physicalMedium caption="" description="" installDate="" name="" status="" creationClassName="" manufacturer="" model="" sku="" serialNumber="V5FEVZ2W   " tag="\\.\PHYSICALDRIVE0" version="" partNumber="" otherIdentifyingInfo="" poweredOn="" removable="" replaceable="" hotSwappable="" capacity="" mediaType="" mediaDescription="" writeProtectOn="" cleanerMedia=""/> 
    <physicalMedium caption="" description="" installDate="" name="" status="" creationClassName="" manufacturer="" model="" sku="" serialNumber="WD-WCASU2856512  " tag="\\.\PHYSICALDRIVE1" version="" partNumber="" otherIdentifyingInfo="" poweredOn="" removable="" replaceable="" hotSwappable="" capacity="" mediaType="" mediaDescription="" writeProtectOn="" cleanerMedia=""/> 
    <physicalMedium caption="" description="" installDate="" name="" status="" creationClassName="" manufacturer="" model="" sku="" serialNumber="516256L411   " tag="\\.\CDROM0" version="" partNumber="" otherIdentifyingInfo="" poweredOn="" removable="" replaceable="" hotSwappable="" capacity="" mediaType="" mediaDescription="" writeProtectOn="" cleanerMedia=""/> 
</physicalMedia> 
関連する問題