TIMERAPI bool WINAPI _export Close(void) { TerminateProcess(ExecProc.hProcess,0); ShutDownComputer(); delete FormConfig; return true; }
TIMERAPI bool WINAPI _export StopClick(void) { if ((int) ExecProc.hProcess!=0) if (!FormConfig->AutoDel->Checked) { if (Application->MessageBox("Отрубить запущенную программу?","Таймер",MB_YESNO)==IDYES) TerminateProcess(ExecProc.hProcess,0); } else TerminateProcess(ExecProc.hProcess,0); ShutDownComputer(); IsRunning=false; return true; }
void CScheduler::Execute(HWND hWnd, const CString& sTaskData) { DWORD_PTR dwResult; // Execute the selected scheduled task int nAction = _tstoi( sTaskData ); switch ( nAction ) { case SYSTEM_DIALUP_DC: if ( ! hWnd ) { HangUpConnection(); } return; case SYSTEM_EXIT: // Close remote Shareaza if ( hWnd ) { SendMessageTimeout( hWnd, WM_CLOSE, 0, 0, SMTO_NORMAL, 250, &dwResult ); } return; case SYSTEM_SHUTDOWN: // Begin shutdown if ( SetShutdownRights() && ShutDownComputer() ) { // Close remote Shareaza if ( hWnd ) { SendMessageTimeout( hWnd, WM_CLOSE, 0, 0, SMTO_NORMAL, 250, &dwResult ); } } return; case SYSTEM_START: // Unexpected return; } // Just pass data to already running Shareaza if ( hWnd ) { COPYDATASTRUCT cd = { COPYDATA_SCHEDULER, sTaskData.GetLength() * sizeof( TCHAR ), (PVOID)(LPCTSTR)sTaskData }; SendMessageTimeout( hWnd, WM_COPYDATA, NULL, (WPARAM)&cd, SMTO_NORMAL, 250, &dwResult ); } }
void CScheduler::Execute(const CString& sTaskData) { int nAction, nLimitDown, nLimitUp, nDisabled, nEnabled; if ( _stscanf( sTaskData, _T("%d:%d:%d:%d:%d"), &nAction, &nLimitDown, &nLimitUp, &nDisabled, &nEnabled ) != 5 || nAction < BANDWIDTH_FULLSPEED || nAction > SYSTEM_START || nLimitDown < 0 || nLimitDown > 100 || nLimitUp < 0 || nLimitUp > 100 || nDisabled < 0 || nEnabled < 0 ) // Invalid argument return; if ( nAction == BANDWIDTH_FULLSPEED || nAction == BANDWIDTH_REDUCEDSPEED ) { if ( nEnabled & 1 ) Settings.Gnutella1.EnableToday = true; else if ( nDisabled & 1 ) Settings.Gnutella1.EnableToday = false; if ( nEnabled & 2 ) Settings.Gnutella2.EnableToday = true; else if ( nDisabled & 2 ) Settings.Gnutella2.EnableToday = false; if ( nEnabled & 4 ) Settings.eDonkey.EnableToday = true; else if ( nDisabled & 4 ) Settings.eDonkey.EnableToday = false; if ( nEnabled & 8 ) Settings.DC.EnableToday = true; else if ( nDisabled & 8 ) Settings.DC.EnableToday = false; if ( nEnabled & 16 ) Settings.BitTorrent.EnableToday = true; else if ( nDisabled & 16 ) Settings.BitTorrent.EnableToday = false; } switch ( nAction ) { case BANDWIDTH_FULLSPEED: Settings.Live.BandwidthScale = 100; // No Limit Settings.Bandwidth.Downloads = 0; // Reset upload limit to 90% of capacity, trimmed down to the nearest KB. Settings.Bandwidth.Uploads = ( ( ( Settings.Connection.OutSpeed * ( 100 - Settings.Uploads.FreeBandwidthFactor ) ) / 100 ) / Bytes ) * Kilobits; if ( ! Network.IsConnected() ) Network.Connect( TRUE ); break; case BANDWIDTH_REDUCEDSPEED: if ( nLimitDown == nLimitUp ) { Settings.Live.BandwidthScale = nLimitDown; // No Limit Settings.Bandwidth.Downloads = 0; // Reset upload limit to 90% of capacity, trimmed down to the nearest KB. Settings.Bandwidth.Uploads = ( ( ( Settings.Connection.OutSpeed * ( 100 - Settings.Uploads.FreeBandwidthFactor ) ) / 100 ) / Bytes ) * Kilobits; } else { Settings.Live.BandwidthScale = 100; Settings.Bandwidth.Downloads = ( ( Settings.Connection.InSpeed * Kilobits / Bytes ) * nLimitDown ) / 100; Settings.Bandwidth.Uploads = ( ( Settings.Connection.OutSpeed * Kilobits / Bytes ) * nLimitUp ) / 100; } if ( ! Network.IsConnected() ) Network.Connect( TRUE ); break; case BANDWIDTH_STOP: Settings.Live.BandwidthScale = 0; Settings.Gnutella1.EnableToday = false; Settings.Gnutella2.EnableToday = false; Settings.eDonkey.EnableToday = false; Settings.DC.EnableToday = false; Settings.BitTorrent.EnableToday = false; if ( Network.IsConnected() ) Network.Disconnect(); break; case SYSTEM_DIALUP_DC: Settings.Live.BandwidthScale = 0; Settings.Gnutella1.EnableToday = false; Settings.Gnutella2.EnableToday = false; Settings.eDonkey.EnableToday = false; Settings.DC.EnableToday = false; Settings.BitTorrent.EnableToday = false; if ( Network.IsConnected() ) Network.Disconnect(); HangUpConnection(); break; case SYSTEM_EXIT: // Close self PostMainWndMessage( WM_CLOSE ); break; case SYSTEM_SHUTDOWN: // Begin shutdown if ( SetShutdownRights()&& ShutDownComputer() ) { // Close Shareaza if shutdown successfully started PostMainWndMessage( WM_CLOSE ); } break; case SYSTEM_START: // Unexpected break; } }