1
A
回答
1
從FlashPlayer無法做到這一點。您可能會要求用戶在第一次手動輸入時,請使用SharedObject
並且不要再詢問。
隨着AIR您可以派生本地操作系統進程和傳達它來獲取硬盤序列號:
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。然後在使用NativeApplication
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"], "\\\\", "\") +"' ";
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>
相關問題
- 1. 如何獲得pdfcrop2腳本
- 2. 無法獲得任何平滑的滾動腳本來工作
- 3. 如何獲得使用Java腳本
- 4. 如何獲得一個腳本
- 5. 如何獲得LUA腳本C功能
- 6. 無法獲得AJAX腳本工作
- 7. 無法獲得的cron腳本工作
- 8. 如何獲得的參數與國旗在bash腳本
- 9. 獲得IDS在行動腳本/ MXML
- 10. 嗨,如何獲得mysql腳本轉換mssql腳本?
- 11. 如何僅在某些頁面上獲得高腳本腳本
- 12. 如何獲得期望-c單行,而不是腳本工作
- 13. 如何獲得一個PHP腳本打印/工作
- 14. 如何在jQuery腳本中獲得動態帖子ID或值
- 15. 如何獲得批處理腳本運行的驅動器號?
- 16. 如何獲得表中創建腳本動態
- 17. 如何在shell腳本獲得AWK命令動態NR參數
- 18. 如何獲得文本時與document.execCommand
- 19. 如何獲得粘腳?
- 20. 獲取目錄動態與python腳本
- 21. 如何獲得與*
- 22. Abaqus腳本:獲得點
- 23. 獲得TokenAccess從sh腳本
- 24. 獲得主動腳手架無需工作:標記動作
- 25. 如何獲得php版本5.4與PHP的php_http擴展工作?
- 26. 動作腳本3 - 與陣列問題
- 27. 如何使用動作腳本
- 28. 如何使用動作腳本
- 29. 如何使用動作腳本
- 30. 動作腳本3如何使if語句與數組激活
我認爲AS3是waaaaaaaay太高級這種東西... – BoltClock
與ActionScript + AIR和訪問一些NAT ive函數,這將是可能的...否則我不知道如何......你有什麼嘗試?你有沒有收到錯誤信息? – Yahia
使用AIR,我沒有試過...... – okami