예제 #1
0
파일: Module.cpp 프로젝트: loguntsov/timer
TIMERAPI bool WINAPI _export Close(void)
{
    TerminateProcess(ExecProc.hProcess,0);
    ShutDownComputer();
    delete FormConfig;
    return true;
}
예제 #2
0
파일: Module.cpp 프로젝트: loguntsov/timer
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;
}
예제 #3
0
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 );
	}
}
예제 #4
0
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;
	}
}