Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - .NET

Страница: 1 |

 

  Вопрос: Как сделать онтролы в проге "под XP" (manifest???) Добавлено: 29.07.03 15:27  

Автор вопроса:  Alperium
Чего-то связанное с manifest! Подскажите!Thanks!

Ответить

  Ответы Всего ответов: 6  

Номер ответа: 1
Автор ответа:
 shuffle



Администратор

ICQ: 201502381 

Вопросов: 15
Ответов: 737
 Профиль | | #1 Добавлено: 29.07.03 17:21

Проще всего создать файл в каталоге с прогой имя_exe.manifest, содержимое можешь найти в MSDN...

Ответить

Номер ответа: 2
Автор ответа:
 crackoff



ICQ: 156165990 

Вопросов: 12
Ответов: 229
 Профиль | | #2 Добавлено: 01.08.03 11:18

Самая главная строчка в манифесте - это

name="Microsoft.Windows.Common-Controls" version="6.0.0.0"

она указывает, что нужно использовать контролы 6-й версии. Я экспериментировал с этим, но у меня пока не выходит. если ложишь *.exe.manifest рядом с программой, она просто не хочет запускаться. Возможно, это как-то связано с класом Thunder***, но я не уверен. Скорее всего неправильно составлен манифест(у меня MSDN 2000, там еще про манифест неу ничего и я его с другой проги дернул). Можно воткунуть манифест в ресурсы. Делаешь там новый раздел "24", а ID ресурсу присваеваешь 0 (так, допустим, в winrar). я еще не успел так извратнутся. Что получится-расскажу.

PS. Странное имя раздела "24" невольно наталкивает на мысль, что в microsoft работают русские программисты :)

Ответить

Номер ответа: 3
Автор ответа:
 Sharp


Лидер форума

ICQ: 216865379 

Вопросов: 106
Ответов: 9979
 Web-сайт: sharpc.livejournal.com
 Профиль | | #3
Добавлено: 01.08.03 11:45

Содержимое файла манифеста можно посмотреть не только в MSDN, но и в %WINXPDIR%. Вот оно:

[===CUT===]

Windows Shell

[===CUT===]

Действительно, если просто положить манифест в папку с VB-программой, та не запустится (причина темна). Однако, если запустить программу в режиме совместимости с чем-нибудь (даже Win95!), контролы появятся и будут блистать разными круглыми частями... Интересный факт: с помощью совместимости можно обманывать код определения ОС, работающий на основе GetVersionEx! Этот вопрос неоднократно затрагивался на форуме и можно даже поискать статью на эту тему в разделе "Статьи".

Успеха!

Ответить

Номер ответа: 4
Автор ответа:
 shuffle



Администратор

ICQ: 201502381 

Вопросов: 15
Ответов: 737
 Профиль | | #4 Добавлено: 01.08.03 15:32

To sKit:
1. Это не самая важная строчка, т.к. одна без другой работать не будет ;) И означает она не то, что ты подумал... Она указывает на использование библиотеки comctl32.dll
2. Это никак не связано с классом окон VB. Одна очень важная деталь: нужно в коде вызывать InitCommonControls!

To Sharp:
Это вообще что такое?! Там совсем не так должно быть!

Ответить

Номер ответа: 5
Автор ответа:
 Alperium



Вопросов: 9
Ответов: 18
 Профиль | | #5 Добавлено: 01.08.03 19:31

После 3-х дневных мучений у меня получилось!  

Делюсь своим вариантом:

в Notepad набрать:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<!-- Manifest generated by DROMADA data Dev. -->
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<assemblyIdentity
    version="1.0.0.98"
    processorArchitecture="X86"
    name="имя проги"
    type="win32"
/>
<description></description>
<dependency>
    <dependentAssembly>
        <assemblyIdentity
            type="win32"
            name="Microsoft.Windows.Common-Controls"
            version="6.0.0.0"
            processorArchitecture="X86"
            publicKeyToken="6595b64144ccf1df"
            language="*"
        />
    </dependentAssembly>
</dependency>
</assembly>

Далее сокранить в каталоге проэкта как :

Имя_проги.exe.manifest

Важно!

Это надо добавить в код формы:


Private Declare Function InitCommonControls Lib "Comctl32.dll" () As Long

Private Sub Form_Initialize()
Dim X As Long
X = InitCommonControls
End Sub

"Comctl32.dll" - отвечает за прорисовку контролов в форме а-ля XP !

Если чего пишите : alperium@mail.ru 

 

Ответить

Номер ответа: 6
Автор ответа:
 Sharp


Лидер форума

ICQ: 216865379 

Вопросов: 106
Ответов: 9979
 Web-сайт: sharpc.livejournal.com
 Профиль | | #6
Добавлено: 01.08.03 20:29

To <=Alex=>: Это был неудачный эксперимент со вставкой HTML-тегов в текстовое сообщение (похоже, содержимое манифеста приняли за теги :))

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам