Если ваш профиль развертывания - Extended Desktop , вы можете использовать NativeProcess и некоторые простые сценарии, которые можно упаковать с приложением. Этот подход повлечет за собой обработку функциональности для каждой ОС, что потребует определенной работы и тщательного тестирования Тем не менее, я хотел бы хотя бы поделиться сценарием, который, как я убедился, работает. Ниже приведен тестовый пример, который я бросил вместе:
Контрольный пример: Windows 7
Несмотря на то, что в документации Adobe говорится, что он предотвращает выполнение файлов .bat , очевидно, он не мешает запускать сервер сценариев Windows: wscript.exe . Это означает, что вы можете выполнять любые файлы JScript или VBScript. И это то, что вы использовали бы, чтобы написать команду для создания ярлыка в Windows (поскольку в противном случае Windows не имеет команды командной строки для создания ярлыков).
Вот простой скрипт для создания ярлыка команды, который я нашел на giannistsakiris.com (преобразован в JScript):
// File: mkshortcut.js
var WshShell = new ActiveXObject("WScript.Shell");
var oShellLink = WshShell.CreateShortcut(WScript.Arguments.Named("shortcut") + ".lnk");
oShellLink.TargetPath = WScript.Arguments.Named("target");
oShellLink.WindowStyle = 1;
oShellLink.Save();
Если вы упакуете это в своем приложении в папку с именем utils , вы можете написать функцию для создания ярлыка, например:
public function createShortcut(target:File, shortcut:File):void {
if (NativeProcess.isSupported) { // Note: this is only true under extendedDesktop profile
var shortcutInfo:NativeProcessStartupInfo = new NativeProcessStartupInfo();
// Location of the Windows Scripting Host executable
shortcutInfo.executable = new File("C:/Windows/System32/wscript.exe");
// Argument 1: script to execute
shortcutInfo.arguments.push( File.applicationDirectory.resolvePath("utils/mkshortcut.js").nativePath);
// Argument 2: target
shortcutInfo.arguments.push("/target:" + target.nativePath);
// Argument 3: shortcut
shortcutInfo.arguments.push("/shortcut:" + shortcut.nativePath);
var mkShortcutProcess = new NativeProcess();
mkShortcutProcess.start(shortcutInfo);
}
}
Если кто-то хочет создать ярлык для каталога хранилища приложений на рабочем столе, будет достаточно следующего:
var targetLocation:File = File.applicationStorageDirectory;
var shortcutLocation:File = File.desktopDirectory.resolvePath("Shortcut to My AIR App Storage");
createShortcut(targetLocation, shortcutLocation);
Очевидно, что предстоит проделать большую работу для работы с различными средами ОС, но это, по крайней мере, шаг.