For Development HEAD DRAFTSearch (procedure/syntax/module):

12.39 os.windows - Windowsのサポート

Module: os.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>コンディションが投げられます。


12.39.1 Windowsアイアログ

今のところ、MessageBoxが使えます。

Function: sys-message-box window message :optional caption flags

{os.windows} WindowsのMessageBox APIを呼びます。 windowはウィンドウハンドルか#fでなければなりませが、 今のところウィンドウハンドルを得るAPIがないので、常に#fを渡してください。 message引数はメッセージボックスに表示する文字列です。 省略可能なcaption引数はウィンドウタイトルに使われる文字列です。

flags引数は以下に挙げる定数をlogiorで組み合わせた整数です。 詳しくはWindowsのリファレンスマニュアルを参照してください。

Buttons

MB_ABORTRETRYIGNORE, MB_CANCELTRYCONTINUE, MB_HELP, MB_OK (default), MB_OKCANCEL, MB_RETRYCANCEL, MB_YESNO, MB_YESNOCANCEL

Icon

デフォルトはアイコン無し。指定可能な値は: MB_ICONEXCLAMATION, MB_ICONWARNING, MB_ICONINFORMATION, MB_ICONASTERISK, MB_ICONQUESTION, MB_ICONSTOP, MB_ICONERROR, MB_ICONHAND

Default button

MB_DEFBUTTON1 (default), MB_DEFBUTTON2, MB_DEFBUTTON3, MB_DEFBUTTON4

Modality

MB_APPLMODAL (default), MB_SYSTEMMODAL, MB_TASKMODAL

Other options

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


12.39.2 WindowsコンソールAPI

以下のほとんどの手続きはWindowsコンソールAPIと1対1対応しています。 詳しくはWindows APIの対応するドキュメントを参照してください。

アタッチとデタッチ

Function: sys-alloc-console
Function: sys-free-console

[Windows] {os.windows} それぞれ、AllocConsoleFreeConsoleを呼びます。 未定義値を返します。

Function: sys-generate-console-ctrl-event event pgid

[Windows] {os.windows} GenerateConsoleCtrlEventを呼びます。 event引数にはCTRL_C_EVENTCTRL_BREAK_EVENTを指定できます。

Constant: CTRL_C_EVENT
Constant: CTRL_BREAK_EVENT

[Windows] {os.windows} sys-generate-console-ctl-eventevent引数に渡せる定数です。

コンソールコードページ

Function: sys-get-console-cp
Function: sys-get-console-output-cp
Function: sys-set-console-cp codepage
Function: sys-set-console-output-cp codepage

[Windows] {os.windows} それぞれ、GetConsoleCPGetConsoleOutputCPSetConsoleCPSetConsoleOutputCPを呼びます。 値をセットする手続きは未定義値を返します。

コンソールカーソル

Function: sys-get-console-cursor-info handle
Function: sys-set-console-cursor-info handle size visible

[Windows] {os.windows} それぞれ、GetConsoleCursorInfoSetConsoleCursorInfoを呼びます。 handleはコンソールスクリーンバッファのハンドルです (下のsys-create-console-screen-bufferを参照)。 sys-get-console-cursor-infoはカーソルのサイズ (カーソルがどのくらいセルを覆うかのパーセンテージ、1から100)および カーソルが見えているかどうかの真偽値を2つの値として返します。 sys-set-console-cursor-infoはカーソルのサイズパーセンテージと 可視かどうかの真偽値を取ってセットし、未定義値を返します。

Function: sys-set-console-cursor-position handle x y

[Windows] {os.windows} SetConsoleCursorPositionを呼びます。 handleはコンソールスクリーンバッファのハンドルです (下のsys-create-console-screen-bufferを参照)。 xyは文字単位のカーソル位置で、スクリーンバッファ左上端が(0, 0)です。 未定義値を返します。

現在のカーソル位置を得るには sys-get-console-screen-buffer-infoが使えます。

コンソールモード

Function: sys-get-console-mode handle
Function: sys-set-console-mode handle mode

[Windows] {os.windows}

Constant: ENABLE_LINE_INPUT
Constant: ENABLE_ECHO_INPUT
Constant: ENABLE_PROCESSED_INPUT
Constant: ENABLE_WINDOW_INPUT
Constant: ENABLE_MOUSE_INPUT
Constant: ENABLE_PROCESSED_OUTPUT
Constant: ENABLE_WRAP_AT_EOL_OUTPUT

[Windows] {os.windows}

スクリーンバッファ

Function: sys-create-console-screen-buffer desired-access share-mode inheritable

[Windows] {os.windows}

Constant: GENERIC_READ
Constant: GENERIC_WRITE

[Windows] {os.windows}

Constant: FILE_SHARE_READ
Constant: FILE_SHARE_WRITE

[Windows] {os.windows}

Function: sys-set-console-active-screen-buffer handle

[Windows] {os.windows}

Function: sys-scroll-console-screen-buffer handle scroll-rectangle clip-rectangle x y fill

[Windows] {os.windows}

Class: <win:console-screen-buffer-info>

[Windows] {os.windows}

Instance Variable of <win:console-screen-buffer-info>: size.x
Instance Variable of <win:console-screen-buffer-info>: size.y
Instance Variable of <win:console-screen-buffer-info>: cursor-position.x
Instance Variable of <win:console-screen-buffer-info>: cursor-position.y
Instance Variable of <win:console-screen-buffer-info>: attributes
Instance Variable of <win:console-screen-buffer-info>: window.left
Instance Variable of <win:console-screen-buffer-info>: window.top
Instance Variable of <win:console-screen-buffer-info>: window.right
Instance Variable of <win:console-screen-buffer-info>: window.bottom
Instance Variable of <win:console-screen-buffer-info>: maximum-window-size.x
Instance Variable of <win:console-screen-buffer-info>: maximum-window-size.y
Constant: FOREGROUND_BLUE
Constant: FOREGROUND_GREEN
Constant: FOREGROUND_RED
Constant: FOREGROUND_INTENSITY
Constant: BACKGROUND_BLUE
Constant: BACKGROUND_GREEN
Constant: BACKGROUND_RED
Constant: BACKGROUND_INTENSITY

[Windows] {os.windows}

Function: sys-get-console-screen-buffer-info handle

[Windows] {os.windows}

Function: sys-get-largest-console-window-size handle

[Windows] {os.windows}

Function: sys-set-screen-buffer-size handle x y

[Windows] {os.windows}

コンソール入出力

Class: <win:input-record>

[Windows] {os.windows}

Instance Variable of <win:input-record>: event-type
Instance Variable of <win:input-record>: key.down
Instance Variable of <win:input-record>: key.repeat-count
Instance Variable of <win:input-record>: key.virtual-key-code
Instance Variable of <win:input-record>: key.virtual-scan-code
Instance Variable of <win:input-record>: key.unicode-char
Instance Variable of <win:input-record>: key.ascii-char
Instance Variable of <win:input-record>: key.control-key-state
Instance Variable of <win:input-record>: mouse.x
Instance Variable of <win:input-record>: mouse.y
Instance Variable of <win:input-record>: mouse.button-state
Instance Variable of <win:input-record>: mouse.control-key-state
Instance Variable of <win:input-record>: mouse.event-flags
Instance Variable of <win:input-record>: window-buffer-size.x
Instance Variable of <win:input-record>: window-buffer-size.y
Instance Variable of <win:input-record>: menu.command-id
Instance Variable of <win:input-record>: focus.set-focus
Function: sys-get-number-of-console-input-events handle

[Windows] {os.windows}

Function: sys-get-number-of-console-mouse-buttons

[Windows] {os.windows}

Function: sys-peek-console-input handle
Function: sys-read-console-input handle

[Windows] {os.windows}

Function: sys-read-console handle buf

[Windows] {os.windows}

Function: sys-read-console-output handle buf w h x y region

[Windows] {os.windows}

Function: sys-read-console-output-attribute handle buf x y

[Windows] {os.windows}

Function: sys-read-console-output-character handle len x y

[Windows] {os.windows}

Function: sys-set-console-text-attribute handle attr

[Windows] {os.windows}

Function: sys-set-console-window-info handle absolute window

[Windows] {os.windows}

Function: sys-write-console handle string

[Windows] {os.windows}

Function: sys-write-console-output-character handle string x y

[Windows] {os.windows}

Function: sys-fill-console-output-character handle char len x y

[Windows] {os.windows}

Function: sys-fill-console-output-attribute handle attr len x y

[Windows] {os.windows}

Function: sys-flush-console-input-buffer handle

[Windows] {os.windows}

Function: sys-get-console-title

[Windows] {os.windows}

Function: sys-set-console-title string

[Windows] {os.windows}

標準ハンドル

Function: sys-get-std-handle which
Function: sys-set-std-handle which handle

[Windows] {os.windows}

Constant: STD_INPUT_HANDLE
Constant: STD_OUTPUT_HANDLE
Constant: STD_ERROR_HANDLE

[Windows] {os.windows}



For Development HEAD DRAFTSearch (procedure/syntax/module):
DRAFT