2012年4月9日月曜日

ThinApp 4.7 フォルダマクロとAPIについて

ThinApp 4.7 フォルダマクロとAPIについて


ThinAppを利用して、アプリケーションのインストールをキャプチャすると、プロジェクトフォルダが作成されます。

その中をみると、%Desktop%等のフォルダがたくさん並んでいると思います。
この、%~~~%フォルダは非常に重要なフォルダです。
フォルダマクロと呼ばれる物です。
実際に、仮想化したアプリの実行時に、この特別なフォルダマクロに則って
仮想化したアプリが、あたかも、そのフォルダにファイルがあるように認識し動作します。
VirtualFilesystem (VFS) と呼ばれるものです。

下の表では、マッピング先に、わかりやすいようにWindowsXPのパスを載せていますが
Windows7等で仮想アプリを実行した場合は、自動的にWindows7のパスに読み替えてくれます。
※ThinAppBlogにてWindowsVista/7のパスが紹介されているので、更新しました。(2012-05-14)
http://blogs.vmware.com/thinapp/2012/05/macro-folder-locations-and-newer-versions-of-windows.html

例)
%Appdata%は、
WindowsXPでは、C:\Documents and Settings\<user_name>\Application Data
Windows7では、C:\Users\<user_name>\AppData\Roaming

【Windows XP , Server 2003】
マクロ名
マッピング先(フォルダ名)
%AdminTools%
C:\Documents and Settings\<user_name>\Start Menu\Programs\Administrative Tools
%AppData%
C:\Documents and Settings\<user_name>\Application Data
%CDBurn Area%
C:\Documents and Settings\<user_name>\Local Settings\ApplicationData\Microsoft\CD Burning
%Common AdminTools%
C:\Documents and Settings\All Users\Start Menu\Programs\Administrative Tools
%Common AppData%
C:\Documents and Settings\All Users\Application Data
%Common Desktop%
C:\Documents and Settings\All Users\Desktop
%Common Documents%
C:\Documents and Settings\All Users\Documents
%Common Favorites%
C:\Documents and Settings\All Users\Favorites
%Common Programs%
C:\Documents and Settings\All Users\Start Menu\Programs
%Common StartMenu%
C:\Documents and Settings\All Users\Start Menu
%Common Startup%
C:\Documents and Settings\All Users\Start Menu\Programs\Startup
%Common Templates%
C:\Documents and Settings\All Users\Templates
%Cookies%
C:\Documents and Settings\<user_name>\Cookies
%Desktop%
C:\Documents and Settings\<user_name>\デスクトップ
%Drive_c%
C:\
%Drive_m%
M:\
%Favorites%
C:\Documents and Settings\<user_name>\Favorites
%Fonts%
C:\Windows\Fonts
%History%
C:\Documents and Settings\<user_name>\Local Settings\History
%Internet Cache%
C:\Documents and Settings\<user_name>\Local Settings\Temporary Internet Files
%Local AppData%
C:\Documents and Settings\<user_name>\Local Settings\Application Data
%My Pictures%
C:\Documents and Settings\<user_name>\My Documents\My Pictures
%My Videos%
C:\Documents and Settings\<user_name>\My Documents\My Videos
%NetHood%
C:\Documents and Settings\<user_name>\NetHood
%Personal%
C:\Documents and Settings\<user_name>\My Documents
%PrintHood%
C:\Documents and Settings\<user_name>\PrintHood
%Profile%
C:\Documents and Settings\<user_name>
%Profiles%
C:\Documents and Settings
%Program Files Common%
C:\Program Files\Common Files
%ProgramFilesDir%
C:\Program Files
%Programs%
C:\Documents and Settings\<user_name>\Start Menu\Programs
%Recent%
C:\Documents and Settings\<user_name>\My Recent Documents
%Resources%
C:\Windows\Resources
%Resources Localized%
C:\Windows\Resources\<language_ID>
%SendTo%
C:\Documents and Settings\<user_name>\SendTo
%Startup%
C:\Documents and Settings\<user_name>\Start Menu\Programs\Startup
%SystemRoot%
C:\Windows
%SystemSystem%
C:\Windows\System32
%TEMP%
C:\Documents and Settings\<user_name>\Local Settings\Temp
%Templates%
C:\Documents and Settings\<user_name>\Templates

【Windows Vista, 7 ,Server 2008 】
マクロ名
マッピング先(フォルダ名)
%AdminTools%
C:\Users\<user_name>\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Administrative Tools
%AppData%
C:\Users\<user_name>\AppData\Roaming
%CDBurn Area%
C:\Users\<user_name>\AppData\Local\Microsoft\Burn
%Common AdminTools%
C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Administrative Tools
%Common AppData%
C:\ProgramData
%Common Desktop%
C:\Users\Public\Desktop
%Common Documents%
C:\Users\Public\Documents
%Common Favorites%
C:\Users\Public\Favorites
%Common Programs%
C:\ProgramData\Microsoft\Windows\Start Menu\Programs
%Common StartMenu%
C:\ProgramData\Microsoft\Windows\Start Menu
%Common Startup%
C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Startup
%Common Templates%
C:\ProgramData\Microsoft\Windows\Templates
%Cookies%
C:\Users\<user_name>\AppData\Roaming\Microsoft\Windows\Cookies
%Desktop%
C:\Users\<user_name>\Desktop
%Drive_c%
C:\
%Drive_m%
M:\
%Favorites%
C:\User\<user_name>\Favorites
%Fonts%
C:\Windows\Fonts
%History%
C:\Users\<user_name>\Local\Microsoft\Windows\History
%Internet Cache%
C:\Users\<user_name>\Local\Microsoft\Windows\Temporary Internet Files
%Local AppData%
C:\Users\<user_name>\Local
%My Pictures%
C:\Users\<user_name>\Pictures
%My Videos%
C:\Users\<user_name>\Videos
%NetHood%
C:\Users\<user_name>\AppData\Roaming\Microsoft\Windows\Network Shortcuts
%Personal%
C:\Users\<user_name>\Documents
%PrintHood%
C:\Users\<user_name>\AppData\Roaming\Microsoft\Windows\Printer Shortcuts
%Profile%
C:\Users\<user_name>
%Profiles%
C:\Users
%Program Files Common%
C:\Program Files\Common Files
%ProgramFilesDir%
C:\Program Files
%Programs%
C:\Users\<user_name>\AppData\Roaming\Microsoft\Windows\Start Menu\Programs
%Recent%
C:\Users\<user_name>\AppData\Roaming\Microsoft\Windows\Recent
%Resources%
C:\Windows\Resources
%Resources Localized%
C:\Windows\Resources\<language_ID>
%SendTo%
C:\Users\<user_name>\AppData\Roaming\Microsoft\Windows\SendTo
%Startup%
C:\Users\<user_name>\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup
%SystemRoot%
C:\Windows
%SystemSystem%
C:\Windows\System32
%TEMP%
C:\Users\<user_name>\AppData\Local\Temp
%Templates%
C:\Users\<user_name>\AppData\Roaming\Microsoft\Windows\Templates
特別なフォルダについては、以下のリンクが詳しいです。
http://msdn.microsoft.com/en-us/library/windows/desktop/dd378457(v=vs.85).aspx


ThinApp で組み込みできるスクリプトのAPIとCallback Function
仮想化されたアプリの起動時や、終了時等の、任意の処理を行いたい場合があると思います。
その際に、ThinAppでは、組込スクリプトを利用しますが、
その中で利用できるAPIの一覧についてまとめてみました。

組込Scriptの利用例は、以前の投稿を参照ください。

ThinApp / App-V 任意のコマンドを実行する方法


Callback Functions
OnFirstSandboxOwner
サンドボックスのロック時に呼ばれます。
OnFirstParentStart
親プロセスが開始されるときに呼ばれます。
OnFirstParentExit
親プロセスが終了するときに呼ばれます。
OnLastProcessExit
子プロセス含め、すべてのプロセスが終了するときに呼ばれます。




API Functions
AddForcedVirtualLoadPath
指定したDLLを仮想DLLとして呼び出します。
ExitProcess
現在のプロセスを終了します。
ExpandPath
フォルダマクロを変換します。
ExecuteExternalProcess
物理環境で指定したプロセスを実行します。
ExecuteVirtualProcess
仮想環境で指定したプロセスを実行します。
GetBuildOption
Package.ini[BuildOptions]セクションの値を返します。
GetFileVersionValue
ファイルバージョンを取得します。
GetCommandLine
コマンドラインパラメータを取得します。
GetCurrentProcessName
仮想環境の内部の完全な実行パス名を表す文字列を取得します。
GetOSVersion
現在のOSバージョンを取得します。
GetEnvironmentVariable
環境変数値を取得します。
RemoveSandboxOnExit
プロセス終了時にサンドボックスを削除します。
SetEnvironmentVariable
環境変数に値を設定します。
SetFileSystemIsolation
ファイルのIsolationModeを変更します。
SetRegistryIsolation
レジストリのIsolationModeを変更します。
WaitForProcess
プロセスの終了を待ちます。


参考
ThinAppユーザーガイド 4.6.1(日本語)
http://www.vmware.com/files/jp/pdf/support/VMware-thinapp461-user-guide_PG_JA.pdf