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 himitsu
himitsu

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

AW: Welches Programm ist wo geöffnet?

  Alt 6. Nov 2012, 10:05
Aktuell geht das für alle Dateien, welche nicht per "Dateihandle" (CreateFile, also AssignFile, TFileStream und Co.) geöffnet sind.
EXE/DLL/BPL werden quasi per LoadLibrary als MMF geladen und dort läßt es sich umbenennen.
Abgesehn davon, wenn sich Fremdprogramme ala Virenscanner einmischen, oder wenn ein OS glaubt es sei intelligent. z.B. wenn man das Programm "nochmals" läd und das OS denkt "ahh, da ist die Datei ja schon geladen, also verwende ich sie jetzt gleich nochmal", anstatt sich die aktuelle Dateiversion zu holen, aber so intelligent ist Windows nicht.

Aber wenn's geht:
Ja, dann laufen die alten Programme weiter und beim Neustart werden dann die neuen Dateiversionen verwendet.


Aktuell = WinNT-Reihe (mindestens WinXP, Win7, Win8, Server2003, Server2008, Server2011 und Server2012)
Ein Therapeut entspricht 1024 Gigapeut.
  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:12
Es geht auch mit Bordmitteln, die Windows bereitstellt:

Um herauszufinden wo überall das Programm läuft kannst du auch mit MSDN-Library durchsuchenCreateFile eine Datei erzeugen, die automatisch beim Beenden (bzw. wenn du das Handle loslässt, was beim Beenden automatisch passiert) gelöscht wird
Code:
FILE_FLAG_DELETE_ON_CLOSE
Dieses funktioniert auch dann, wenn die Anwendung abstürzt.

Jede Programminstanz sollte natürlich logischerweise einen anderen Dateinamen benutzen.
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.372 Beiträge
 
Delphi 12 Athens
 
#3

AW: Welches Programm ist wo geöffnet?

  Alt 6. Nov 2012, 10:14
@FILE_FLAG_DELETE_ON_CLOSE: Das funktioniert leider nicht über alle Arten der Netzwerkfreigaben, da das Transportprotokoll dieses explizit unterstützen muß.

Lokal ist das aber eine geile Sache, vorallem für temporäre Dateien, welche auch im Falle eines Programmabsturzes ordentlich entfernt würden.
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 05: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