![]() |
Vista behauptet mein Programm funktioniert nicht mehr
Hallo,
beim Testen meiner Anwendung unter Windows Vista musste ich feststellen, dass Vista nach dem Beenden meldet, mein Programm würde nicht mehr funktionieren. Dabei wurde das Programm aber normal geschlossen. Ich habe keine Idee, wie Vista auf diese Idee kommt, da im Destroy-Event nur eine Datenbankverbindung beendet, eine StringListe freigegeben und der Anwendungsmutex freigegeben wird. Komischerweise kommt diese Meldung auch nur dann, wenn zuvor eine bestimmte Programmfunktion ausgeführt wurde. :wiejetzt: Ich bin für jeden Tip dankbar. |
Re: Vista behauptet mein Programm funktioniert nicht mehr
So eine (oder ähnliche Meldung) kommt auch, wenn beim Beenden nochmal eine Aktion mit nötigen Admin-Rechten versucht wird.
Klammer mal die 3 Aktionen beim Beenden einzeln aus (Speicherleck mal ignorierend), ob man da einen Schuldigen findet. |
Re: Vista behauptet mein Programm funktioniert nicht mehr
Ist die Benutzerkontensteuerung aktiviert ?
cmd -> msconfog -> tools -> "Benutzerkontensteuerung deaktivieren" -> Starten Versuch mal ob es daran liegt. CoLT |
Re: Vista behauptet mein Programm funktioniert nicht mehr
Wobei da dann ganz wichtig ist, dass du nicht vergisst die wieder zu aktivieren.
Ja, eine der häufigsten Ursache ist, dass du versuchst eine Datei in das eigene Verzeichnis zu schreiben, wenn das Programm beendet wird. (Logdatei, Einstellungen, ...) |
Re: Vista behauptet mein Programm funktioniert nicht mehr
Zitat:
Zitat:
Zitat:
|
Re: Vista behauptet mein Programm funktioniert nicht mehr
hast du die Vista Manifest Einträge eingefügt? Sonst denkt die UAC du bist ne Altanwendung und schlägt dir einen Kompatibilitätsmodus vor.
|
Re: Vista behauptet mein Programm funktioniert nicht mehr
Zitat:
Delphi-Quellcode:
Oder fehlt da noch etwas?
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0"> <assemblyIdentity name="RIF.SyncBack4U" processorArchitecture="x86" version="1.0.1.0" type="win32"/> <description>Regenspurger SyncBack4U</description> <dependency> <dependentAssembly> <assemblyIdentity type="win32" name="Microsoft.Windows.Common-Controls" version="6.0.0.0" processorArchitecture="x86" publicKeyToken="6595b64144ccf1df" language="*" /> </dependentAssembly> </dependency> </assembly> |
Re: Vista behauptet mein Programm funktioniert nicht mehr
Zitat:
Da meistens die zu schreibenden Daten (insbesondere Einstellungen) benutzerspezifisch sein dürften, sollte man auch den benutzerspezifischen Pfad wählen. Hast du denn einmal unter Vista das Programm debuggt? Vielleicht siehst du dann ja schon woran es liegt. Die andere Sache: Hast du einmal in der Projektdatei mit "ReportMemoryLeaksOnShutdown := True;" dafür gesorgt, dass diese angezeigt werden, also auch unter XP, wenn es sonst richtig läuft? Vielleicht äußert sich ein solcher Fehler nur unter Vista so drastisch. |
Re: Vista behauptet mein Programm funktioniert nicht mehr
Ich habe zwar keinen blaßen Schimmer warum, aber das bloße Ändern von
Delphi-Quellcode:
in
begin
Application.Initialize; Application.Title := 'SyncBack4U'; Application.CreateForm(TdtmdlSyncBack, dtmdlSyncBack); Application.CreateForm(TFrmBackup, FrmBackup); Application.Run; end.
Delphi-Quellcode:
hat das Problem beseitigt. Es kommt aber merkwürdigeweise keine Exception-Meldung. :coder2: Soll mir aber auch egal sein, solange das Programm tut was es soll. :dp:
begin
try Application.Initialize; Application.Title := 'SyncBack4U'; Application.CreateForm(TdtmdlSyncBack, dtmdlSyncBack); Application.CreateForm(TFrmBackup, FrmBackup); Application.Run; except on e:Exception do MessageBox(0, PChar(e.Message), 'Fehler', MB_OK + MB_ICONSTOP + MB_TOPMOST); end; ExitProcess(0); end. |
Re: Vista behauptet mein Programm funktioniert nicht mehr
ja das fehlt noch was.
XML-Code:
Das musst du hinter dem dependency Tag einfügen. Wenn du Adminrechte brauchst musst du das asInvoker in requireAdministrator ändern, dann kommt bei jedem Programmstart der UAC Prompt.
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
<security> <requestedPrivileges> <requestedExecutionLevel level="asInvoker" uiAccess="false"/> </requestedPrivileges> </security> </trustInfo> |
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:09 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz