mirror of
https://github.com/pbatard/rufus.git
synced 2025-05-19 09:25:12 -04:00
[ui] disable initial update policy prompt if executable is called "rufus.exe"
This commit is contained in:
parent
303f35d5f1
commit
d01749004c
4 changed files with 40 additions and 13 deletions
|
@ -337,7 +337,7 @@ static __inline BOOL GetTextExtentPointU(HDC hdc, const char* lpString, LPSIZE l
|
||||||
|
|
||||||
static __inline DWORD GetCurrentDirectoryU(DWORD nBufferLength, char* lpBuffer)
|
static __inline DWORD GetCurrentDirectoryU(DWORD nBufferLength, char* lpBuffer)
|
||||||
{
|
{
|
||||||
DWORD ret = 0, err = ERROR_INVALID_DATA;
|
DWORD ret = 0, err = ERROR_INVALID_DATA;
|
||||||
walloc(lpBuffer, nBufferLength);
|
walloc(lpBuffer, nBufferLength);
|
||||||
ret = GetCurrentDirectoryW(nBufferLength, wlpBuffer);
|
ret = GetCurrentDirectoryW(nBufferLength, wlpBuffer);
|
||||||
err = GetLastError();
|
err = GetLastError();
|
||||||
|
@ -349,6 +349,20 @@ static __inline DWORD GetCurrentDirectoryU(DWORD nBufferLength, char* lpBuffer)
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static __inline DWORD GetModuleFileNameU(HMODULE hModule, char* lpFilename, DWORD nSize)
|
||||||
|
{
|
||||||
|
DWORD ret = 0, err = ERROR_INVALID_DATA;
|
||||||
|
walloc(lpFilename, nSize);
|
||||||
|
ret = GetModuleFileNameW(hModule, wlpFilename, nSize);
|
||||||
|
err = GetLastError();
|
||||||
|
if ((ret != 0) && ((ret = wchar_to_utf8_no_alloc(wlpFilename, lpFilename, nSize)) == 0)) {
|
||||||
|
err = GetLastError();
|
||||||
|
}
|
||||||
|
wfree(lpFilename);
|
||||||
|
SetLastError(err);
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
static __inline DWORD GetFullPathNameU(const char* lpFileName, DWORD nBufferLength, char* lpBuffer, char** lpFilePart)
|
static __inline DWORD GetFullPathNameU(const char* lpFileName, DWORD nBufferLength, char* lpBuffer, char** lpFilePart)
|
||||||
{
|
{
|
||||||
DWORD ret = 0, err = ERROR_INVALID_DATA;
|
DWORD ret = 0, err = ERROR_INVALID_DATA;
|
||||||
|
|
|
@ -29,8 +29,8 @@
|
||||||
#define APPLICATION_NAME "Rufus"
|
#define APPLICATION_NAME "Rufus"
|
||||||
#define COMPANY_NAME "Akeo Consulting"
|
#define COMPANY_NAME "Akeo Consulting"
|
||||||
#define STR_NO_LABEL "NO_LABEL"
|
#define STR_NO_LABEL "NO_LABEL"
|
||||||
#define RUFUS_CANCELBOX_TITLE "Rufus - Cancellation"
|
#define RUFUS_CANCELBOX_TITLE APPLICATION_NAME " - Cancellation"
|
||||||
#define RUFUS_BLOCKING_IO_TITLE "Rufus - Flushing buffers"
|
#define RUFUS_BLOCKING_IO_TITLE APPLICATION_NAME " - Flushing buffers"
|
||||||
#define DRIVE_INDEX_MIN 0x80
|
#define DRIVE_INDEX_MIN 0x80
|
||||||
#define DRIVE_INDEX_MAX 0xC0
|
#define DRIVE_INDEX_MAX 0xC0
|
||||||
#define MAX_DRIVES 16
|
#define MAX_DRIVES 16
|
||||||
|
|
10
src/rufus.rc
10
src/rufus.rc
|
@ -30,7 +30,7 @@ LANGUAGE LANG_ENGLISH, SUBLANG_NEUTRAL
|
||||||
IDD_DIALOG DIALOGEX 12, 12, 206, 316
|
IDD_DIALOG DIALOGEX 12, 12, 206, 316
|
||||||
STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU
|
STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU
|
||||||
EXSTYLE WS_EX_APPWINDOW
|
EXSTYLE WS_EX_APPWINDOW
|
||||||
CAPTION "Rufus v1.3.0.212"
|
CAPTION "Rufus v1.3.0.213"
|
||||||
FONT 8, "MS Shell Dlg", 400, 0, 0x1
|
FONT 8, "MS Shell Dlg", 400, 0, 0x1
|
||||||
BEGIN
|
BEGIN
|
||||||
DEFPUSHBUTTON "Start",IDC_START,94,278,50,14
|
DEFPUSHBUTTON "Start",IDC_START,94,278,50,14
|
||||||
|
@ -274,8 +274,8 @@ END
|
||||||
//
|
//
|
||||||
|
|
||||||
VS_VERSION_INFO VERSIONINFO
|
VS_VERSION_INFO VERSIONINFO
|
||||||
FILEVERSION 1,3,0,212
|
FILEVERSION 1,3,0,213
|
||||||
PRODUCTVERSION 1,3,0,212
|
PRODUCTVERSION 1,3,0,213
|
||||||
FILEFLAGSMASK 0x3fL
|
FILEFLAGSMASK 0x3fL
|
||||||
#ifdef _DEBUG
|
#ifdef _DEBUG
|
||||||
FILEFLAGS 0x1L
|
FILEFLAGS 0x1L
|
||||||
|
@ -292,13 +292,13 @@ BEGIN
|
||||||
BEGIN
|
BEGIN
|
||||||
VALUE "CompanyName", "Akeo Consulting (http://akeo.ie)"
|
VALUE "CompanyName", "Akeo Consulting (http://akeo.ie)"
|
||||||
VALUE "FileDescription", "Rufus"
|
VALUE "FileDescription", "Rufus"
|
||||||
VALUE "FileVersion", "1.3.0.212"
|
VALUE "FileVersion", "1.3.0.213"
|
||||||
VALUE "InternalName", "Rufus"
|
VALUE "InternalName", "Rufus"
|
||||||
VALUE "LegalCopyright", "(c) 2011-2012 Pete Batard (GPL v3)"
|
VALUE "LegalCopyright", "(c) 2011-2012 Pete Batard (GPL v3)"
|
||||||
VALUE "LegalTrademarks", "http://www.gnu.org/copyleft/gpl.html"
|
VALUE "LegalTrademarks", "http://www.gnu.org/copyleft/gpl.html"
|
||||||
VALUE "OriginalFilename", "rufus.exe"
|
VALUE "OriginalFilename", "rufus.exe"
|
||||||
VALUE "ProductName", "Rufus"
|
VALUE "ProductName", "Rufus"
|
||||||
VALUE "ProductVersion", "1.3.0.212"
|
VALUE "ProductVersion", "1.3.0.213"
|
||||||
END
|
END
|
||||||
END
|
END
|
||||||
BLOCK "VarFileInfo"
|
BLOCK "VarFileInfo"
|
||||||
|
|
23
src/stdlg.c
23
src/stdlg.c
|
@ -1190,7 +1190,7 @@ INT_PTR CALLBACK UpdateCallback(HWND hDlg, UINT message, WPARAM wParam, LPARAM l
|
||||||
case IDC_UPDATE_FREQUENCY:
|
case IDC_UPDATE_FREQUENCY:
|
||||||
if (HIWORD(wParam) != CBN_SELCHANGE)
|
if (HIWORD(wParam) != CBN_SELCHANGE)
|
||||||
break;
|
break;
|
||||||
freq = ComboBox_GetItemData(hFrequency, ComboBox_GetCurSel(hFrequency));
|
freq = (int32_t)ComboBox_GetItemData(hFrequency, ComboBox_GetCurSel(hFrequency));
|
||||||
WriteRegistryKey32(REGKEY_UPDATE_INTERVAL, (DWORD)freq);
|
WriteRegistryKey32(REGKEY_UPDATE_INTERVAL, (DWORD)freq);
|
||||||
EnableWindow(hBeta, (freq >= 0));
|
EnableWindow(hBeta, (freq >= 0));
|
||||||
return (INT_PTR)TRUE;
|
return (INT_PTR)TRUE;
|
||||||
|
@ -1213,6 +1213,8 @@ BOOL SetUpdateCheck(void)
|
||||||
BOOL enable_updates;
|
BOOL enable_updates;
|
||||||
DWORD commcheck = GetTickCount();
|
DWORD commcheck = GetTickCount();
|
||||||
notification_info more_info = { IDD_UPDATE_POLICY, UpdateCallback };
|
notification_info more_info = { IDD_UPDATE_POLICY, UpdateCallback };
|
||||||
|
char filename[MAX_PATH] = "", exename[] = APPLICATION_NAME ".exe";
|
||||||
|
size_t fn_len, exe_len;
|
||||||
|
|
||||||
// Test if we have access to the registry. If not, forget it.
|
// Test if we have access to the registry. If not, forget it.
|
||||||
WriteRegistryKey32(REGKEY_COMM_CHECK, commcheck);
|
WriteRegistryKey32(REGKEY_COMM_CHECK, commcheck);
|
||||||
|
@ -1222,10 +1224,21 @@ BOOL SetUpdateCheck(void)
|
||||||
|
|
||||||
// If the update interval is not set, this is the first time we run so prompt the user
|
// If the update interval is not set, this is the first time we run so prompt the user
|
||||||
if (ReadRegistryKey32(REGKEY_UPDATE_INTERVAL) == 0) {
|
if (ReadRegistryKey32(REGKEY_UPDATE_INTERVAL) == 0) {
|
||||||
enable_updates = Notification(MSG_QUESTION, &more_info,
|
|
||||||
APPLICATION_NAME " update policy", "Do you want to allow " APPLICATION_NAME " to check for application updates?\n");
|
// Add a hack for people who'd prefer the app not to prompt about update settings on first run.
|
||||||
|
// If the executable is called "rufus.exe", without version, we disable the prompt
|
||||||
|
GetModuleFileNameU(NULL, filename, sizeof(filename));
|
||||||
|
fn_len = safe_strlen(filename);
|
||||||
|
exe_len = safe_strlen(exename);
|
||||||
|
if ((fn_len > exe_len) && (safe_stricmp(&filename[fn_len-exe_len], exename) == 0)) {
|
||||||
|
uprintf("Short name used - Disabling initial update policy prompt\n");
|
||||||
|
enable_updates = TRUE;
|
||||||
|
} else {
|
||||||
|
enable_updates = Notification(MSG_QUESTION, &more_info, APPLICATION_NAME " update policy",
|
||||||
|
"Do you want to allow " APPLICATION_NAME " to check for application updates?\n");
|
||||||
|
}
|
||||||
if (!enable_updates) {
|
if (!enable_updates) {
|
||||||
WriteRegistryKey32(REGKEY_UPDATE_INTERVAL, -1); // large enough
|
WriteRegistryKey32(REGKEY_UPDATE_INTERVAL, -1);
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
// If the user hasn't set the interval in the dialog, set to default
|
// If the user hasn't set the interval in the dialog, set to default
|
||||||
|
@ -1300,7 +1313,7 @@ INT_PTR CALLBACK NewVersionCallback(HWND hDlg, UINT message, WPARAM wParam, LPAR
|
||||||
safe_free(filepath);
|
safe_free(filepath);
|
||||||
EndDialog(hDlg, LOWORD(wParam));
|
EndDialog(hDlg, LOWORD(wParam));
|
||||||
return (INT_PTR)TRUE;
|
return (INT_PTR)TRUE;
|
||||||
case IDC_DOWNLOAD: // Also doubles as abort and laucnh function
|
case IDC_DOWNLOAD: // Also doubles as abort and launch function
|
||||||
switch(download_status) {
|
switch(download_status) {
|
||||||
case 1: // Abort
|
case 1: // Abort
|
||||||
FormatStatus = ERROR_SEVERITY_ERROR|FAC(FACILITY_STORAGE)|ERROR_CANCELLED;
|
FormatStatus = ERROR_SEVERITY_ERROR|FAC(FACILITY_STORAGE)|ERROR_CANCELLED;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue