Страница: 1 |
Страница: 1 |
Вопрос: Заставка
Добавлено: 16.10.07 10:59
Автор вопроса: Kol
Подскажите, как из приложения VB.net или С#
запретить вызов заставки?
Ответы
Всего ответов: 5
Номер ответа: 1
Автор ответа:
Yanex
ICQ: 387761649
Вопросов: 32
Ответов: 169
Web-сайт:
Профиль | | #1
Добавлено: 16.10.07 11:19
Попробуй посмотреть справочник API:
http://www.yanexsoft.narod.ru/helpf/API.chm
http://www.yanexsoft.narod.ru/helpf/API.zip
Там вроде бы была соответствующая API-функция. Но она не работает на Windows Vista, проверено.
Номер ответа: 2
Автор ответа:
BUMM ®
Вопросов: 8
Ответов: 482
Профиль | | #2
Добавлено: 16.10.07 22:49
Шапка
// interface for the CDisableScreenSave class.
//////////////////////////////////////////////
#if !defined(AFX_DISABLESCREENSAVE_H__94B5D6F5
_BB06_4409_9876_1D1EB6F1480B__INCLUDED_)
#define AFX_DISABLESCREENSAVE_H__94B5D6F5
_BB06_4409_9876_1D1EB6F1480B__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
class CDisableScreenSave
{
public:
CDisableScreenSave();
virtual ~CDisableScreenSave();
protected:
int *m_pValue;
};
#endif
// !defined(AFX_DISABLESCREENSAVE_H__94B5D6F5
// _BB06_4409_9876_1D1EB6F1480B__INCLUDED_)
Модуль
// DisableScreenSave.cpp
// implementation of the CDisableScreenSave class.
//////////////////////////////////////////////////
#include "stdafx.h"
#include "isableScreenSave.h"
#include <../src/afximpl.h>
///////////////////////////////////////////////////
// Construction/Destruction
///////////////////////////////////////////////////
static UINT dss_GetList[] = {SPI_GETLOWPOWERTIMEOUT,
SPI_GETPOWEROFFTIMEOUT, SPI_GETSCREENSAVETIMEOUT};
static UINT dss_SetList[] = {SPI_SETLOWPOWERTIMEOUT,
SPI_SETPOWEROFFTIMEOUT, SPI_SETSCREENSAVETIMEOUT};
static const int dss_ListCount = _countof(dss_GetList);
CDisableScreenSave::CDisableScreenSave()
{
m_pValue = new int[dss_ListCount];
for (int x=0;x<dss_ListCount;x++)
{
// Get the current value
VERIFY(SystemParametersInfo (dss_GetList[x], 0,
&m_pValue[x], 0));
TRACE(_T("%d = %d\n", dss_GetList[x], m_pValue[x];
// Turn off the parameter
VERIFY(SystemParametersInfo (dss_SetList[x], 0,
NULL, 0));
}
}
CDisableScreenSave::~CDisableScreenSave()
{
for (int x=0;x<dss_ListCount;x++)
{
// Set the old value
VERIFY(SystemParametersInfo (dss_SetList[x],
m_pValue[x], NULL, 0));
}
delete[] m_pValue;
}
Номер ответа: 3
Автор ответа:
BUMM ®
Вопросов: 8
Ответов: 482
Профиль | | #3
Добавлено: 16.10.07 23:00
для васика:
Private Declare Function SystemParametersInfo Lib "user32" Alias "SystemParametersInfoA" (ByVal uAction As Integer, ByVal uParam As Integer, ByVal lpvParam As Integer, ByVal fuWinIni As Integer) As Integer
Public Function ToggleScreenSaverActive(ByRef Active As Boolean) As Boolean
Dim lActiveFlag As Integer
Dim retvaL As Integer
lActiveFlag = IIf(Active, 1, 0)
retvaL = SystemParametersInfo(17, lActiveFlag, 0, 0)
ToggleScreenSaverActive = retvaL > 0
End Function
' On
ToggleScreenSaverActive(True)
' Off
ToggleScreenSaverActive(False)
Номер ответа: 4
Автор ответа:
Kol
Вопросов: 1
Ответов: 4
Профиль | | #4
Добавлено: 18.10.07 11:09
Большое спасибо!
Номер ответа: 5
Автор ответа:
Kol
Вопросов: 1
Ответов: 4
Профиль | | #5
Добавлено: 18.10.07 19:51
Еще раз спасибо! Я очень люблю юмор и шутки. Мне очень понравилось, особенно вариант на C!!! – просто шедевр.
Сразу видно – работал профессионал!
На VB слишком коротко – не интересно.
Лично я оставил две строчки:
SystemParametersInfo(17, 0, 0, 0) ’Выключить заставку
…
SystemParametersInfo(17, 1, 0, 0) ’Включить заставку
На самом деле, Вы мне очень помогли!