Entwickler-Ecke

Windows API - Programm fit für Vista machen - Wer weiß was?


matze - Mi 21.02.07 10:35
Titel: Programm fit für Vista machen - Wer weiß was?
Hallo.

Ich suche hilfreiche Themem, Artikel, Code Snippets, die mir helfen meine Programme fit für Vista zu machen.
Wenn genügend zusammen kommt, dann könnte man auch einen FAQ-Beitrag in der Library draus erstellen.

Vielen Dank schonmal.

Matze


ssb-blume - Mi 21.02.07 10:49

Hallo,
Alle Programme, sogar noch die uralten aus DOS gehen: Das Einzige, was geaendert werden muss ist:
- entweder das Programm in eine eigene Partition speichern, auf die Du alle Rechte hast oder
- Programm aendern, wenn es auf Dateien zurueckgreift, die im gleichen Pfad wie das Programm stehen, diese
Dateien in ..\username\data speichern: username ist Dein Anwenderpfad, data ist der Programmname!!


Renegade - Do 22.02.07 18:12

user profile iconssb-blume hat folgendes geschrieben:
Hallo,
Alle Programme, sogar noch die uralten aus DOS gehen: Das Einzige, was geaendert werden muss ist:
- entweder das Programm in eine eigene Partition speichern, auf die Du alle Rechte hast oder
- Programm aendern, wenn es auf Dateien zurueckgreift, die im gleichen Pfad wie das Programm stehen, diese
Dateien in ..\username\data speichern: username ist Dein Anwenderpfad, data ist der Programmname!!

Sorry - nichts für ungut - aber was ist denn das für eine dämliche Antwort?

Aber zum Thema. Daran möchte ich mich doch gleich mal beteiligen:

Windows Vista User Experience Guidelines [http://msdn.microsoft.com/library/default.asp?url=/library/en-us/uxguide/uxguide/home.asp] - wichtige Seite obwohl sie nicht ganz vollständig ist (und das wo Vista schon auf dem Markt ist)
Vista-Info auf Codegear [http://dn.codegear.com/delphi/platforms/vista] Auf jeden Fall lesenswert
Creating Windows Vista Ready Applications with Delphi [http://www.installationexcellence.com/articles/VistaWithDelphi/Index.html] Sehr interessante Seite mit Codebeispielen

Das erstmal für den Anfang. Wenn ich weiteres interessantes finde poste ich es hier


matze - Di 06.03.07 16:03

Der Vollständigkeit halber, füge ich jetzt hier noch den Link an, den ich irgendwo anders hier im Forum erhalten habe:
http://threads.codegear.com/threads/threads.exe/view?commentid=39872


mkinzler - Di 06.03.07 16:34

Weiterer Link
http://bdntv.borland.com/pix/fhaglund/VistaUACandDelphi/VistaUACandDelphi.ppt


matze - Di 06.03.07 17:00

Vielen Dank!

Weiter gehts hier in dem Beitrag in der Delphi Library: http://www.delphi-library.de/viewtopic.php?t=70683


CodexX - Di 06.03.07 17:18

Hier mein Beitrag. Die Manifest-Datei basiert auf dem XP-Manifest und beinhaltet die nötigen Änderungen für Vista. XPMan darf entsprechend nicht mehr beim uses Teil eingebunden werden.

Edit: Dieses Manifest wird benötigt, wenn das Programm administrative Rechte braucht.


ExecutionLevelAdmin.manifest

XML-Daten
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:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>

<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">

<assemblyIdentity
    name="PROGRAMMNAME"
    processorArchitecture="*"
    version="1.0.0.0"
    type="win32"/>

<description>Windows Shell</description>

<dependency>
    <dependentAssembly>
        <assemblyIdentity
            type="win32"
            name="Microsoft.Windows.Common-Controls"
            version="6.0.0.0"
            processorArchitecture="x86"
            publicKeyToken="6595b64144ccf1df"
            language="*"
        />
    </dependentAssembly>
</dependency>


  <trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
    <security>
      <requestedPrivileges>
        <requestedExecutionLevel
          level="requireAdministrator"/>
      </requestedPrivileges>
    </security>
  </trustInfo>

</assembly>


ExecutionLevelAdmin.rc

Quelltext
1:
1 24 "ExecutionLevelAdmin.manifest"                    


Da das Einbinden als

Delphi-Quelltext
1:
{$R 'ExecutionLevelAdmin.res' 'ExecutionLevelAdmin.rc'}                    

nicht zwingend funktionieren muss (tut es zumindest bei mir nicht),

einfach umwandeln in ExecutionLevelAdmin.res mit der Kommandozeile

Quelltext
1:
brcc32 ExecutionLevelAdmin.rc                    


alias5000 - Di 06.03.07 17:28

Ja Moment, das ist ein Manifest, was dem Programm dann Administratorrechte verschaffen soll. Da springt dann die UAC an. Das sollte man doch dann nur benutzen, wenn es unumgänglich nötig ist...


Renegade - Mo 12.03.07 10:49

Geht zwar in genau die andere Richtung aber:
Wer seine alten Hilfedateien unter Vista weiternutzen will (das geht so ja nicht) kann sich jetzt die alte Hilfe für Vista runterladen:
http://www.golem.de/0703/50989.html