windowsだと
wsl -d Ubuntu
してから
npm install -g @anthropic-ai/claude-code
バージョン確認は
claude code --version
windowsだと
wsl -d Ubuntu
してから
npm install -g @anthropic-ai/claude-code
バージョン確認は
claude code --version
#include <chrono> #include <ctime> #include <iomanip> #include <sstream> #include <string> #include <Windows.h> // 日本時間で営業時間内(9:00-15:30、土日を除く)かどうかを判定する関数 BOOL IsJapanMarketHours() { // 現在のUTC時間を取得 auto now = std::chrono::system_clock::now(); auto now_time_t = std::chrono::system_clock::to_time_t(now); // UTCの時間を構造体に変換 std::tm utc_tm; gmtime_s(&utc_tm, &now_time_t); // 日本時間に変換(UTC+9時間) std::tm jst_tm = utc_tm; jst_tm.tm_hour += 9; // 日付の繰り上げ処理 std::mktime(&jst_tm); // 曜日を取得(0=日曜日, 1=月曜日, ..., 6=土曜日) int dayOfWeek = jst_tm.tm_wday; // 土曜日(6)または日曜日(0)の場合はFALSEを返す if (dayOfWeek == 0 || dayOfWeek == 6) { return FALSE; } // 時間と分を取得 int hour = jst_tm.tm_hour; int minute = jst_tm.tm_min; // 現在の時刻を分単位に変換(9:00は540分、15:30は930分) int currentMinutes = hour * 60 + minute; // 9:00から15:30の間かどうかをチェック if (currentMinutes >= 540 && currentMinutes <= 930) { return TRUE; } return FALSE; } // 日本時間を文字列で取得する補助関数 std::wstring GetJapanTimeString() { // 現在のUTC時間を取得 auto now = std::chrono::system_clock::now(); auto now_time_t = std::chrono::system_clock::to_time_t(now); // UTCの時間を構造体に変換 std::tm utc_tm; gmtime_s(&utc_tm, &now_time_t); // 日本時間に変換(UTC+9時間) std::tm jst_tm = utc_tm; jst_tm.tm_hour += 9; // 日付の繰り上げ処理 std::mktime(&jst_tm); // 日本時間を文字列に変換 std::wstringstream wss; wss << std::put_time(&jst_tm, L"%Y-%m-%d %H:%M:%S JST"); return wss.str(); } // 使用例 void Example() { std::wstring japanTime = GetJapanTimeString(); std::wstring message; if (IsJapanMarketHours()) { message = L"現在は取引時間内です\n日本時間: " + japanTime; } else { message = L"現在は取引時間外です\n日本時間: " + japanTime; } MessageBox(NULL, message.c_str(), L"日本市場状態", MB_OK | MB_ICONINFORMATION); }
<?php // エラー表示を有効化 ini_set('display_errors', 1); ini_set('display_startup_errors', 1); error_reporting(E_ALL); // エラーログの場所を指定(アクセス権があるディレクトリを指定) ini_set('error_log', './error.log'); // デバッグ情報をログに記録 error_log('Debug: order.php accessed at ' . date('Y-m-d H:i:s')); // 実行時間の延長(必要な場合) set_time_limit(60); // メモリ制限の拡大(必要な場合) ini_set('memory_limit', '256M'); try { // ここに既存のコードを配置 // サーバー情報、POSTデータなどのデバッグ error_log('SERVER: ' . print_r($_SERVER, true)); error_log('POST: ' . print_r($_POST, true)); error_log('GET: ' . print_r($_GET, true)); // ここから既存のコードを続ける... } catch (Exception $e) { // 例外をログに記録 error_log('Exception: ' . $e->getMessage()); error_log('Trace: ' . $e->getTraceAsString()); // エラーメッセージを表示(開発環境のみ) echo '<h1>エラーが発生しました</h1>'; echo '<p>詳細: ' . $e->getMessage() . '</p>'; echo '<p>エラーの詳細はログに記録されました。</p>'; exit; } ?>
Puppeteer MCP Serverを動作させるには、Node.jsとnpmが必要です。以下のコマンドでインストール済みか確認してください:
node -v npm -v
npx -y @modelcontextprotocol/server-puppeteer
Claude Desktopの設定ファイルは以下の場所にあります:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json
windowsの場合
"mcpServers": { "puppeteer": { "command": "node", "args": [ "C:\\Users\\<user名>\\AppData\\Roaming\\npm\\node_modules\\@modelcontextprotocol\\server-puppeteer\\dist\\index.js" ] },...
Macの場合
"mcpServers": { "puppeteer": { "command": "npx", "args": ["-y", "@modelcontextprotocol/server-puppeteer"] } }
タスクトレイからちゃんと落とすこと
wslからUbuntu起動
wsl -d Ubuntu
claude code起動
claude
batファイル(パスは環境にあわせること)
wsl -d Ubuntu bash -c "/home/<user>/.nvm/versions/node/v22.14.0/bin/node /home/<user>/.nvm/versions/node/v22.14.0/lib/node_modules/@anthropic-ai/claude-code/cli.js"
これをプロジェクトのルートなど、実行したい場所において、そこから起動させればOK
private async void Form1_Load(object sender, EventArgs e) { // アプリケーションのベースディレクトリを取得する改良された方法 string directoryPath; // Assembly.Location が空の場合は AppContext.BaseDirectory を使用 string assemblyPath = Assembly.GetExecutingAssembly().Location; if (string.IsNullOrEmpty(assemblyPath)) { // 単一ファイル配置の場合はこちらが実行される directoryPath = AppContext.BaseDirectory; } else { // 通常配置の場合はこちらが実行される directoryPath = Path.GetDirectoryName(assemblyPath); } .... }
// Slack送信関数 function sendSlackMessage($webhook_url, $message) { try { $data = array( 'payload' => json_encode(array( 'text' => $message )) ); $ch = curl_init($webhook_url); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, $data); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_TIMEOUT, 30); $result = curl_exec($ch); if ($result === false) { throw new Exception("Slack通知の送信に失敗しました: " . curl_error($ch)); } curl_close($ch); return true; } catch (Exception $e) { error_log("Slack通知エラー: " . $e->getMessage()); return false; } }
こんな感じ
const auto commonLogic = [](bool isInit) { // 共通処理 }; dlg.RegisterMenu(ID_ADDCLIPBORD, [](&commonLogic) { commonLogic(false); }); dlg.RegisterMenu(ID_INITCLIPBORD, [](&commonLogic) { commonLogic(true); });
# 仮想環境をアクティブ化して .venv\Scripts\activate # インストール済みパッケージのリストを作成 uv pip freeze > requirements.txt