os.windows
- Windowsのサポート ¶このモジュールはWindowsネイティブのGaucheにのみあり、
Windows特有の機能を提供します。
cond-expand
マクロでgauche.os.windows
機能特定子を使うことにより、
Windows特有の機能をコードに含めることができます
(機能条件式参照)。
(cond-expand [gauche.os.windows (use os.windows) ... Windows-specific code ...] [else ... Unix code ...])
特に記述のない場合、Windows APIがエラーを返した場合には
<system-error>
コンディションが投げられます。
• Windowsアイアログ: | ||
• WindowsコンソールAPI: |
今のところ、MessageBoxが使えます。
{os.windows
}
WindowsのMessageBox APIを呼びます。
windowはウィンドウハンドルか#f
でなければなりませが、
今のところウィンドウハンドルを得るAPIがないので、常に#f
を渡してください。
message引数はメッセージボックスに表示する文字列です。
省略可能なcaption引数はウィンドウタイトルに使われる文字列です。
flags引数は以下に挙げる定数をlogior
で組み合わせた整数です。
詳しくはWindowsのリファレンスマニュアルを参照してください。
MB_ABORTRETRYIGNORE
,
MB_CANCELTRYCONTINUE
,
MB_HELP
,
MB_OK
(default),
MB_OKCANCEL
,
MB_RETRYCANCEL
,
MB_YESNO
,
MB_YESNOCANCEL
デフォルトはアイコン無し。指定可能な値は:
MB_ICONEXCLAMATION
,
MB_ICONWARNING
,
MB_ICONINFORMATION
,
MB_ICONASTERISK
,
MB_ICONQUESTION
,
MB_ICONSTOP
,
MB_ICONERROR
,
MB_ICONHAND
MB_DEFBUTTON1
(default),
MB_DEFBUTTON2
,
MB_DEFBUTTON3
,
MB_DEFBUTTON4
MB_APPLMODAL
(default),
MB_SYSTEMMODAL
,
MB_TASKMODAL
MB_DEFAULT_DESKTOP_ONLY
,
MB_RIGHT
,
MB_RTLREADING
,
MB_SETFOREGROUND
,
MB_TOPMOST
,
MB_SERVICE_NOTIFICATION
戻り値は、どのボタンが押されたかを示す次の整数値のいずれかです。
IDABORT
,
IDCANCEL
,
IDCONTINUE
,
IDIGNORE
,
IDNO
,
IDOK
,
IDRETRY
,
IDTRYAGAIN
, or
IDYES
以下のほとんどの手続きはWindowsコンソールAPIと1対1対応しています。 詳しくはWindows APIの対応するドキュメントを参照してください。
[Windows]
{os.windows
}
それぞれ、AllocConsole
とFreeConsole
を呼びます。
未定義値を返します。
[Windows]
{os.windows
}
GenerateConsoleCtrlEvent
を呼びます。
event引数にはCTRL_C_EVENT
かCTRL_BREAK_EVENT
を指定できます。
[Windows]
{os.windows
}
sys-generate-console-ctl-event
のevent引数に渡せる定数です。
[Windows]
{os.windows
}
それぞれ、GetConsoleCP
、GetConsoleOutputCP
、
SetConsoleCP
、SetConsoleOutputCP
を呼びます。
値をセットする手続きは未定義値を返します。
[Windows]
{os.windows
}
それぞれ、GetConsoleCursorInfo
とSetConsoleCursorInfo
を呼びます。
handleはコンソールスクリーンバッファのハンドルです
(下のsys-create-console-screen-buffer
を参照)。
sys-get-console-cursor-info
はカーソルのサイズ
(カーソルがどのくらいセルを覆うかのパーセンテージ、1から100)および
カーソルが見えているかどうかの真偽値を2つの値として返します。
sys-set-console-cursor-info
はカーソルのサイズパーセンテージと
可視かどうかの真偽値を取ってセットし、未定義値を返します。
[Windows]
{os.windows
}
SetConsoleCursorPosition
を呼びます。
handleはコンソールスクリーンバッファのハンドルです
(下のsys-create-console-screen-buffer
を参照)。
xとyは文字単位のカーソル位置で、スクリーンバッファ左上端が(0, 0)です。
未定義値を返します。
現在のカーソル位置を得るには
sys-get-console-screen-buffer-info
が使えます。
[Windows]
{os.windows
}
[Windows]
{os.windows
}
[Windows]
{os.windows
}
[Windows]
{os.windows
}
[Windows]
{os.windows
}
[Windows]
{os.windows
}
<win:console-screen-buffer-info>
: size.x ¶<win:console-screen-buffer-info>
: size.y ¶<win:console-screen-buffer-info>
: cursor-position.x ¶<win:console-screen-buffer-info>
: cursor-position.y ¶<win:console-screen-buffer-info>
: attributes ¶[Windows]
{os.windows
}
[Windows]
{os.windows
}
[Windows]
{os.windows
}
[Windows]
{os.windows
}
[Windows]
{os.windows
}
<win:input-record>
: event-type ¶<win:input-record>
: key.down ¶<win:input-record>
: key.repeat-count ¶<win:input-record>
: key.virtual-key-code ¶<win:input-record>
: key.virtual-scan-code ¶<win:input-record>
: key.unicode-char ¶<win:input-record>
: key.ascii-char ¶<win:input-record>
: key.control-key-state ¶<win:input-record>
: mouse.x ¶<win:input-record>
: mouse.y ¶<win:input-record>
: mouse.button-state ¶<win:input-record>
: mouse.control-key-state ¶<win:input-record>
: mouse.event-flags ¶<win:input-record>
: window-buffer-size.x ¶<win:input-record>
: window-buffer-size.y ¶<win:input-record>
: focus.set-focus ¶[Windows]
{os.windows
}
[Windows]
{os.windows
}
[Windows]
{os.windows
}
[Windows]
{os.windows
}
[Windows]
{os.windows
}
[Windows]
{os.windows
}
[Windows]
{os.windows
}
[Windows]
{os.windows
}
[Windows]
{os.windows
}
[Windows]
{os.windows
}
[Windows]
{os.windows
}
[Windows]
{os.windows
}
[Windows]
{os.windows
}
[Windows]
{os.windows
}
[Windows]
{os.windows
}
[Windows]
{os.windows
}