Как поменять рабочий стол на свою программу

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

Как поменять рабочий стол на свою программу

Сообщение Maxwellion » 03.06.2005 (Пт) 22:34

Здравствуйте.
Я опять наверно спрошу, что уже спрашивали, но это потому, что я опять в поиске не нашёл чего хотел, так что извините и сильно не бейте, но...
Как сделать, чтобы моя программка была вместо заставки на рабочем столе? :oops:

Tarik
Агент Системы
Агент Системы
Аватара пользователя
 
Сообщения: 1222
Зарегистрирован: 03.01.2003 (Пт) 16:05
Откуда: Москва

Сообщение Tarik » 03.06.2005 (Пт) 22:42

Шэлл что ли свой хочешь? Типа Aston'a?
Изображение

Ever tried? Ever failed? No matter. Try again! Fail again! Fail better!

Maxwellion
Новичок
Новичок
Аватара пользователя
 
Сообщения: 39
Зарегистрирован: 30.04.2004 (Пт) 21:24

Сообщение Maxwellion » 03.06.2005 (Пт) 22:53

Tarik писал(а):Шэлл что ли свой хочешь? Типа Aston'a?

М-ммм
А чего такое шэлл(наверное шЕлл пишется), не знаю, я хочу чтобы на фоне рабочего стола, под иконками мои кнопочки были и нажимались и работали.
Или может если кто знает, как во Flash 5-ом сделать чтобы пути в GetURL с пробелами понимались, хотя вопрос наверно не совсем в тему, но может кто знает.

d3drm
Астролог
Астролог
Аватара пользователя
 
Сообщения: 2873
Зарегистрирован: 29.05.2002 (Ср) 23:34
Откуда: МаСКвА

Сообщение d3drm » 03.06.2005 (Пт) 23:00

э... актив десктоп+html страница в качестве фона... не пойдет?
ХЎ

Jenizix
Географ
Географ
Аватара пользователя
 
Сообщения: 545
Зарегистрирован: 20.04.2004 (Вт) 20:52
Откуда: Москва

Сообщение Jenizix » 03.06.2005 (Пт) 23:26

Ну тк сделай свое окно дочерним для Десктопа и все... поиск по форуму поможет! И Поиск! Поиск!!!!!
Ушел в себя, вернусь не скоро...

Если вам нужно сделать прозрачной только форму, а контролы на ней нет, то вам сюда!!!

Bonesnapper
Постоялец
Постоялец
 
Сообщения: 434
Зарегистрирован: 12.09.2004 (Вс) 15:39

Сообщение Bonesnapper » 04.06.2005 (Сб) 11:27

Maxwellion писал(а):Или может если кто знает, как во Flash 5-ом сделать чтобы пути в GetURL с пробелами понимались, хотя вопрос наверно не совсем в тему, но может кто знает.


getURL("c:/w w/news.html","_blank")

ставь MX и все будет ок

Maxwellion
Новичок
Новичок
Аватара пользователя
 
Сообщения: 39
Зарегистрирован: 30.04.2004 (Пт) 21:24

Сообщение Maxwellion » 04.06.2005 (Сб) 21:56

Jenizix писал(а):Ну тк сделай свое окно дочерним для Десктопа и все... поиск по форуму поможет! И Поиск! Поиск!!!!!


У меня по поиску постоянно что-то левое отъискивается, единственная в тему котрая нашлась эта моя и есть, мне бы ссылочку или примерчик в виде файла.

Maxwellion
Новичок
Новичок
Аватара пользователя
 
Сообщения: 39
Зарегистрирован: 30.04.2004 (Пт) 21:24

Сообщение Maxwellion » 04.06.2005 (Сб) 22:06

Bonesnapper писал(а):
Maxwellion писал(а):Или может если кто знает, как во Flash 5-ом сделать чтобы пути в GetURL с пробелами понимались, хотя вопрос наверно не совсем в тему, но может кто знает.


getURL("c:/w w/news.html","_blank")

ставь MX и все будет ок


5-ый более распространён чем MX.
И где тут(в примере) в конечном итоге пробел находился, т.е. реальный-то путь какой?

Bonesnapper
Постоялец
Постоялец
 
Сообщения: 434
Зарегистрирован: 12.09.2004 (Вс) 15:39

Сообщение Bonesnapper » 05.06.2005 (Вс) 13:27

MX тот же пятый только интерфейс улучшен
и пара но вых функций
вот путь:
c:/w w/ne ws.html
пробел в названии папки (между W и W)
и пробел в названии документа (между Е и W)
в МХ все работает

7 уже как год вышел а ты все на 5

extHack
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 94
Зарегистрирован: 04.06.2005 (Сб) 12:31
Откуда: 127.0.0.1

Сообщение extHack » 06.06.2005 (Пн) 9:31

Прива. Я делаю свой шелл и сталкивался с такой проблемой.

[HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\System]
Параметр shell, меняй на свое значение, по дефлоту там стоит explorer.exe

А если надо экранную заставку, то [HKCU\Control Panel\Desktop]
SCRNSAVE.EXE="c:\your_screen_saver.exe"

И таймауты замути. Там-где то 1 ставится, что типа активная.
n/a

Maxwellion
Новичок
Новичок
Аватара пользователя
 
Сообщения: 39
Зарегистрирован: 30.04.2004 (Пт) 21:24

Сообщение Maxwellion » 12.06.2005 (Вс) 22:30

Bonesnapper писал(а):MX тот же пятый только интерфейс улучшен
и пара но вых функций
вот путь:
c:/w w/ne ws.html
пробел в названии папки (между W и W)
и пробел в названии документа (между Е и W)
в МХ все работает

7 уже как год вышел а ты все на 5


Ну, тут пример открытия страницы, она-то без проблем открывается, но мне нужно немного другое, я хочу запустить экзешник(может он как-то иначе запускается?).
В общем я делаю через GetURL (FScommand:exec, путь) и у меня запускаются экзешники если только путь без пробелов. Попытался в MX 2004 так там вообще ни так ни эдак не пашет, ноль эмоций. В чём дело-то?

Maxwellion
Новичок
Новичок
Аватара пользователя
 
Сообщения: 39
Зарегистрирован: 30.04.2004 (Пт) 21:24

Сообщение Maxwellion » 12.06.2005 (Вс) 22:39

extHack писал(а):Прива. Я делаю свой шелл и сталкивался с такой проблемой.

[HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\System]
Параметр shell, меняй на свое значение, по дефлоту там стоит explorer.exe

А если надо экранную заставку, то [HKCU\Control Panel\Desktop]
SCRNSAVE.EXE="c:\your_screen_saver.exe"

И таймауты замути. Там-где то 1 ставится, что типа активная.


А что-то у меня нет такого ответвления \System там только \Explorer:-|
Но это не важно, короче я добавил эту ветку, и что-то получилось слегка не то что я хотел, она моя прога вылезла при перезагрузке, так а кроме неё-то больше ничего и непоявилось.
Мне надо, чтобы моя прога была заместо обоев под всеми этими иконками, панелью задач и со всем остальным.

Jenizix
Географ
Географ
Аватара пользователя
 
Сообщения: 545
Зарегистрирован: 20.04.2004 (Вт) 20:52
Откуда: Москва

Сообщение Jenizix » 12.06.2005 (Вс) 23:26

Maxwellion писал(а):
extHack писал(а):Прива. Я делаю свой шелл и сталкивался с такой проблемой.

[HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\System]
Параметр shell, меняй на свое значение, по дефлоту там стоит explorer.exe

А если надо экранную заставку, то [HKCU\Control Panel\Desktop]
SCRNSAVE.EXE="c:\your_screen_saver.exe"

И таймауты замути. Там-где то 1 ставится, что типа активная.


А что-то у меня нет такого ответвления \System там только \Explorer:-|
Но это не важно, короче я добавил эту ветку, и что-то получилось слегка не то что я хотел, она моя прога вылезла при перезагрузке, так а кроме неё-то больше ничего и непоявилось.
Мне надо, чтобы моя прога была заместо обоев под всеми этими иконками, панелью задач и со всем остальным.


Ну тк я и говорю, сделай свою форму дочерней Desktop'у!!!! Если время будет пример напишу...
Ушел в себя, вернусь не скоро...

Если вам нужно сделать прозрачной только форму, а контролы на ней нет, то вам сюда!!!

Jenizix
Географ
Географ
Аватара пользователя
 
Сообщения: 545
Зарегистрирован: 20.04.2004 (Вт) 20:52
Откуда: Москва

Сообщение Jenizix » 12.06.2005 (Вс) 23:36

Упс... сори... тока что понял что сморозил фигню... %) сори...
Ушел в себя, вернусь не скоро...

Если вам нужно сделать прозрачной только форму, а контролы на ней нет, то вам сюда!!!

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 12.06.2005 (Вс) 23:47

Jenizix писал(а):
Maxwellion писал(а):Мне надо, чтобы моя прога была заместо обоев под всеми этими иконками, панелью задач и со всем остальным.

Ну тк я и говорю, сделай свою форму дочерней Desktop'у!!!! Если время будет пример напишу...

Под иконками - так не выйдет.
Изображение

Jenizix
Географ
Географ
Аватара пользователя
 
Сообщения: 545
Зарегистрирован: 20.04.2004 (Вт) 20:52
Откуда: Москва

Сообщение Jenizix » 12.06.2005 (Вс) 23:50

Угу, я уже понял...

Код: Выделить всё
Private Declare Function SetParent Lib "User32" (ByVal hWndChild As Long, ByVal hWndNewParent As Long) As Long
Private Declare Function FindWindow Lib "User32" Alias "FindWindowA" (ByVal w As String, ByVal w1 As String) As Long

Private Sub Form_Load()
    Dim dw As Long

    dw = FindWindow("progman", vbNullString)
    SetParent Me.hWnd, dw
End Sub


Вот это сделает твою форму дочерней десктопу, сворачиваться не будет и под всеми оканми будет, но иконки будет перекрывать...
Ушел в себя, вернусь не скоро...

Если вам нужно сделать прозрачной только форму, а контролы на ней нет, то вам сюда!!!

Bonesnapper
Постоялец
Постоялец
 
Сообщения: 434
Зарегистрирован: 12.09.2004 (Вс) 15:39

Сообщение Bonesnapper » 13.06.2005 (Пн) 1:21

незнаю как в МХ запустить ехе кроме как
командой FScommand причем ехе должен лежать
в папке FScommand (с мувиком)

Maxwellion
Новичок
Новичок
Аватара пользователя
 
Сообщения: 39
Зарегистрирован: 30.04.2004 (Пт) 21:24

Сообщение Maxwellion » 18.06.2005 (Сб) 22:18

Jenizix писал(а):Угу, я уже понял...

Код: Выделить всё
Private Declare Function SetParent Lib "User32" (ByVal hWndChild As Long, ByVal hWndNewParent As Long) As Long
Private Declare Function FindWindow Lib "User32" Alias "FindWindowA" (ByVal w As String, ByVal w1 As String) As Long

Private Sub Form_Load()
    Dim dw As Long

    dw = FindWindow("progman", vbNullString)
    SetParent Me.hWnd, dw
End Sub


Вот это сделает твою форму дочерней десктопу, сворачиваться не будет и под всеми оканми будет, но иконки будет перекрывать...


:(
Дык мне эти, иконки надо. Я где-то видел программку, там какие календарики с часиками болтались по столу и всё это дело под иконками было, значит можно как-то. Я надеюсь.

Jenizix
Географ
Географ
Аватара пользователя
 
Сообщения: 545
Зарегистрирован: 20.04.2004 (Вт) 20:52
Откуда: Москва

Сообщение Jenizix » 19.06.2005 (Вс) 3:44

Неа... под иконками низя... хотя если десктоп - что-то вроде листбокса, то можно найти этот лист бокс и попробовать сделать форму дочерней ему...
Ушел в себя, вернусь не скоро...

Если вам нужно сделать прозрачной только форму, а контролы на ней нет, то вам сюда!!!

A.A.Z.
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3035
Зарегистрирован: 30.06.2003 (Пн) 13:38

Сообщение A.A.Z. » 19.06.2005 (Вс) 14:32

Вы не это искали?
Код: Выделить всё
Option Explicit

Private Declare Function SetParent Lib "user32" (ByVal hWndChild As Long, ByVal hWndNewParent As Long) As Long
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long

Private Sub Form_Load()
SetParent FindWindow("SysListView32", "FolderView"), Me.hWnd
End Sub

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 23.06.2005 (Чт) 21:49

FindWindow("SysListView32", "FolderView") возвратит 0, потому что она ищет среди окон верхнего уровня.

А ребёнок этого SysListView32 по-любому накроет иконки. Так что путь тупиковый.
Изображение

A.A.Z.
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3035
Зарегистрирован: 30.06.2003 (Пн) 13:38

Сообщение A.A.Z. » 25.06.2005 (Сб) 21:43

А у меня работает

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 25.06.2005 (Сб) 23:03

AAZ, у тебя под иконками ложится? :shock:
Изображение

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

Сообщение Amed » 26.06.2005 (Вс) 12:06

AAZ, не может быть! :shock:

Вариант: написать свой аналог десктоповского ListView? :?

Kovu
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 924
Зарегистрирован: 29.04.2005 (Пт) 17:38

Сообщение Kovu » 26.06.2005 (Вс) 18:04

Код не работает между прочим проверял на всех виндоусах :(
Можно предложить делать скриншот и потом скриншоту делать BitBlt на форму :idea:
Если всё делать своими ручками, они скоро отвалятся !

SHURUP
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 440
Зарегистрирован: 15.09.2004 (Ср) 14:24
Откуда: Ирпень, Украина

Сообщение SHURUP » 26.06.2005 (Вс) 19:06

Kovu писал(а):Можно предложить делать скриншот и потом скриншоту делать BitBlt на форму :idea:

:shock:
Kovu, а что это даст? Это все-равно что разместить на форме лейбл с надписью "рабочий стол" и верить что именно это так и есть! Функциональность та-же
--
А через findwindow у меня тоже не работает. Только так:
Код: Выделить всё
Private Sub Form_Load()
Dim zz As Long
    zz = FindWindow("progman", vbNullString)
    zz = FindWindowEx(zz, 0, "SHELLDLL_DefView", vbNullString)
    zz = FindWindowEx(zz, 0, "SysListView32", vbNullString)
    SetParent Me.hwnd, zz
End Sub

Но значки все-равно перекрывает. Как вариант - разместить на своей форме webbrowser с папкой Рабочего стола. Но и тут минусов много.
Нам чужого не надо, но своё мы возьмем, чьё бы оно ни было...

Kogemrka
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 68
Зарегистрирован: 26.12.2004 (Вс) 11:36
Откуда: вам знать, что я злостный флудер? Может я притворяюсь?

Сообщение Kogemrka » 26.06.2005 (Вс) 22:17

А нельзя поместить на рабочий стол в качестве фона веб страницу с vbscript? А если руки VBScript`ом марать лень, то мона на страничку поместить написанный в VB acnivex-контрол, который и будет законспирированной програмкой! Кстати. Всякие там часики на заднем фоне мона реализовать в виде динамического валпепера. Тоесть к волпеперу bitbit`ом(так быстрее) прикрепляются часики, сохраняются в темпах(временных файлах, для тех кто в танке), и ставятся как волпепер.
Потом перезапись файла в цикле. Я думую так легче, хотя ентот способ не реализует возможность использования контролов (кнопочек-флажочков) на заднем плане, но если они так уж и нужны шибко, то можно опять же при щелчке грызуном(вылавливать его можно и через API, и через DirectInput, кому как нравиться) проверять координаты, и если координаты соответствуют координатам рисунка кнопки, на нашем велпепере, то менять рисунок на рисунок с нажатой кнопкой, и делать нужные действия. Кстати, этим же способом мона реализовать проигрывание анимации для вэлпыперов, и рендеринг за значками из DX. Если чё непонятно, и нужен пример - пишите - склепаю эксэмпл, выложу и объясню.
Воля моя, я сделал, что хотел, сделал, что мог. Если будет беда - мой страх её не прогонит, если не будет беды - мой страх не нужен. Не жалею о том, что сделано, размышляю о том, что сделаю...

SHURUP
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 440
Зарегистрирован: 15.09.2004 (Ср) 14:24
Откуда: Ирпень, Украина

Сообщение SHURUP » 27.06.2005 (Пн) 0:38

Kogemrka, Ага! Работает!!!!
Но можно обойтись без всяких vbscript, ActiveX, и bitblt-ов.
Если в качестве валпейпера рабочего стола - веб страница - то слегка видоизменив мой предыдущий код:
Код: Выделить всё
Private Sub Form_Load()
Dim zz As Long
    zz = FindWindow("progman", vbNullString)
    zz = FindWindowEx(zz, 0, "SHELLDLL_DefView", vbNullString)
    zz = FindWindowEx(zz, 0, "Internet Explorer_Server", vbNullString)
    SetParent Me.hwnd, zz
End Sub
Получаем форму под значками!!!!
Узнать бы, как Винда этот Internet Explorer_Server под SysListView32 запихивает...
Нам чужого не надо, но своё мы возьмем, чьё бы оно ни было...

Kogemrka
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 68
Зарегистрирован: 26.12.2004 (Вс) 11:36
Откуда: вам знать, что я злостный флудер? Может я притворяюсь?

Сообщение Kogemrka » 27.06.2005 (Пн) 10:11

SHURUP писал(а):Kogemrka, Ага! Работает!!!!
Но можно обойтись без всяких vbscript, ActiveX, и bitblt-ов.
Если в качестве валпейпера рабочего стола - веб страница - то слегка видоизменив мой предыдущий код:
Код: Выделить всё
Private Sub Form_Load()
Dim zz As Long
    zz = FindWindow("progman", vbNullString)
    zz = FindWindowEx(zz, 0, "SHELLDLL_DefView", vbNullString)
    zz = FindWindowEx(zz, 0, "Internet Explorer_Server", vbNullString)
    SetParent Me.hwnd, zz
End Sub
Получаем форму под значками!!!!
Узнать бы, как Винда этот Internet Explorer_Server под SysListView32 запихивает...


Поздравляю! Но мой способ тоже годен, хотя и для несколько других операций :)
Воля моя, я сделал, что хотел, сделал, что мог. Если будет беда - мой страх её не прогонит, если не будет беды - мой страх не нужен. Не жалею о том, что сделано, размышляю о том, что сделаю...


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

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

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

    TopList  
cron