「MonoMac/外部コマンドを実行する」の版間の差分
| (他の1人の利用者による、間の2版が非表示) | |||
| 2行目: | 2行目: | ||
==実装1== | ==実装1== | ||
[[Mac OS X]]のhdiutilコマンドで[[暗号化]]された[[dmgファイル]] | ===dmgファイルを作ってみる=== | ||
[[Mac OS X]]のhdiutilコマンドで[[暗号化]]された[[dmgファイル]]を作ってみる。[[Cocoa]]の[[API]]に直接的にdmgファイルを生成するものはないかと[[ググった]]が、[[stackoverflow.com]]によると無いようだ。 | |||
hdiutilコマンドで暗号化されたdmgファイルを生成する際には[[コマンドプロンプト]]上で[[パスワード]]の入力が求められるが、[[標準入力]]へ[[パイプ]](NSPipe)を渡すことで攻略できる模様。sudoコマンドなどでも確認済み。NSPipeに渡す[[文字列]]の末尾は「\0\n」となる点に注意(「¥」は実際には[[バックスラッシュ]]、[[Mac]]で[[バックスラッシュ]] | ===標準入力へ文字列を渡す=== | ||
hdiutilコマンドで暗号化されたdmgファイルを生成する際には[[コマンドプロンプト]]上で[[パスワード]]の入力が求められるが、[[標準入力]]へ[[パイプ]](NSPipe)を渡すことで攻略できる模様。sudoコマンドなどでも確認済み。NSPipeに渡す[[文字列]]の末尾は「\0\n」となる点に注意(「¥」は実際には[[バックスラッシュ]]、[[Mac]]で[[バックスラッシュ]]を打つには「[[Optionキー]]」を押しながら「¥キー」を押す)。 | |||
===NSTaskに渡す各種パス=== | |||
NSTaskに渡す外部コマンドや[[引数]]などの各種パスは[[相対パス]]ではなく[[絶対パス]]でなければならないようだ。なお、NSTaskで実行する外部コマンドを「/bin/sh -c <実際のコマンド>」として[[シェル]]を経由することで相対パスも利用できるようだが、オススメできるかは知らん。 | |||
===ソース=== | |||
<source lang="csharp"> | <source lang="csharp"> | ||
using System; | using System; | ||
| 68行目: | 73行目: | ||
==関連項目== | ==関連項目== | ||
*[[MonoMac]] | * [[MonoMac]] | ||
* [[Xamarin.Mac/AppleScriptを実行する]] | |||
* [[Xamarin.Mac/実行中のプロセス一覧を取得する]] | |||
==参考文献== | ==参考文献== | ||