AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Mein Programm funktioniert nicht über eine Verknupfung richtig !
Thema durchsuchen
Ansicht
Themen-Optionen

Mein Programm funktioniert nicht über eine Verknupfung richtig !

Ein Thema von thomas2009 · begonnen am 7. Nov 2010 · letzter Beitrag vom 9. Nov 2010
Antwort Antwort
Seite 1 von 4  1 23     Letzte »    
thomas2009
(Gast)

n/a Beiträge
 
#1

Mein Programm funktioniert nicht über eine Verknupfung richtig !

  Alt 7. Nov 2010, 22:22
Hallo

ich verstehe nicht warum funktioniert mein Programm richtig,
nur wenn ich das Programm direkt im Programmverzeichnis starte !

Aber wenn ich mein Programm durch eine Verknüpfung (durch das Icon auf Desktop) aufrufe, dann können alle Dateien wie Videos, die ich in mein Programm lade nicht gefunden werden) !!!

Was ist der Unterschied, wenn ich das Programm direkt aufrufe oder durch eine Verknüpfung ?

Ich lade meine Videos in Mediaplayer Komponent :
MediaPlayer.FileName :=Temp +'\video1.avi';

Geändert von thomas2009 ( 8. Nov 2010 um 16:07 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von wicht
wicht

Registriert seit: 15. Jan 2006
Ort: Das schöne Enger nahe Bielefeld
809 Beiträge
 
Delphi XE Professional
 
#2

AW: Mein Programm funktioniert über eine Verknupfung

  Alt 7. Nov 2010, 22:24
Eventuell wegen dem "working directory"?
http://streamwriter.org

"I make hits. Not the public. I tell the DJ’s what to play. Understand?"
  Mit Zitat antworten Zitat
thomas2009
(Gast)

n/a Beiträge
 
#3

AW: Mein Programm funktioniert über eine Verknupfung

  Alt 7. Nov 2010, 22:31
Was meinst du bitte mit "working directory" ?
Als Hinweis
So wird der Pfad gebaut :

Temp :=GetEnvironmentVariable('Temp');
MediaPlayer.FileName :=Temp +'\video1.avi';

Geändert von thomas2009 ( 7. Nov 2010 um 22:38 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von wicht
wicht

Registriert seit: 15. Jan 2006
Ort: Das schöne Enger nahe Bielefeld
809 Beiträge
 
Delphi XE Professional
 
#4

AW: Mein Programm funktioniert über eine Verknupfung

  Alt 7. Nov 2010, 22:38
Benutz einfach beim Dateizugriff als Pfad nicht 'ordner\datei.ext', sondern sowas wie IncludeTrailingBackslash(ExtractFilePath(Application.ExeName)) + 'ordner\datei.exe' .
http://streamwriter.org

"I make hits. Not the public. I tell the DJ’s what to play. Understand?"
  Mit Zitat antworten Zitat
thomas2009
(Gast)

n/a Beiträge
 
#5

AW: Mein Programm funktioniert über eine Verknupfung

  Alt 7. Nov 2010, 22:57
Was Bummi am Anfang geschrieben hat, konnte das Problem sein

Wenn ich eine die Verknüpfung selbe erstellen, dann geht
Aber die Verknüpfung, die von dem Setup-Programm (Inno) erstellt werden, funktionieren nicht

Und noch was. Die Verknüpfung-Eigenschaften von Inno steht nur der Ziel-Pfad
Aber Ausführen : Leer

Kann das das Problem sein ?
  Mit Zitat antworten Zitat
Benutzerbild von Bummi
Bummi

Registriert seit: 15. Jun 2010
Ort: Augsburg Bayern Süddeutschland
3.470 Beiträge
 
Delphi XE3 Enterprise
 
#6

AW: Mein Programm funktioniert über eine Verknupfung

  Alt 7. Nov 2010, 23:04
ja, wir hatte vor kurzem ein ähnlich fehlerhaftes Setup erstellt, es aber glücklicherweise in der Testphase noch bemerkt.
Thomas Wassermann H₂♂
Das Problem steckt meistens zwischen den Ohren
DRY DRY KISS
H₂ (wenn bei meinen Snipplets nichts anderes angegeben ist Lizenz: WTFPL)
  Mit Zitat antworten Zitat
thomas2009
(Gast)

n/a Beiträge
 
#7

AW: Mein Programm funktioniert über eine Verknupfung

  Alt 7. Nov 2010, 23:21
Du Hast dann Glück gehabt
Und die Lösung jetzt ! Kann ich das Problem bei dem Toll "Inno" korrigieren oder was ?

Ich verwende Inno Setup v5.3.10

Oder kommen wir zurück was @wicht geschrieben haben
von "working directory" ?
Delphi-Quellcode:
[Icons]
; NOTE: Ensure that you always include and set the WorkingDir.
; Filename is the "Target" parameter in your properties
; WorkingDir is the "Start In" parameter in your properties
; This is where the current directory will be set in your program at start up.
quelle:
http://webcache.googleusercontent.co...&ct=clnk&gl=de

Wie gesagt, ich habe die Version Inno Setup 5.3.10
Aber bei der Version 5.3.11 wurde das Problem behoben
http://webcache.googleusercontent.co...&ct=clnk&gl=de

Geändert von thomas2009 ( 7. Nov 2010 um 23:39 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Bummi
Bummi

Registriert seit: 15. Jun 2010
Ort: Augsburg Bayern Süddeutschland
3.470 Beiträge
 
Delphi XE3 Enterprise
 
#8

AW: Mein Programm funktioniert über eine Verknupfung

  Alt 7. Nov 2010, 23:44
Leider muß ich hier passen, wir verwenden kein INNO.
Bei uns ist InstallAware im Einsatz, hier fehlte einfache eine Eigenschaft für das Arbeitsverzeichnis.
Thomas Wassermann H₂♂
Das Problem steckt meistens zwischen den Ohren
DRY DRY KISS
H₂ (wenn bei meinen Snipplets nichts anderes angegeben ist Lizenz: WTFPL)
  Mit Zitat antworten Zitat
Benutzerbild von wicht
wicht

Registriert seit: 15. Jan 2006
Ort: Das schöne Enger nahe Bielefeld
809 Beiträge
 
Delphi XE Professional
 
#9

AW: Mein Programm funktioniert über eine Verknupfung

  Alt 7. Nov 2010, 23:47
Dann müsste an das Icon wohl sowas wie "WorkingDir: {app}" mit angegeben werden. Finde ich aber unschön, besser ist es meiner Meinung nach, wenn das Programm vom Ort der .exe ausgeht, wenn es Dateien sucht (wie schon oben beschrieben..).
http://streamwriter.org

"I make hits. Not the public. I tell the DJ’s what to play. Understand?"
  Mit Zitat antworten Zitat
Benutzerbild von Bummi
Bummi

Registriert seit: 15. Jun 2010
Ort: Augsburg Bayern Süddeutschland
3.470 Beiträge
 
Delphi XE3 Enterprise
 
#10

AW: Mein Programm funktioniert über eine Verknupfung

  Alt 8. Nov 2010, 00:00
ich gebe "wicht" recht, besser ist es wenn die Anwendung nicht abhängig ist.
Falls Du das mit INNO nicht in den Griff bekommst kannst Du theoretisch ganz schmutzig auch die Verknüpfung aus dem Programm heraus erstellen / reparieren
Delphi-Quellcode:
 var
    IObject : IUnknown;
    ISLink : IShellLink;
    IPFile : IPersistFile;
    PIDL : PItemIDList;
    InFolder : array[0..MAX_PATH] of Char;
    TargetName : String;
    LinkName : WideString;
 begin
    TargetName := Application.ExeName;

    IObject := CreateComObject(CLSID_ShellLink) ;
    ISLink := IObject as IShellLink;
    IPFile := IObject as IPersistFile;

    with ISLink do
    begin
      SetPath(pChar(TargetName)) ;
      SetWorkingDirectory(pChar(ExtractFilePath(TargetName))) ;
    end;


    SHGetSpecialFolderLocation(0, CSIDL_DESKTOPDIRECTORY, PIDL) ;
    SHGetPathFromIDList(PIDL, InFolder) ;
    LinkName := InFolder + '\MeinProgramm.lnk';
    IPFile.Save(PWChar(LinkName), false) ;
 end;
benötigt uses ShlObj, ActiveX, ComObj;
Thomas Wassermann H₂♂
Das Problem steckt meistens zwischen den Ohren
DRY DRY KISS
H₂ (wenn bei meinen Snipplets nichts anderes angegeben ist Lizenz: WTFPL)

Geändert von Bummi ( 8. Nov 2010 um 00:12 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 4  1 23     Letzte »    


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 17:54 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