<!DOCTYPE html> <html lang="ja"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>日付に応じたリダイレクト</title> </head> <body> <script> // 現在の日付を取得 const currentDate = new Date(); // 日にちを取得(1-31) const dayOfMonth = currentDate.getDate(); // 偶数日か奇数日かを判断し、適切なページにリダイレクト if (dayOfMonth % 2 === 0) { // 偶数日の場合 window.location.href = 'index1.html'; } else { // 奇数日の場合 window.location.href = 'index2.html'; } </script> </body> </html>
windowsでファイルをわざとロックさせる方法
powershellで以下を実行
$file = "C:\path\to\your\file.txt" $fileStream = [System.IO.File]::Open($file, 'Open', 'Read', 'None')
C++ 拡張子がcsvかのチェック
#include <cstring> #include <cctype> // ... if (strlen(p) > 4) { const char* ext = p + strlen(p) - 4; if (_stricmp(ext, ".csv") == 0) { // 拡張子が .csv または .CSV } }
_stricmp()は大文字小文字区別しない比較関数。
MFC CDateTimeCtrlで現在の日時指定
// 現在の日時に設定する SYSTEMTIME st; GetLocalTime(&st); pDateTimeCtrl->SetTime(&st);
MFC ダイアログ上の部品全部非表示する
// 全てのオブジェクトを非表示にする CWnd* pChild = GetWindow(GW_CHILD); while (pChild) { int nID = pChild->GetDlgCtrlID(); pChild->ShowWindow(SW_HIDE); pChild = pChild->GetWindow(GW_HWNDNEXT); }
MFC top / left が 0 なら、親ウインドウの中心とこのウィンドウの中心が合うようにする
// top / left が 0 なら、親ウインドウの中心とこのウィンドウの中心が合うようにする if (top == 0 && left == 0) { CWnd* pParentWnd = (CWnd*)GetParent(); if (pParentWnd) { CRect parentRect; pParentWnd->GetWindowRect(&parentRect); CRect dialogRect; GetWindowRect(&dialogRect); int parentCenterX = parentRect.left + (parentRect.Width() / 2); int parentCenterY = parentRect.top + (parentRect.Height() / 2); int dialogWidth = dialogRect.Width(); int dialogHeight = dialogRect.Height(); left = parentCenterX - (dialogWidth / 2); top = parentCenterY - (dialogHeight / 2); } }
MFC 今カーソルが砂時計かの確認
HCURSOR hCursor = GetCursor(); if (hCursor == LoadCursor(NULL, IDC_WAIT)) { // カーソルは砂時計 } else { // カーソルは砂時計ではない }
MFC チェックボックスのテキスト文字に合わせた幅調整する
/// <summary> /// テキストの幅を計算し、チェックボックスのチェックマーク部分の幅を考慮して、適切なサイズのCRectを返します /// </summary> /// <param name="text"></param> /// <returns></returns> CRect CalculateCheckboxRect(CButton* pCheckbox, const CString& text) { CDC* pDC = pCheckbox->GetDC(); CFont* pOldFont = pDC->SelectObject(pCheckbox->GetFont()); CSize textSize = pDC->GetTextExtent(text); pDC->SelectObject(pOldFont); pCheckbox->ReleaseDC(pDC); // チェックボックスのチェックマーク部分の幅と高さ(システムメトリクスから取得) int checkWidth = GetSystemMetrics(SM_CXMENUCHECK); int checkHeight = GetSystemMetrics(SM_CYMENUCHECK); // 余白を追加(左右に5ピクセルずつ、上下に2ピクセルずつ) int width = textSize.cx + checkWidth + 10; // 左右の余白10ピクセル int height = max(textSize.cy, checkHeight) + 4; // 上下の余白4ピクセル(2 + 2) // x座標に5ピクセル加えて左の余白を確保 // y座標に2ピクセル加えて上の余白を確保 return CRect(5, 2, width + 5, height + 2); }
pythonでライブドアブログのsitemap.xmlからURLの一覧を取得する
import requests from xml.etree import ElementTree import time def fetch_sitemap(url): response = requests.get(url) return response.content def parse_sitemap(content): root = ElementTree.fromstring(content) # サイトマップインデックスの名前空間を取得 ns = {'sm': root.tag.split('}')[0].strip('{')} urls = [] # サイトマップまたはURLエントリを探す for sitemap in root.findall('.//sm:sitemap', ns) + root.findall('.//sm:url', ns): loc = sitemap.find('sm:loc', ns) if loc is not None: urls.append(loc.text) return urls def get_all_urls(start_url): to_crawl = [start_url] crawled = set() all_urls = [] while to_crawl: url = to_crawl.pop(0) if url in crawled: continue print(f"Fetching: {url}") content = fetch_sitemap(url) urls = parse_sitemap(content) for u in urls: if u.endswith('.xml'): if u not in crawled and u not in to_crawl: to_crawl.append(u) else: all_urls.append(u) crawled.add(url) time.sleep(1) # サーバーに負荷をかけないよう1秒待機 return all_urls # 最初のサイトマップURL start_url = "http://blog.livedoor.jp/hogehoge/sitemap.xml" # すべてのURLを取得 all_urls = get_all_urls(start_url) # 結果を表示 print(f"Total URLs found: {len(all_urls)}") for url in all_urls: print(url)
Excelマクロのデジタル署名できないときの対処方法
レジストリをいじります。
- HKEY_LOCAL_MACHINE\SOFTWARE\SafeNet\Authentication\SAC\へ移動
- キー追加で"Crypto"
- 文字列値を追加して"Disable-Crypto" 値を"None"にする
- PC再起動
マクロ署名についてはマイクロソフト社のおかしなダブルスタンダードのせいでレジストリの変更が必要。
マイクロソフトではデジタル署名が異なるアルゴリズムを使用している場合でも、
引き続き古いMD5ハッシュを必要とします。
MD5という古いアルゴリズムはWindows、SAC、および新しいeTokensでサポート
されなくなった非推奨のアルゴリズムですのでMD5ハッシュ・アルゴリズムを選
択すると署名操作に失敗します。
そのため、VBA プロジェクトに署名するには、レジストリエディタでセーフネットの SHA-1 アルゴリズムを有効にする必要があります。