Подложка

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
yaklit
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 129
Зарегистрирован: 09.09.2006 (Сб) 19:38

Подложка

Сообщение yaklit » 28.10.2006 (Сб) 15:04

Мне нужно чтобы окно было под другими окнами, как Рабочий стол (Explorer.exe DESKTOP), в поиске искал, но нарыл только НАД другими окнами. :cry:
Помогите, пожалуйста...

BV
Thinker
Thinker
Аватара пользователя
 
Сообщения: 3987
Зарегистрирован: 12.09.2004 (Вс) 0:55
Откуда: Молдавия, г. Кишинёв

Сообщение BV » 28.10.2006 (Сб) 15:35

WS_EX_NOACTIVATE
const char *out = "|*0>78-,+<|"; size_t cc = char_traits<char>::length(out);
for (size_t i=0;i<cc;i++){cout<<static_cast<char>((out[i]^89));}cout<<endl;

yaklit
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 129
Зарегистрирован: 09.09.2006 (Сб) 19:38

Сообщение yaklit » 28.10.2006 (Сб) 15:46

Чето я не нашел такой константы и API которая ее юзает... Можно поподробней?

lister
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 389
Зарегистрирован: 15.01.2005 (Сб) 7:34
Откуда: Страна оления

Сообщение lister » 28.10.2006 (Сб) 16:11

yaklit писал(а):Чето я не нашел такой константы и API которая ее юзает...


Мда... интересно, где ты ее искал :shock:

Поиск по слову WS_EX_NOACTIVATE, например в яндексе, дает кучу ссылок по этой теме и самая первая - тебе и нужна :evil:

Код: Выделить всё
Private Const WS_EX_NOACTIVATE As Long = &H8000000&

WS_ указывает на то, что это константа стиля окна

EX_ указывает на то что это расширенный стиль, поэтому устанавливать его нужно с помощью GWL_EXSTYLE и SetWindowLong

Код: Выделить всё
Private Declare Function GetWindowLong Lib "user32.dll" Alias "GetWindowLongA" ( _
    ByVal hwnd As Long, _
    ByVal nIndex As Long) As Long
Private Declare Function SetWindowLong Lib "user32.dll" Alias "SetWindowLongA" ( _
    ByVal hwnd As Long, _
    ByVal nIndex As Long, _
    ByVal dwNewLong As Long) As Long
Последний раз редактировалось lister 28.10.2006 (Сб) 22:09, всего редактировалось 2 раз(а).

yaklit
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 129
Зарегистрирован: 09.09.2006 (Сб) 19:38

Сообщение yaklit » 28.10.2006 (Сб) 16:16

Блин Можно Пример?

lister
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 389
Зарегистрирован: 15.01.2005 (Сб) 7:34
Откуда: Страна оления

Сообщение lister » 28.10.2006 (Сб) 16:21

yaklit писал(а):Блин Можно Пример?


Блин можно... Пример тоже...

Типа того...

Код: Выделить всё
Private Sub Form_Load()
    SetWindowLong Me.hWnd, GWL_EXSTYLE, GetWindowLong(Me.hwnd, GWL_EXSTYLE) + WS_EX_NOACTIVATE
End Sub


P.S. И заведи себе ApiViewer!

yaklit
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 129
Зарегистрирован: 09.09.2006 (Сб) 19:38

Сообщение yaklit » 28.10.2006 (Сб) 16:27

первый твой пост читал до того как ты его редактировал вот и прошу пример. а так Большое спасибо.

lister
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 389
Зарегистрирован: 15.01.2005 (Сб) 7:34
Откуда: Страна оления

Сообщение lister » 28.10.2006 (Сб) 16:28

Я уж так и понял...

inf
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 53
Зарегистрирован: 28.09.2006 (Чт) 21:10
Откуда: мы все оттуда

Сообщение inf » 28.10.2006 (Сб) 16:30

офф топ
2lister где взять этот АпиВьювер??? И можно пару ссылочек где подробно и ясно описаны Api и как с ними работать?
Изображение

Amed
Алфизик
Алфизик
 
Сообщения: 5346
Зарегистрирован: 09.03.2003 (Вс) 9:26

Сообщение Amed » 28.10.2006 (Сб) 16:31

www.mentalis.org
Скачай программу API-Guide

yaklit
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 129
Зарегистрирован: 09.09.2006 (Сб) 19:38

Сообщение yaklit » 28.10.2006 (Сб) 16:37

api viewer есть в стандартной поставке Visual Basic 6
Api Guide плоха тем что там только апи и нет констант а тоб темы этой не было... :)

inf
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 53
Зарегистрирован: 28.09.2006 (Чт) 21:10
Откуда: мы все оттуда

Сообщение inf » 28.10.2006 (Сб) 16:37

спс огромное. Скачал. Уже юзаю
Изображение

lister
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 389
Зарегистрирован: 15.01.2005 (Сб) 7:34
Откуда: Страна оления

Сообщение lister » 28.10.2006 (Сб) 16:38

inf писал(а):офф топ
2lister где взять этот АпиВьювер???


Ох, народ... А почему в раздел "Популярные вопросы" не заходим???
http://bbs.vbstreets.ru/viewtopic.php?t=11721

yaklit писал(а):api viewer есть в стандартной поставке Visual Basic 6


Мда??? Что-то не верится... Ты его с Api Text Viewer путаешь. Его лучше не использовать.

yaklit писал(а):Api Guide плоха тем что там только апи и нет констант а тоб темы этой не было... :)


Зато хороша тем, что там есть примеры.

yaklit
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 129
Зарегистрирован: 09.09.2006 (Сб) 19:38

Сообщение yaklit » 28.10.2006 (Сб) 17:00


keks-n
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2509
Зарегистрирован: 19.09.2005 (Пн) 17:17
Откуда: г. Москва

Сообщение keks-n » 28.10.2006 (Сб) 17:40

Э... А не мог бы уважаемый yaklit объяснить смысл столь содержательного поста?
Изображение

yaklit
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 129
Зарегистрирован: 09.09.2006 (Сб) 19:38

Сообщение yaklit » 28.10.2006 (Сб) 18:24

эээ ну чо то глюкнуло. Я писал пост:
Как сделать, чтоб при появлении форма уже была внизу Z Order. Константа BOTTOM мне не очень помогает - по моем из за нее форменная некликабельность теряется.

yaklit
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 129
Зарегистрирован: 09.09.2006 (Сб) 19:38

Сообщение yaklit » 28.10.2006 (Сб) 18:52

Вот это НЕ Работает.
Приложение должно запускаться на самом нижнем уровне и быть некликабельным!!! НЕ РАБОТАЕТ. :evil:
Вложения
11.ZIP
Что тут не так?
(4.57 Кб) Скачиваний: 43

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Сообщение Хакер » 28.10.2006 (Сб) 19:24

Вам случаем, не аналог рабочего стола ли нужен, который будет не TOPMOST а наоборот - BOTTOMMOST ? т.е. не "поверх всех окон", а "все окна поверх этого" ?

Угадал?
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

yaklit
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 129
Зарегистрирован: 09.09.2006 (Сб) 19:38

Сообщение yaklit » 28.10.2006 (Сб) 19:37

Да, вначале темы написано ж. Ничего не работает. :(. Кстати это и будет рабочим столом.
Последний раз редактировалось yaklit 28.10.2006 (Сб) 19:39, всего редактировалось 1 раз.

yaklit
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 129
Зарегистрирован: 09.09.2006 (Сб) 19:38

Сообщение yaklit » 28.10.2006 (Сб) 19:37

Хакер, а вы случаем не знаете как енто реализовать?

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Сообщение Хакер » 28.10.2006 (Сб) 20:32

yaklit
случаем знаю. Попробую сделать пример.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Сообщение Хакер » 28.10.2006 (Сб) 21:05

Вот примерно вот так?
Вложения
desktop_Demo.rar
(3.94 Кб) Скачиваний: 67
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

keks-n
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2509
Зарегистрирован: 19.09.2005 (Пн) 17:17
Откуда: г. Москва

Сообщение keks-n » 28.10.2006 (Сб) 21:09

Поздно. Ему уже в аське всё расписано.
Изображение

Debugger
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1667
Зарегистрирован: 17.06.2006 (Сб) 15:11

Сообщение Debugger » 28.10.2006 (Сб) 21:31

Как удалить сообщение? Не удаляется!
Последний раз редактировалось Debugger 29.10.2006 (Вс) 13:48, всего редактировалось 1 раз.

yaklit
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 129
Зарегистрирован: 09.09.2006 (Сб) 19:38

Сообщение yaklit » 28.10.2006 (Сб) 21:46

Debugger, кому адресован пост и какой его смысл

keks-n
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2509
Зарегистрирован: 19.09.2005 (Пн) 17:17
Откуда: г. Москва

Сообщение keks-n » 28.10.2006 (Сб) 21:54

Выпендриться.
Изображение

Конь
Постоялец
Постоялец
 
Сообщения: 650
Зарегистрирован: 02.06.2006 (Пт) 6:49
Откуда: г. Красноярск

Сообщение Конь » 29.10.2006 (Вс) 6:36

К тому же до этого также можно было додуматься, смотря в начало темы.
Подпись находится в стадии разработки...

NashRus
Постоялец
Постоялец
 
Сообщения: 388
Зарегистрирован: 18.03.2006 (Сб) 1:16

Сообщение NashRus » 29.10.2006 (Вс) 10:06

Хакер писал(а):Вот примерно вот так?


а чего без исходника ? стремно запускать софт от хакера 8) .

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Сообщение Хакер » 29.10.2006 (Вс) 11:25

Исходник:
Код: Выделить всё
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function SetParent Lib "user32" (ByVal hWndChild As Long, ByVal hWndNewParent As Long) As Long
Private Declare Function Putfocus Lib "user32" Alias "SetFocus" (ByVal hwnd As Long) As Long
Private Declare Function GetParent Lib "user32" (ByVal hwnd As Long) As Long

Dim hLastParent As Long

Private Sub Command1_Click()
SetParent Me.hwnd, hLastParent
Unload Me
End
End Sub

Private Sub Form_Load()
Dim hDesktop As Long
hDesktop = FindWindow("Progman", vbNullString)
hLastParent = GetParent(Me.hwnd)
SetParent Me.hwnd, hDesktop
Putfocus Me.hwnd
End Sub

Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
SetParent Me.hwnd, hLastParent
End Sub

Private Sub Form_Resize()
On Error Resume Next
Me.Top = 0
Me.Left = 0
Me.Height = Screen.Height
Me.Width = Screen.Width
End Sub


[ForGserg]Способ не самый лучший, и не самый правильный. Существуют способы и лучше. Юзайте способ на свой страх и риск.[/ForGSerg]
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

yaklit
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 129
Зарегистрирован: 09.09.2006 (Сб) 19:38

Сообщение yaklit » 29.10.2006 (Вс) 13:49

А что такое Progman :?: Я ж пишу для Windows PE может и не пойти... А вообще пример Хакера ООЧЕНЬ ХОРОШИЙ.

След.

Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: AhrefsBot, SemrushBot и гости: 4

    TopList