purebasic.info

PureBasic forum
Текущее время: Чт июл 19, 2018 6:33 pm

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 2 ] 
Автор Сообщение
 Заголовок сообщения: Рабочий стол
СообщениеДобавлено: Чт май 03, 2012 8:33 am 
Не в сети
МОДЕРАТОР

Зарегистрирован: Вт дек 05, 2006 8:46 am
Сообщений: 6323
Благодарил (а): 19 раз.
Поблагодарили: 189 раз.
Пункты репутации: 48
Всё, что связано с рабочим столом Windows.

Список исходников ( будет пополнятся по мере наполнения)


Активация\де активация заставки
Обновление рабочего стола
Проверка активности рабочего стола
Убрать\показать иконки рабочего стола
Возвращает значение дескриптора окна рабочего стола
Изменение картинки рабочего стола
Путь картинки рабочего стола
Масштаб (количество точек на дюйм)
Проверка Active Desktop
Качество цветопередачи
Открывает контекстное меню десктопа
Устанавливает вид рабочего стола. Список, таблица, значки
Упорядочивает значки на рабочем столе
Разрешение экрана

_________________
read-only


Последний раз редактировалось kvitaliy Чт май 03, 2012 8:47 am, всего редактировалось 1 раз.

Вернуться наверх
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт май 03, 2012 8:43 am 
Не в сети
МОДЕРАТОР

Зарегистрирован: Вт дек 05, 2006 8:46 am
Сообщений: 6323
Благодарил (а): 19 раз.
Поблагодарили: 189 раз.
Пункты репутации: 48
Активация\деактивация заставки
Код:
1
2
3
4
5
6
7
8
Define SSaverIsActive
SystemParametersInfo_(#SPI_GETSCREENSAVEACTIVE, 0, @SSaverIsActive, 0)
If SSaverIsActive=1
  MessageRequester("","Заставка активирована.",0)
Else
  MessageRequester("","Заставка деактивирована.",0)
EndIf
 



Обновление рабочего стола
Код:
1
2
SHChangeNotify_($8000000,$0,0,0)
 



Проверка активности рабочего стола
Код:
1
2
3
4
5
6
7
8
OpenConsole()
  Repeat
    If GetForegroundWindow_()=FindWindow_(0,"Program Manager")
      PrintN("Рабочий стол активен")
    EndIf
    Delay(100)
  ForEver
CloseConsole()



Убать\показать иконки рабочего стола
Код:
1
2
3
ShowWindow_(FindWindow_(0,"Program Manager"),#SW_HIDE)
Delay(5000)
ShowWindow_(FindWindow_(0,"Program Manager"),#SW_SHOW)



Возвращает значение дескриптора окна рабочего стола
Код:
1
2
MessageRequester("","Desktop-Handle: "+Str(GetDesktopWindow_()),0)
 


Изменеие картинки рабочего стола
Код:
1
2
3
4
5
6
;   Только bmp файлы
;   #SPIF_UPDATEINIFILE      ; постоянно
;   #SPIF_SENDWININICHANGE   ; до перезагрузки
If SystemParametersInfo_(#SPI_SETDESKWALLPAPER,0,"C:\...КАРТИНКА.bmp",#SPIF_UPDATEINIFILE)
  MessageRequester("","Картинка рабочего стола изменена.",0)
EndIf  



Путь картинки рабочего стола
Код:
1
2
3
String$ = Space(#MAX_PATH)
SystemParametersInfo_(#SPI_GETDESKWALLPAPER,#MAX_PATH,String$,0)
MessageRequester("","Картинка рабочего стола: "+String$,0)



Масштаб (количество точек на дюйм)
Код:
1
MessageRequester("","DPI: "+Str(GetDeviceCaps_(GetDC_(GetDesktopWindow_()),88)),0)



Проверка Active Desktop
Код:
1
2
3
4
5
6
7
8
9
hWnd = FindWindowEx_(#Null,#Null,"ProgMan",#Null)
hWnd = FindWindowEx_(hWnd,#Null,"SHELLDLL_DefView",#Null)
hWnd = FindWindowEx_(hWnd,#Null,"Internet Explorer_Server",#Null)
If hWnd=0
  MessageRequester("","Active Desktop не установлен.",0)
Else
  MessageRequester("","Active Desktop установлен.",0)
EndIf
 


Качество цветопередачи
Код:
1
2
3
4
5
6
Define Resolution.DEVMODE
Resolution.DEVMODE\dmSize = SizeOf(DEVMODE)
If EnumDisplaySettings_(0, #ENUM_REGISTRY_SETTINGS, @Resolution)
  MessageRequester("","Глубина цвета: "+Str(Resolution\dmBitsPerPel)+" Bit",0)
EndIf
 



Открывает контекстное меню десктопа
Код:
1
2
3
GetCursorPos_(C.POINT)
PostMessage_(FindWindowEx_(FindWindow_(0,"Program Manager"),0,"SHELLDLL_DefView",0),#WM_CONTEXTMENU,0,(C\Y<<16)|(C\X & $FFFF))
 


Устанавливает вид рабочего стола. Список, таблица, значки
Код:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
;Пользоваться осторожно, все значки упорядочатся!!!!!
#VM_ICON = $0
#VM_REPORT = $1
#VM_SMALLICON = $2
#VM_LIST = $3
 
Structure StyleBits
  dwOld.l
  dwNew.l
EndStructure
Define.l hWnd
 
hWnd = FindWindow_("Progman", "Program Manager")
hWnd = GetWindow_(hWnd,#GW_CHILD)
hWnd = GetWindow_(hWnd,#GW_CHILD)
sb.StyleBits
 
With sb
  \dwOld = GetWindowLongPtr_(hWnd,#GWL_STYLE)
  \dwOld=GetWindowLongPtr_(hWnd,#GWL_STYLE)
  \dwNew=sb\dwOld
  \dwNew=sb\dwNew & ~#LVS_TYPEMASK
  \dwNew=sb\dwNew | #VM_ICON
EndWith
SendMessage_(hWnd,#WM_STYLECHANGED,#GWL_STYLE,sb)
 


Упорядычевает значки на рабочем столе
Код:
1
2
3
4
5
hWnd1 = FindWindow_("Progman",#Null)
hWnd2 = GetWindow_(hWnd1,#GW_CHILD)
hWnd1 = GetWindow_(hWnd2,#GW_CHILD)
Ret = SendMessage_(hWnd1,#LVM_ARRANGE,#LVA_ALIGNLEFT,12)
 


Разрешение экрана
Код:
1
MessageRequester("","Разрешение экрана: "+Str(GetSystemMetrics_(#SM_CXVIRTUALSCREEN))+"x"+Str(GetSystemMetrics_(#SM_CYVIRTUALSCREEN)),0)



Материал предоставлен pablov

_________________
read-only


Вернуться наверх
 Профиль  
 
Показать сообщения за:  Сортировать по:  
Начать новую тему Ответить на тему  [ Сообщений: 2 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Создано на основе phpBB® Forum Software © phpBB Group (блог о phpBB)
Сборка создана CMSart Studio
Русская поддержка phpBB