AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Programm läuft nicht auf anderen Computern

Programm läuft nicht auf anderen Computern

Ein Thema von robinWie · begonnen am 19. Mär 2006 · letzter Beitrag vom 19. Mär 2006
Antwort Antwort
Benutzerbild von robinWie
robinWie

Registriert seit: 26. Okt 2005
Ort: Lippcity
404 Beiträge
 
Delphi 2005 Personal
 
#1

Programm läuft nicht auf anderen Computern

  Alt 19. Mär 2006, 13:28
Hallo,
ich habe für ein Programm ein Setup geschrieben. Wenn ich das Programm auf meinem Computer installiere läuft alles wie es sein sollte. Aber wenn ich das auf anderen Computern installiere, wird das Programm gestartet aber sofot wieder beendet. Wie kann das sein? Alle für das Programm relevanten Dateien werden mit geliefert.
Für das Setup verwende ich das Programm.

Danke im Voraus
Robin W.
Ein Computer kann (fast) alles.... Man muss es ihm nur beibringen
  Mit Zitat antworten Zitat
MrKnogge

Registriert seit: 9. Jun 2003
Ort: Pforzheim
2.458 Beiträge
 
Delphi 2007 Professional
 
#2

Re: Programm läuft nicht auf anderen Computern

  Alt 19. Mär 2006, 14:08
kopieren die Dateien doch mal ohne Setup auf den anderen Computer und probier ob es dann geht.

gruss
Christian Bootz
Einstein ist tot, Newton ist tot,
und mir ist auch schon ganz schlecht...
  Mit Zitat antworten Zitat
Benutzerbild von robinWie
robinWie

Registriert seit: 26. Okt 2005
Ort: Lippcity
404 Beiträge
 
Delphi 2005 Personal
 
#3

Re: Programm läuft nicht auf anderen Computern

  Alt 19. Mär 2006, 14:29
Ok habe ich ausprobiert funktioniert aber immer noch nicht.
Da kommt noch nichtmal eine Fehlermeldung. Es baut sich auf und plotzlich ist es weg.
Robin W.
Ein Computer kann (fast) alles.... Man muss es ihm nur beibringen
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#4

Re: Programm läuft nicht auf anderen Computern

  Alt 19. Mär 2006, 14:34
Zitat von robinWie:
Alle für das Programm relevanten Dateien werden mit geliefert.
Offensichtlich doch nicht alle. Was macht dein Programm so? Welche System-Komponenten werden verwendet? Welche Units werden eingebunden, die nicht zum Delphi-Standard gehören?

Grüße vom marabu
  Mit Zitat antworten Zitat
Benutzerbild von robinWie
robinWie

Registriert seit: 26. Okt 2005
Ort: Lippcity
404 Beiträge
 
Delphi 2005 Personal
 
#5

Re: Programm läuft nicht auf anderen Computern

  Alt 19. Mär 2006, 15:04
Außer einigen Dateien, die zum speichern der Einstellungen benötigt werden, hat das Programm nicht mehr viele weiteren Programmdateien. Nur 2 DLLs, 3 Bitmaps und 3 "client" Programmen. Die sind aber alle vorhanden
Ich habe auch mal ausprobiert ob ich funktionen aus einer Dll ins Programm übertrage aber das hatte keinen Effekt.

Nachtrag:
Zitat:
Was macht dein Programm so?
Es ist ein sehr umfangreiches Programm um Musik zu hören. Eher eine art Media Center
Robin W.
Ein Computer kann (fast) alles.... Man muss es ihm nur beibringen
  Mit Zitat antworten Zitat
Prototypjack

Registriert seit: 2. Feb 2003
611 Beiträge
 
Delphi 2009 Professional
 
#6

Re: Programm läuft nicht auf anderen Computern

  Alt 19. Mär 2006, 16:07
Hallo,
Hört sich ja merkwürdig an, dein Problem.
Kann es sein das du auf irgendwelche Fremdroutinen zugreifst die auf den anderen Rechnern schlicht nicht vorhanden sind?
Ich kann mir schlecht vorstellen das du das nicht machst, da eine Standalone Mediacenteranwendung ziemlich schwer zu realisieren sein dürfte.
Gruß
Max
„If you have any great suggestions, feel free to mail me, and I'll probably feel free to ignore you.“ . Linus Torvalds
  Mit Zitat antworten Zitat
Benutzerbild von robinWie
robinWie

Registriert seit: 26. Okt 2005
Ort: Lippcity
404 Beiträge
 
Delphi 2005 Personal
 
#7

Re: Programm läuft nicht auf anderen Computern

  Alt 19. Mär 2006, 16:27
Zitat:
Hallo,
Hört sich ja merkwürdig an, dein Problem.
Kann es sein das du auf irgendwelche Fremdroutinen zugreifst die auf den anderen Rechnern schlicht nicht vorhanden sind?
Ich kann mir schlecht vorstellen das du das nicht machst, da eine Standalone Mediacenteranwendung ziemlich schwer zu realisieren sein dürfte.
Gruß
Ich verwende eine Komponente die in Delphi nicht enthalten ist. Es kann sein das die auf Fremdroutinen zugreift. Meines wissens nach sind, die Routinen für die Komonente, aber in der Bass.dll die sich im Programmordner befindet. Dann verwende ich noch zwei Routinen aus einer "Drive.dll" die ist aber auch im Programmordner. Sonst wüsste ich keine anderen Routinen auf die das Programm zugreift, aber ich schaue mal nach.

Nachtrag:
Ich habe gesucht und keinen Fehler gefunden. Wohlmöglich liegt es an der "Drive.dll" die ich mir mal zusammengetragen habe. Es kann ja sein dass diese ein Fehler enthält. Ihr könnt sie euch ja mal anschauen

Delphi-Quellcode:
library Drive;

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ComCtrls, ExtCtrls, MMSystem;

{$R *.res}

function LockDrive(ADriveLetter: Char; ALock: Boolean): Boolean;
var LWStatus: Hwnd;
    LTemp: Cardinal;
    LPMR32: Boolean;
Const IOCTL_STORAGE_MEDIA_REMOVAL = $2D4804;
begin
  LwStatus := CreateFile(PChar('\\.\' + ADriveLetter + ':'),GENERIC_READ Or GENERIC_WRITE, 0, nil, OPEN_EXISTING, 0, 0);
  LPMR32 := ALock;
  If LwStatus <> INVALID_HANDLE_VALUE Then
  begin
    result := DeviceIoControl(LwStatus, IOCTL_STORAGE_MEDIA_REMOVAL, @LPMR32, sizeof(LPMR32), nil, 0, LTemp, nil);
    CloseHandle(LwStatus);
  end else result := False;
end;

function DriveName(DriveChar: Char): string;
var
  OldErrorMode : Integer;
  NotUsed, VolFlags : DWORD;
  Buf : array [0..MAX_PATH] of Char;
begin
  OldErrorMode := SetErrorMode(SEM_FAILCRITICALERRORS);
  try
    GetVolumeInformation(PChar(DriveChar + ':\'), Buf,
                         sizeof(Buf), nil, NotUsed, VolFlags,
                         nil, 0);
    Result := Format('%s', [Buf]);
  finally
    SetErrorMode(OldErrorMode);
  end;
end;

function GetDiskIn(Drive: Char): Boolean;
var
  ErrorMode: word;
  DriveNumber: Integer;
begin
  {Meldung eines kritischen Systemfehlers vehindern}
  ErrorMode := SetErrorMode(SEM_FailCriticalErrors);
  try
    DriveNumber := Ord(Drive) - 64;
    if DiskSize(DriveNumber) = -1 then
      Result := False
    else
      Result := True;
  finally
    {ErrorMode auf den alten Wert setzen}
    SetErrorMode(ErrorMode);
  end;
end;


function OpenCD(Drive: String): Boolean;
var
  Res: MciError;
  OpenParm: TMCI_Open_Parms;
  Flags: DWORD;
  S: string;
  DeviceID: Word;
begin
  Result := False;
  S := Drive + ':';
  Flags := MCI_OPEN_TYPE or MCI_OPEN_ELEMENT;
  with OpenParm do
  begin
    dwCallback := 0;
    lpstrDeviceType := 'CDAudio';
    lpstrElementName := PChar(S);
  end;
  Res := mciSendCommand(0, MCI_OPEN, Flags, Longint(@OpenParm));
  if Res <> 0 then Exit;
  DeviceID := OpenParm.wDeviceID;
  try
    Res := mciSendCommand(DeviceID, MCI_SET, MCI_SET_DOOR_OPEN, 0);
    if Res = 0 then Exit;
    Result := True;
  finally
    mciSendCommand(DeviceID, MCI_CLOSE, Flags, Longint(@OpenParm));
  end;
end;

function CloseCD(Drive: String): Boolean;
var
  Res: MciError;
  OpenParm: TMCI_Open_Parms;
  Flags: DWORD;
  S: string;
  DeviceID: Word;
begin
  Result := False;
  S := Drive + ':';
  Flags := MCI_OPEN_TYPE or MCI_OPEN_ELEMENT;
  with OpenParm do
  begin
    dwCallback := 0;
    lpstrDeviceType := 'CDAudio';
    lpstrElementName := PChar(S);
  end;
  Res := mciSendCommand(0, MCI_OPEN, Flags, Longint(@OpenParm));
// if Res <> then Exit;
  DeviceID := OpenParm.wDeviceID;
  try
    Res := mciSendCommand(DeviceID, MCI_SET, MCI_SET_DOOR_CLOSED, 0);
    if Res = 0 then Exit;
    Result := True;
  finally
    mciSendCommand(DeviceID, MCI_CLOSE, Flags, Longint(@OpenParm));
  end;
end;

exports
  LockDrive name 'LockDrive',
  DriveName name 'DriveName',
  GetDiskIn name 'GetDiskIn',
  CloseCD name 'CloseCD',
  OpenCD name 'OpenCD';
end.
Robin W.
Ein Computer kann (fast) alles.... Man muss es ihm nur beibringen
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 14:48 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