# eduwin 命令行参数 API

> 头文件：`eduwin_cmd.h`（或通过 `eduwin.h` 统一引用）

命令行参数解析模块，支持 `--key value`、`--flag`、`--key="value with space"` 等格式，自动调用 `CommandLineToArgvW` 完成解析。

## 示例

```bash
# 不传参运行
cmd_demo.exe

# 传参运行
cmd_demo.exe --visible --url https://www.bing.com
cmd_demo.exe --name MyApp --port 8080
cmd_demo.exe --help
```

## 初始化 / 清理

```c
void cmd_init(void);
void cmd_cleanup(void);
```

`cmd_init()` 在程序最开头调用（`init_app()` 之前）。`cmd_cleanup()` 可选（进程退出自动回收）。

## 参数查询

```c
int         cmd_has(const WCHAR *name);
const WCHAR *cmd_get(const WCHAR *name);
const WCHAR *cmd_get_def(const WCHAR *name, const WCHAR *def);
int         cmd_is(const WCHAR *name);
```

- `cmd_has(name)` — 是否有该参数（包括开关和带值）
- `cmd_get(name)` — 获取参数值（如 `--url` 的值），不存在返回 `L""`
- `cmd_get_def(name, def)` — 同上，带默认值
- `cmd_is(name)` — 检测无参开关（如 `--headless`、`--help`），存在返回 1

```c
cmd_init();

if (cmd_is(L"--help")) {
    cmd_print_help(L"AI Browser");
    return 0;
}

const WCHAR *url = cmd_get_def(L"--url", L"about:blank");
int port = _wtoi(cmd_get_def(L"--port", L"9099"));
int headless = cmd_is(L"--headless");

cmd_cleanup();
```

## 帮助信息

```c
void cmd_print_help(const WCHAR *desc);
```

打印帮助信息到控制台。`desc` 为程序描述文字。帮助内容通过一个内部注册表自动生成。
