int get_seafile_auto_start() { HKEY hKey; LONG result = get_win_run_key(&hKey); if (result != ERROR_SUCCESS) { return -1; } char buf[MAX_PATH] = {0}; DWORD len = sizeof(buf); result = RegQueryValueExW (hKey, /* Key */ getBrand().toStdWString().c_str(), /* value */ NULL, /* reserved */ NULL, /* output type */ (LPBYTE)buf, /* output data */ &len); /* output length */ RegCloseKey(hKey); if (result != ERROR_SUCCESS) { /* seafile applet auto start no set */ return 0; } return 1; }
static int delete_from_auto_start(const wchar_t *appname) { HKEY hKey; LONG result = get_win_run_key(&hKey); if (result != ERROR_SUCCESS) { return -1; } result = RegDeleteValueW (hKey, appname); RegCloseKey(hKey); if (result != ERROR_SUCCESS) { qWarning("Failed to remove auto start value"); return -1; } return 0; }
static int add_to_auto_start(const char *appname, const char *path) { HKEY hKey; LONG result = get_win_run_key(&hKey); if (result != ERROR_SUCCESS) { return -1; } result = RegSetValueEx (hKey, appname, 0, REG_SZ, (const BYTE*)path, strlen(path) + 1); RegCloseKey(hKey); if (result != ERROR_SUCCESS) { applet_warning("Failed to create auto start value for %s\n", appname); return -1; } return 0; }
static int add_to_auto_start (const wchar_t *appname_w, const wchar_t *path_w) { HKEY hKey; LONG result = get_win_run_key(&hKey); if (result != ERROR_SUCCESS) { return -1; } DWORD n = sizeof(wchar_t) * (wcslen(path_w) + 1); result = RegSetValueExW (hKey, appname_w, 0, REG_SZ, (const BYTE *)path_w, n); RegCloseKey(hKey); if (result != ERROR_SUCCESS) { qWarning("Failed to create auto start value\n"); return -1; } return 0; }