Browse Source

startup shortcut works

git-svn-id: https://bitcoin.svn.sourceforge.net/svnroot/bitcoin/trunk@11 1a98c847-1fd6-4fd8-948a-caf3550aa51b
miguelfreitas
sirius-m 15 years ago
parent
commit
6d97df0e99
  1. 1
      bugs.txt
  2. 2
      changelog.txt
  3. 75
      ui.cpp
  4. 1
      ui.h

1
bugs.txt

@ -1,4 +1,3 @@
Known bugs: Known bugs:
- For some reason, CreateHardLink doesn't add a shortcut to the startup folder
- When the program is minimized to tray, double clicking the icon only restores it to the task bar - When the program is minimized to tray, double clicking the icon only restores it to the task bar
- Window flickers when blocks are added (problem with repainting?) - Window flickers when blocks are added (problem with repainting?)

2
changelog.txt

@ -2,5 +2,5 @@ Changes after 0.1.5:
-------------------- --------------------
+ Options dialog layout changed - added the UI options panel + Options dialog layout changed - added the UI options panel
+ Minimize to tray feature + Minimize to tray feature
+ Startup on system boot feature + Startup on system boot feature (adds a shortcut to the Startup folder)
+ Ask before closing + Ask before closing

75
ui.cpp

@ -859,18 +859,6 @@ void CMainFrame::OnMenuFileExit(wxCommandEvent& event)
Close(true); Close(true);
} }
void GenerateBitcoins(bool flag)
{
fGenerateBitcoins = flag;
nTransactionsUpdated++;
CWalletDB().WriteSetting("fGenerateBitcoins", fGenerateBitcoins);
if (fGenerateBitcoins)
if (_beginthread(ThreadBitcoinMiner, 0, NULL) == -1)
printf("Error: _beginthread(ThreadBitcoinMiner) failed\n");
taskBarIcon->UpdateTooltip();
}
void CMainFrame::OnMenuOptionsGenerate(wxCommandEvent& event) void CMainFrame::OnMenuOptionsGenerate(wxCommandEvent& event)
{ {
GenerateBitcoins(event.IsChecked()); GenerateBitcoins(event.IsChecked());
@ -3394,24 +3382,67 @@ void ApplyUISettings() {
taskBarIcon->Hide(); taskBarIcon->Hide();
// Autostart on system startup? // Autostart on system startup?
if (startOnSysBoot) { // Get the startup folder shortcut path
// Get the startup folder path char linkPath[ MAX_PATH ];
char targetPath[ MAX_PATH ]; SHGetSpecialFolderPath(0, linkPath, CSIDL_STARTUP, 0);
SHGetSpecialFolderPath(0, targetPath, CSIDL_STARTUP, 0); strcat(linkPath, "\\Bitcoin.lnk");
strcat(targetPath, "\\bitcoin.lnk");
// And the current executable path // If the shortcut exists already, remove it for updating
char currentPath[ MAX_PATH ]; remove(linkPath);
GetModuleFileName(NULL, currentPath, _MAX_PATH + 1);
// Create the shortcut if (startOnSysBoot) {
CreateHardLink(targetPath, currentPath, NULL); CoInitialize(NULL);
// Get the current executable path
char exePath[ MAX_PATH ];
GetModuleFileName(NULL, exePath, _MAX_PATH + 1);
HRESULT hres = NULL;
IShellLink* psl = NULL;
// Get a pointer to the IShellLink interface.
hres = CoCreateInstance(CLSID_ShellLink, NULL,
CLSCTX_INPROC_SERVER, IID_IShellLink,
reinterpret_cast<void**>(&psl));
if (SUCCEEDED(hres))
{
IPersistFile* ppf = NULL;
// Set the path to the shortcut target
psl->SetPath(exePath);
// Query IShellLink for the IPersistFile interface for
// saving the shortcut in persistent storage.
hres = psl->QueryInterface(IID_IPersistFile,
reinterpret_cast<void**>(&ppf));
if (SUCCEEDED(hres))
{
WCHAR wsz[MAX_PATH];
// Ensure that the string is ANSI.
MultiByteToWideChar(CP_ACP, 0, linkPath, -1,
wsz, MAX_PATH);
// Save the link by calling IPersistFile::Save.
hres = ppf->Save(wsz, TRUE);
ppf->Release();
}
psl->Release();
}
CoUninitialize();
} }
} }
void GenerateBitcoins(bool flag)
{
fGenerateBitcoins = flag;
nTransactionsUpdated++;
CWalletDB().WriteSetting("fGenerateBitcoins", fGenerateBitcoins);
if (fGenerateBitcoins)
if (_beginthread(ThreadBitcoinMiner, 0, NULL) == -1)
printf("Error: _beginthread(ThreadBitcoinMiner) failed\n");
taskBarIcon->UpdateTooltip();
}
// randsendtest to bitcoin address // randsendtest to bitcoin address

1
ui.h

@ -28,6 +28,7 @@ extern void CrossThreadCall(int nID, void* pdata);
extern void MainFrameRepaint(); extern void MainFrameRepaint();
extern void Shutdown(void* parg); extern void Shutdown(void* parg);
void ApplyUISettings(); void ApplyUISettings();
void GenerateBitcoins(bool flag);
// UI settings // UI settings
extern int minimizeToTray; extern int minimizeToTray;

Loading…
Cancel
Save