AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Welches Programm ist wo geöffnet?

Ein Thema von Mazen · begonnen am 6. Nov 2012 · letzter Beitrag vom 7. Nov 2012
Antwort Antwort
Benutzerbild von sh17
sh17

Registriert seit: 26. Okt 2005
Ort: Radebeul
1.682 Beiträge
 
Delphi 11 Alexandria
 
#1

AW: Welches Programm ist wo geöffnet?

  Alt 6. Nov 2012, 10:39
Delphi-Quellcode:
  
finalization

  if (AppHandle <> INVALID_HANDLE_VALUE) and (AppHandle <> 0) then
    CloseHandle(AppHandle);
Den Teil kannst du dir getrost sparen ... aber es sieht irgendwie richtiger aus
Warum?
Sven Harazim
--
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#2

AW: Welches Programm ist wo geöffnet?

  Alt 6. Nov 2012, 10:41
Delphi-Quellcode:
  
finalization

  if (AppHandle <> INVALID_HANDLE_VALUE) and (AppHandle <> 0) then
    CloseHandle(AppHandle);
Den Teil kannst du dir getrost sparen ... aber es sieht irgendwie richtiger aus
Warum?
Weil das Handle auf die Datei beim Beenden der Anwendung automatisch losgelassen wird, sonst würde die Datei bei einem Absturz auch noch auf der Platte herumliegen ... und bei einem Absturz ist die Datei trotzdem weg, obwohl dein Code in finalization nicht aufgerufen wird
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.388 Beiträge
 
Delphi 12 Athens
 
#3

AW: Welches Programm ist wo geöffnet?

  Alt 6. Nov 2012, 11:02
Delphi-Quellcode:
  if (AppHandle <> INVALID_HANDLE_VALUE) and (AppHandle <> 0) then
    CloseHandle(AppHandle);
CloseHandle kann mit 0 und INVALID_HANDLE_VALUE umgehen. Da könnte man das IF auch weglassen.

Wobei AppHandle dort ja eh niemals INVALID_HANDLE__VALUE sein dürfte, wegen dem IF in initialization, aber ich würde dieses IF weglassen, dann kann AppHandle niemals 0 sein (nach der Initialization, bzw. hinter Createfile).

Also einfach ale diese IF weg und gut ist.




PS: Wenn FILE_FLAG_DELETE_ON_CLOSE gesetzt ist und wenn man CloseHandle wegläßt, dann bekommt man sogar mit, wenn die Anwendung beim Runterfahren hängen bleibt, also nach dem "CloseHandle" (wenn man es hingeschrieben hätte).
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:59 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