Entwickler-Ecke
Sonstiges (Delphi) - EXE-Datei an anderen PC´s nicht ausführbar.
Eduardo - So 13.03.11 03:09
Titel: EXE-Datei an anderen PC´s nicht ausführbar.
Hallo erstmal alle zusammen. Wahrscheinlich ist meine Frage eine Beleidigung an alle Programmierer, aber ich hoffe ihr könnt es mir verzeihen und trotzdem helfen.
Mein Problem ist folgendes:
Ich habe ein Programm geschrieben welches ein Bild und drei Audiodateien enthält bzw. verwendet. Das Programm läuft einwandfrei, auch seperat über die erstellte exe-Datei. Nun möchte ich das Programm auch auf anderen Computern verwenden, aber leider bringen die mir immer Fehlermendungen mit "Konnte nicht ausgeührt werden ... Bericht senden? " (Typische Windows-Fehlermeldung).
Kann es sein das man noch irgenteinen Hacken setzen muss, damit irgentwas zusätzlich in die exe eingebunden wird, welches das Programm auf anderen Rechnern zum laufen bringt?
Schonmal Danke im vorraus
jaenicke - So 13.03.11 08:10
Hallo und :welcome:
Da kann man so aus der Ferne nicht viel zu sagen ohne ein wenig Quelltext.
Aber eine Möglichkeit wäre, dass du den Fehler machst zu versuchen ins eigene Verzeichnis zu schreiben. Oder dass du keine absoluten Pfadangaben benutzt, sondern keinen Pfad beim Dateizugriff angibst.
Ohne Infos oder Quelltext lässt sich da aber nicht viel mehr dazu sagen...
Nur so viel, dass der Fehler zu 99% an fehlender Fehlerbehandlung im Code liegt.
Eduardo - So 13.03.11 11:56
Hi erstmal danke für die Schnelle Antwort.
Also das Bild sowie die Audiodateien habe ich über den Objektinspector (links unten) in den Fotorahmen bzw. in den Mediaplayer eingebunden. Dort steht bei "FileName" der komplette Pfad (also C:\Dokumente und Einstellungen\ ... usw.).
Wenn es hilft kann ich dir auch den Quelltext geben aber dieser geht über 450 Zeilen und hat noch eine kleine zweite Unit. Brauchst du hier einen speziellen Teil oder alles ?
Hab jetzt einfach mal den oberen teil der Unit 1 gepostet.
_____________________________________________________________________________________
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, jpeg, ExtCtrls, MPlayer;
type
TForm1 = class(TForm)
Button1: TButton;
Label1: TLabel;
Edit1: TEdit;
Edit2: TEdit;
Label2: TLabel;
Edit3: TEdit;
Label3: TLabel;
Edit4: TEdit;
Label4: TLabel;
Edit5: TEdit;
Label5: TLabel;
Edit6: TEdit;
Label6: TLabel;
Edit7: TEdit;
Label7: TLabel;
Edit8: TEdit;
Label8: TLabel;
Edit9: TEdit;
Label9: TLabel;
Image1: TImage;
Label10: TLabel;
Button2: TButton;
Button3: TButton;
MediaPlayer1: TMediaPlayer;
Label11: TLabel;
Button4: TButton;
Button5: TButton;
Label12: TLabel;
Label13: TLabel;
Label14: TLabel;
Label15: TLabel;
Label16: TLabel;
Label17: TLabel;
Timer1: TTimer;
MediaPlayer2: TMediaPlayer;
MediaPlayer3: TMediaPlayer;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button5Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Timer1Timer(Sender: TObject);
private
{ Private-Deklarationen }
public
{ Public-Deklarationen }
end;
var
Form1: TForm1;
Zufallszahl , SpielNr, PunkteRot, PunkteBlau, ADDBlau, ADDRot: Integer;
Spiel1 , Spiel2 , Spiel3 , Spiel4 , Spiel5 , Spiel6 ,
Spiel7 , Spiel8 , Spiel9 , SpielAktuell, Spiel1A, Spiel2A, Spiel3A, Spiel4A,
Spiel5A, Spiel6A, Spiel7A, Spiel8A, Spiel9A ,GS1 , GS2 , GS3 , GS4 ,
GS5, GS6, GS7, GS8, GS9 : String;
Spiel1E, Spiel2E, Spiel3E, Spiel4E, Spiel5E, Spiel6E, Spiel7E, Spiel8E,
Spiel9E : Integer;
implementation
{$R *.dfm}
uses unit2;
_____________________________________________________________________________________
Danach kommen die Button-Proceduren etc.
Hoffe es hilft erstmal soweit ?
Dude566 - So 13.03.11 12:09
So hilft das nicht, abgesehen davon gibt es Delphi-Tags. ;)
ALF - So 13.03.11 13:02
Glaube wichtig sind die Stellen wo die Dateien eingelesen werden!
Hinzu kommt auf welchen Systhemen Vista/Win7. Wo liegt die Exe, wo liegen die Dateien(sind sie überhaupt da, wo du sie suchst? usw.....)
Gruss ALf
Delete - So 13.03.11 13:05
Werden die Bibliotheken eventuell nicht mit die die Exe gelinkt? Ich weiß allerdings nicht, was Windows dann für eine Fehlermeldung ausgibt, wenn diese fehlen.
Und was die Pfade angeht, die werden doch ab Vista in die virtuellen Ordner umgebogen. Ich weiß nicht, ob es dann zu so einem Fehler kommt.
Eine andere Möglcihkeit wäre, dass die Exe auf dem Zielrechner beschädigt angekommen ist.
jaenicke - So 13.03.11 13:10
Eduardo hat folgendes geschrieben : |
| Dort steht bei "FileName" der komplette Pfad (also C:\Dokumente und Einstellungen\ ... usw.). |
Und du meinst jeder Benutzer benutzt den gleichen Benutzernamen wie du und die gleichen Laufwerksbuchstaben und das gleiche Betriebssystem... :roll: :autsch:
Du musst da zur Laufzeit den korrekten Pfad ermitteln und mit dem Dateinamen zusammen dort zuweisen...
Hidden - So 13.03.11 13:44
Luckie hat folgendes geschrieben : |
| Werden die Bibliotheken eventuell nicht mit die die Exe gelinkt? Ich weiß allerdings nicht, was Windows dann für eine Fehlermeldung ausgibt, wenn diese fehlt. |
Das ist wohl eher die Lösung: Falsche Pfade führen doch zu bekannten, anderen Fehlermeldungen.
Du kannst in den Projektoptionen einmal experimentieren.
Wenn die .exe eine bestimmte Größe unterschreitet, sollte das ein Indiz sein.
Vielleicht machst du mal ein Minimalbeispiel, indem du den Projektordner kopierst und konsequent Funktionen entfernst, bis das Problem gerade noch auftritt? Das kannst du dann ja auch sicher mit Quelltext hochladen ;)
lg,
Eduardo - So 13.03.11 15:00
Ok erstmal danke an alle die geschrieben haben.
Dank der informationen mit dem Bezug auf die Pfadangabe, habe ich folgendes versucht...
Die Pfadangabe mit C:\Dokumente und Einstellungen\... usw. habe ich einfach durch eine Relative Pfadangabe (Musik\Datei.wav) ersetzt, die sich auf den Ordner bezieht, in der sich die exe-Datei befindet.
Und nun siehe da, wenn der gesamte Ordner in dem das Projekt inkl. exe-Datei gespeichert wurde kopiert wird. Funktioniert alles einwandfrei, auch auf anderen PC´s.
Nochmals vielen Dank an alle die geschrieben haben. *Daumen hoch für dieses Forum*
jaenicke - So 13.03.11 15:15
Eduardo hat folgendes geschrieben : |
| Die Pfadangabe mit C:\Dokumente und Einstellungen\... usw. habe ich einfach durch eine Relative Pfadangabe (Musik\Datei.wav) ersetzt, die sich auf den Ordner bezieht, in der sich die exe-Datei befindet. |
Vorsicht, das ist auch falsch.
http://www.delphi-library.de/viewtopic.php?p=499701
Das bezieht sich
nicht auf den Pfad deiner Exe, sondern auf das aktuelle Verzeichnis. Das hat nichts damit zu tun wo die Exe liegt (das ist nur zufällig meistens gleich).
Delete - So 13.03.11 16:20
Aber wenn er die Dateien nicht gefunden hat, dann ist das auch ein Zeichen fehlender oder zumindest unzureichender Fehlerbehandlung! Das sollte man tunlichst ändern.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!