最近、WindowsでもCrystalが使えるようになった。
Rubyを使ってWindows向けの exe ファイルを作成するのはいろいろな困難が伴うが、Crystalを使えばRubyにかなり近い書き味で、実行形式のファイルを作ることができる。
とはいえ、まだ良いGUIライブラリが存在しない。
正確に言うと、CrystalにおいてWindowsにおいて共有ライブラリを呼び出すところはまだ開発途上で、実例が少ない。
そんな時でも、powershell.exe
を使えば、簡単なダイアログは表示できる。たとえば、ファイル選択ダイアログを表示するのは次のような感じである。
cmd = <<-CMD
powershell.exe -command
Add-Type -AssemblyName System.Windows.Forms
$openFileDialog = New-Object System.Windows.Forms.OpenFileDialog
$openFileDialog.initialDirectory = $InitialDirectory
$openFileDialog.filter = "All files (*.*)| *.*"
$openFileDialog.ShowDialog() > $null
Write-Host $openFileDialog.Filename
CMD
ps = Process.new(cmd, shell: true, output: Process::Redirect::Pipe, error: Process::Redirect::Pipe)
stdout = ps.output
content = ps.output.gets_to_end
path = Path.windows(content.strip)
p File.exists?(path)
はい。完全に一発芸でした。
Powerhsellではいろいろダイアログが出せるらしいです。詳しく知りたい人はコチラをご覧ください。この記事は以上です。