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}