AGB  ·  Datenschutz  ·  Impressum  







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

Anwendung starten von USB Stick

Ein Thema von Michaela_ · begonnen am 30. Aug 2004 · letzter Beitrag vom 31. Aug 2004
Antwort Antwort
Seite 1 von 2  1 2      
Michaela_

Registriert seit: 11. Aug 2004
Ort: Wien
61 Beiträge
 
Delphi 5 Professional
 
#1

Anwendung starten von USB Stick

  Alt 30. Aug 2004, 14:34
Hallo,

mein Projekt sollte von USB Stick zum Starten sein. Soweit funktioniert alles ganz gut. Wird allerdings der Stick entfernt und danach wieder angesteckt, während die Anwendung läuft, dann gibts Probleme. Eingebette Ressourcen, die vor dem ausstecken noch nie geladen wurden, erzeugen eine EExternalException Fehlermeldung beim Laden.
Die Bilder lade ich mit LoadFromResourceName. Kann es sein, dass sich die Variable hInstance ändert wenn der Datenträger entfernt wird?
Sollte das Programm nicht nach ausführen komplett im Speicher sein? Da dürfte doch das entfernen und nochmaliges einfügen des Sticks kein Problem sein?


lg, micheala
  Mit Zitat antworten Zitat
Benutzerbild von alcaeus
alcaeus

Registriert seit: 11. Aug 2003
Ort: München
6.537 Beiträge
 
#2

Re: Anwendung starten von USB Stick

  Alt 30. Aug 2004, 14:37
Hi Michaela!

Ich weiß nicht genau wieso solche Probleme entstehen. Als WorkAround könntest du aber prüfen, ob das Programm vom USB-Stick geladen wurde. Wenn ja, dann kopierst du es in die temporären Dateien, führst die exe aus und beendest dein Programm. Somit ist das Entfernen des Sticks kein Problem mehr, da du ja eine lokale Kopie des Programms ausführst und das Programm nicht vom USB-Stick ausgeführt wird.

Greetz
alcaeus
Andreas B.
Die Mutter der Dummen ist immer schwanger.
Ein Portal für Informatik-Studenten: www.infler.de
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#3

Re: Anwendung starten von USB Stick

  Alt 30. Aug 2004, 14:39
Windows läd nur die Ressourcen in den Arbeitsspeicher, die auch momnentan gebraucht werden. Eine Anwendung muss ich also nicht immer komplett im Arbeitsspeicher befinden.

Und wer eine programm von einen externen Datenträger startet und selbigen dann entfernt sollte sich nicht wundern, wenn dann die Anwendung nicht mehr funktioniert.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Robert Marquardt
(Gast)

n/a Beiträge
 
#4

Re: Anwendung starten von USB Stick

  Alt 30. Aug 2004, 14:40
Es ist nicht erlaubt den Stick abzuziehen waehrend die Applikation laeuft.
Das EXE ist natuerlich die ganze Zeit geoeffnet, waehrend das Programm lauft.
  Mit Zitat antworten Zitat
Michaela_

Registriert seit: 11. Aug 2004
Ort: Wien
61 Beiträge
 
Delphi 5 Professional
 
#5

Re: Anwendung starten von USB Stick

  Alt 30. Aug 2004, 14:47
@lucky: klar dass die Anwendung nicht mehr korrekt arbeitet wenn der Stick entfernt wurde. Aber ist ja so dass er wieder angesteckt wurde und mit dem selben Laufwerksbuchstaben auch wieder zur Verfügung steht. Andere Dateien werden auch braf wieder geladen, nur Ressourcen funktionieren einfach nicht mehr.
Eventuell werde ich das Programm sowieso ggf. beenden aber es interessiert mich trotzdem warums nicht mehr geht.

@robert: Bei eine CD kann man das entfernen ja verhindern. Gibts nicht eine Art USB Stick mit elektroschock die den User vor dem entfernen zurückhält (Marktlücke)


lg, michaela
  Mit Zitat antworten Zitat
Robert Marquardt
(Gast)

n/a Beiträge
 
#6

Re: Anwendung starten von USB Stick

  Alt 30. Aug 2004, 15:04
Wenn der Stick entfernt und neu angesteckt wird, dann wird er letztlich als neues Geraet behandelt.
Der offene File-Handle aber weist noch auf das nicht mehr existente alte Geraet.
Die Verbindung des File-Handles zur Datei reisst also ab.

Es ist auch nicht garantiert das geaenderte Dateien auf dem Stick gsichert wurden.
Der Treiber darf naemlich sein eigenes Caching betreiben und wenn man den Stick ohne "Safe removal" einfach abzieht
dann ist auch noch meoeglicherweise das Filesystem hinueber.
  Mit Zitat antworten Zitat
Michaela_

Registriert seit: 11. Aug 2004
Ort: Wien
61 Beiträge
 
Delphi 5 Professional
 
#7

Re: Anwendung starten von USB Stick

  Alt 30. Aug 2004, 15:14
Danke Robert. Ich versuche gerade das Programm beim entfernen zu beenden, allerdings klappt das auch nicht so ganz. Kommen recht unschöne Fehlermeldungen. Unter anderem auch "Runtime Error 216" und "Das Programm muss Aufgrund blablabla beendet werden".

Gibt es einen bestimmten Befehl mit dem ich aus dem Programm springen kann ohne dass Fehlermeldungen angezeigt werden? Application.Terminate und ExitCode:=0; helfen nicht.

lg, michaela
  Mit Zitat antworten Zitat
Benutzerbild von alcaeus
alcaeus

Registriert seit: 11. Aug 2003
Ort: München
6.537 Beiträge
 
#8

Re: Anwendung starten von USB Stick

  Alt 30. Aug 2004, 16:14
Hi Michaela!

Du könntest alles abspeichern und den eigenen Prozess mit MSDN-Library durchsuchenTerminateProcess abschießen, so als ob er über den Taskmanager beendet wurde.

Greetz
alcaeus
Andreas B.
Die Mutter der Dummen ist immer schwanger.
Ein Portal für Informatik-Studenten: www.infler.de
  Mit Zitat antworten Zitat
Robert Marquardt
(Gast)

n/a Beiträge
 
#9

Re: Anwendung starten von USB Stick

  Alt 30. Aug 2004, 17:46
Wenn der Stick abgezogen wurde, dann ist es schon zu spaet. Da laesst sich einfach nichts mehr machen.
Die Applikation muesste namelich das Ausstecken mitbekommen und zu diesem Zeitpunkt ist sie ja schon kaputt.

Man kann nur das Ausstecken einfach nicht behandeln. Wer den Stick abzieht ist selber schuld.
  Mit Zitat antworten Zitat
Michaela_

Registriert seit: 11. Aug 2004
Ort: Wien
61 Beiträge
 
Delphi 5 Professional
 
#10

Re: Anwendung starten von USB Stick

  Alt 30. Aug 2004, 20:36
Hi Robert,

mit der WM_DEVICECHANGE message kann man das schon feststellen, das ist kein Problem.

Einziges Problem ist nur das Beenden. Nachdem die Anwendung laut Debugger fertig ist kommen erst die Zugriffsverletzungen. Runtime Error 216 meint ja auch irgendeinen Dateifehler hin (eigentlich ist nie eine Datei offen, was kann windows da wohl meinen)
Ich hab jetzt mal einfach den Prozess gekillt. Keine schöne Lösung aber es funktioniert. Keine Fehlermeldungen (eh klar)

Bei einer CD-Rom funktioniert das ganze einwandfrei. CD raus und wieder rein, alles geht normal weiter.

[OT]
Nur so nebenbei:
Erklähr mal einem DAU dass er selber schuld ist wenn er den Stick rauszieht
[/OT]


lg, michaela
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 16:05 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz