Strona: [  << <   1   > >>  ]  z  1     
Autor Temat: Manifest - Opis (XPStyle bez dodatkowego manifestu)
DJK



Typ: neutral
Postów: 871
Zarejestrowany: Feb 2004
Manifest - Opis (XPStyle bez dodatkowego manifestu)

Nie wiem czy każdy wie ale można ustawić XP Styles bez dodawania oddzielnego pliku jakim jest manifest czyli project1.exe.manifest.

Manifest można władować do aplikacji i dzięki temu mamy tylko jeden plik project1.exe a zarazem XP Style - czyli tak jak powinna wyglądać porządna aplikacja

Otóż robi się to w taki sposób:

1. Tworzymy plik o nazwie resource.exe.manifest - jak większość wie plik powinien zawierać następujący tekst:

<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
    <assemblyIdentity
        version="1.0.0.0"
        processorArchitecture="X86"
        name="CompanyName.ProductName.YourAppName"
        type="win32" />
    <description>Your application description here</description>
    <dependency>
        <dependentAssembly>
            <assemblyIdentity
                type="win32"
                name="Microsoft.Windows.Common-Controls"
                version="6.0.0.0"
                processorArchitecture="X86"
                publicKeyToken="6595b64144ccf1df"
                language="*" />
        </dependentAssembly>
    </dependency>
</assembly>


Oczywiście odpowiednie wartości jak CompanyName itp. można sobie zmienić ale trzeba pamiętać, aby rozmiar pliku był wielokrotnością liczby 4 czyli jezeli mamy plik o rozmiarze 597 bajtów musimy dodać do pliku trzy spacje i mamy 600 bajtów (to wyczytałem ze stronki - ale czemu tak ma być to nie wiem - oni też nie wiedzieli )

Zapisujemy plik.

2. W tym samym katalogu tworzymy plik resource.rc, w którym umieszczamy następujący tekst:

#define CREATEPROCESS_MANIFEST_RESOURCE_ID 1
#define RT_MANIFEST                    24
#define CONTROL_PANEL_RESOURCE_ID      123

CREATEPROCESS_MANIFEST_RESOURCE_ID RT_MANIFEST "resource.exe.manifest"


Zapisujemy plik.

3. Teraz musimy odnaleźć kompilator RC.EXE - przeważnie znajduje się on w katalogu

"Crogram FilesMicrosoft Visual StudioVB98WizardsRC.EXE"

Gdy już go znajdziemy z linii poleceń uruchamiamy go w następujący sposób:

RC.EXE /r /fo resource.res resource.rc

gdzie resource.rc jest naszym plikiem a resource.res nazwą res'a jakiego utworzymy

TRZEBA PAMIETAĆ O ŚCIEŻCE DO PLIKU RESOURCE.RC

Wciskamy Enter i utworzony zostanie plik resource.res.

4. Uruchamiamy nasz projekt i jeśli nie mamy włączonego Resource Editor'a odpalamy go z:

Menu -> Add-Ins -> Add-In manager -> VB6 Resource Editor

Dodajemy nasz plik resource.res do projektu

5. Wystarczy teraz dodać gdzieś do modułu poniższy kod:

Option Explicit

Private Const ICC_USEREX_CLASSES = &H200

Private Type InitCommonControlsExType
    dwSize As Long
    dwICC As Long
End Type

Private Declare Function InitCommonControlsEx Lib "comctl32" (init As InitCommonControlsExType) As Boolean

Public Sub Main()
Dim cExHwnd As Long
Dim icex As InitCommonControlsExType

icex.dwSize = Len(icex)
icex.dwICC = ICC_USEREX_CLASSES
       
InitCommonControlsEx icex

Form1.Show
End Sub


i ustawić w ustawieniach projektu aby program startował z Sub Main (to nie jest wymagane ale zalecane )


Teraz wystarczy skompilować projekt i gotowe

Pozdrawiam

[Post edytowany dnia 22-02-2005 00:26 przez hicks]


_____________________________________________
Jeśli można coś zrobić w sposób optymalny to czemu nie

13-02-2005 17:13
Pokaż profil DJK  Wyślij email do DJK   Odwiedź stronę DJK  
DJK



Typ: neutral
Postów: 871
Zarejestrowany: Feb 2004

Zapomniałem dodać, że aby w manifest zadziałał trzeba korzystać z Windows Common Controls w wersji 5.0 a nie 6.0 - chociaż ta numeracja może wskazywać ze 6.0 jest nowsze to chyba tak nie jest


_____________________________________________
Jeśli można coś zrobić w sposób optymalny to czemu nie

21-02-2005 21:26
Pokaż profil DJK  Wyślij email do DJK   Odwiedź stronę DJK  
hicks
raptor user



Typ: moderator
Postów: 279
Zarejestrowany: Apr 2003

Zamykam temat... (pogaduszki o stronie Adriana możecie prowadzić w dziale /Inne/)

[Post edytowany dnia 22-02-2005 00:28 przez hicks]


_____________________________________________
TLHW Clan member

22-02-2005 00:26
Pokaż profil hicks  Wyślij email do hicks   Odwiedź stronę hicks       2511367
Wszystkich odpowiedzi: 2 :: Maxymalnie na stronę: 20
Strona: [  << <   1   > >>  ]  z  1