Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Vista behauptet mein Programm funktioniert nicht mehr (https://www.delphipraxis.net/136694-vista-behauptet-mein-programm-funktioniert-nicht-mehr.html)

HeikoAdams 6. Jul 2009 10:05


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.

Satty67 6. Jul 2009 10:22

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.

CoLT 6. Jul 2009 10:35

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

jaenicke 6. Jul 2009 10:45

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, ...)

HeikoAdams 6. Jul 2009 10:55

Re: Vista behauptet mein Programm funktioniert nicht mehr
 
Zitat:

Zitat von jaenicke
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, ...)

Das kann ich ausschließen, da alle Dateien, auf die schreibend zugegriffen wird, unter c:\programdata liegen, worauf AFAIK alle Benutzer Schreibzugriff haben.

Zitat:

Zitat von Satty67
Klammer mal die 3 Aktionen beim Beenden einzeln aus (Speicherleck mal ignorierend), ob man da einen Schuldigen findet.

Ich habe testweise den kompletten Destroy-Event ausgeklammert - ohne Erfolg.

Zitat:

Zitat von CoLT
Ist die Benutzerkontensteuerung aktiviert ?

Werd ich mal testen.

MagicAndre1981 6. Jul 2009 12:33

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.

HeikoAdams 6. Jul 2009 12:49

Re: Vista behauptet mein Programm funktioniert nicht mehr
 
Zitat:

Zitat von MagicAndre1981
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.

Also meine Manifest-Datei sieht so aus:
Delphi-Quellcode:
<?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>
Oder fehlt da noch etwas?

jaenicke 6. Jul 2009 12:51

Re: Vista behauptet mein Programm funktioniert nicht mehr
 
Zitat:

Zitat von HeikoAdams
Das kann ich ausschließen, da alle Dateien, auf die schreibend zugegriffen wird, unter c:\programdata liegen, worauf AFAIK alle Benutzer Schreibzugriff haben.

Ab XP ja, bei Windows 2000 nein. Das hat sich da geändert.
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.

HeikoAdams 6. Jul 2009 13:56

Re: Vista behauptet mein Programm funktioniert nicht mehr
 
Ich habe zwar keinen blaßen Schimmer warum, aber das bloße Ändern von
Delphi-Quellcode:
begin
    Application.Initialize;
    Application.Title := 'SyncBack4U';
    Application.CreateForm(TdtmdlSyncBack, dtmdlSyncBack);
    Application.CreateForm(TFrmBackup, FrmBackup);
    Application.Run;
end.
in
Delphi-Quellcode:
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.
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:

MagicAndre1981 6. Jul 2009 14:57

Re: Vista behauptet mein Programm funktioniert nicht mehr
 
ja das fehlt noch was.

XML-Code:
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
    <security>
        <requestedPrivileges>
            <requestedExecutionLevel level="asInvoker" uiAccess="false"/>
        </requestedPrivileges>
    </security>
</trustInfo>
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.


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:09 Uhr.
Seite 1 von 2  1 2      

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