[C] 纯文本查看 复制代码
#include <windows.h> #include <stdio.h> // 避免闪黑窗口 #pragma comment(linker, "/SUBSYSTEM:WINDOWS") int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) { // 1. 获取当前日期,和Typora行为完全一致不带前导0 SYSTEMTIME st; GetLocalTime(&st); char dateStr[20]; sprintf(dateStr, "%d/%d/%d", st.wMonth, st.wDay, st.wYear); // 2. 检查注册表项是否存在,如果不存在则创建 HKEY hKey; LONG lRes = RegCreateKeyExA(HKEY_CURRENT_USER, "SOFTWARE\\Typora", 0, NULL, 0, KEY_SET_VALUE, NULL, &hKey, NULL); if (lRes != ERROR_SUCCESS) { return 1; } // 3. 更新注册表中的值 lRes = RegSetValueExA(hKey, "IDate", 0, REG_SZ, (const BYTE*)dateStr, (DWORD)(strlen(dateStr) + 1)); RegCloseKey(hKey); if (lRes != ERROR_SUCCESS) { return 1; } // 4. 构建命令行参数 char cmdLine[MAX_PATH * 10] = "Typora-ori.exe"; if (strlen(lpCmdLine) > 0) { strcat(cmdLine, " "); strcat(cmdLine, lpCmdLine); } // 5. 启动Typora-ori.exe并传递参数 STARTUPINFOA si = { sizeof(si) }; PROCESS_INFORMATION pi; if (CreateProcessA(NULL, cmdLine, NULL, NULL, FALSE, 0, NULL, NULL, &si, &pi)) { CloseHandle(pi.hProcess); CloseHandle(pi.hThread); } return 0; }