Benutzer mit den meisten Antworten
Unterschied zwischen /bin/Debug und /Programme (x86)/ ??

Frage
-
Hi,
ich weiß, der Titel sieht seltsam aus, aber ich bin hier echt am verzweifeln. Aber es muss irgendwas mit Rechten zu tun haben und ich beiße mir hier so langsam die Zähne aus.
Mein Programm funktioniert von VisualStudio 2010 Pro einwandfrei. Alles läuft. Wenn ich es aber mir InstallShield installiere und es von der "Windows 8.1 Startseite" aus starte, bekomme ich von einer der unmanaged-DLL statt TRUE ein FALSE zurück.
Starte ich das Programm aber vom Explorer aus, läuft es einwandfrei und ich bekomme auch von unmanged-DLL ein TRUE zurück.
Was macht diese DLL? Es gehört zu EasyView3D von Sunlight. Ein Programm welches mir Grafisch anzeigt, welche Lichteffekte laufen und welche nicht. Mit der DLL wird die Oberfläche geöffnet, geschlossen, DMX-Daten gesendet etc.
Wie gesagt, von VisualStudio aus einwandfrei, wenn ich das Programm vom Windows-Explorer aus in "C:\Programme (x86)\Andy\xyz\" starte ebenfalls, aber nicht wenn ich es von der Taskleiste aus starte oder von der Windows 8-Startseite. Dann gibt's grundsätzlich ein FALSE zurück. Auch egal ob ich es mit Adminrechte starte oder nicht.
Jetzt meine Frage: Warum? Gibt es einen Unterschied zwischen dem Start eines Programms von Windows-Explorer aus und von der Taskleiste (bzw. Startmenü) aus?
Das Problem habe ich eigentlich schon seit Monaten und daher immer das Programm nur von VisualStudio aus gestartet. Dann wieder ab und zu mal gesucht, dann wieder aufgegeben. Heute wieder 4 Stunden am Stück gesucht und alles ausprobiert. Vielleicht hat einer von euch eine Idee? Oder selbst so etwas schon mal gehabt?
Vielen Dank im voraus
Gruß
Andy
Antworten
-
Hallo,
meine einzige Idee dazu ist, das es am Arbeits- oder Ausführungsverzeichnis liegt. Da die Taskleisten und Startmenü-/Homescreen-Einträge Links sind, wird der Anwendung vielleicht vermittelt, das es in einem anderen Verzeichniss ausgeführt wird. Versuche darum mal eine neue Verknüpfung zur Anwendung zu erstellen. Einfach mit gedrückter ALT-Taste die EXE-Datei mit drag'n'drop wo anders hin ziehen. In den Eigenschaften der Verknüpfung kannst du das Ausführungsverzeichnis abändern. Vielleicht bringt das ja einen Erfolg.
Verhält es sich denn gleich wenn du die Verknüpfung vom Homescreen aus dem Explorer heraus startest? (Rechtsklick auf die Kachel > Speicherort öffnen in der Appbar.Sonst wäre es interessant zu wissen, wie genau die Methode das TRUE/FALSE ermittelt. (vielleicht den Hersteller kontaktieren!?)
Denn sonst habe ich auch keine weitere Idee mehr.Koopakiller [kuːpakɪllɐ] (Tom Lambert)
Webseite |
Code Beispiele |
Facebook |
Twitter |
Snippets
C# ↔ VB.NET Konverter
Markiert bitte beantwortende Posts als Antwort und bewertet Beiträge. Danke.- Als Antwort markiert AndreasMahub Mittwoch, 5. März 2014 06:04
Alle Antworten
-
Hallo,
meine einzige Idee dazu ist, das es am Arbeits- oder Ausführungsverzeichnis liegt. Da die Taskleisten und Startmenü-/Homescreen-Einträge Links sind, wird der Anwendung vielleicht vermittelt, das es in einem anderen Verzeichniss ausgeführt wird. Versuche darum mal eine neue Verknüpfung zur Anwendung zu erstellen. Einfach mit gedrückter ALT-Taste die EXE-Datei mit drag'n'drop wo anders hin ziehen. In den Eigenschaften der Verknüpfung kannst du das Ausführungsverzeichnis abändern. Vielleicht bringt das ja einen Erfolg.
Verhält es sich denn gleich wenn du die Verknüpfung vom Homescreen aus dem Explorer heraus startest? (Rechtsklick auf die Kachel > Speicherort öffnen in der Appbar.Sonst wäre es interessant zu wissen, wie genau die Methode das TRUE/FALSE ermittelt. (vielleicht den Hersteller kontaktieren!?)
Denn sonst habe ich auch keine weitere Idee mehr.Koopakiller [kuːpakɪllɐ] (Tom Lambert)
Webseite |
Code Beispiele |
Facebook |
Twitter |
Snippets
C# ↔ VB.NET Konverter
Markiert bitte beantwortende Posts als Antwort und bewertet Beiträge. Danke.- Als Antwort markiert AndreasMahub Mittwoch, 5. März 2014 06:04
-
Guten Morgen Tom :-)
der war schon mal nicht schlecht mit dem "Datei mit drag'n'drop wo anders hin ziehen."
Also, zu eurem Verständnis (DLL im Programm antwortet entsprechend mit FALSE oder TRUE):
1.) Programm installiert, an Homescreen angepinnt, angeklickt = FALSE (Fehler)
2.) Programm vom Homescreen "an Taskleiste heften", dann angeklickt = FALSE (Fehler)
3.) Programm direkt (C:\Programme (x86)\...\" im Windows-Explorer geöffnet = TRUE (okay, Programm läuft)
4.) Programm im Windows-Explorer mit gedrückter ALT-Taste auf Desktop gezogen, angeklickt = TRUE (okay)
5.) Programm vom Desktop "an Taskleiste heften" gewählt, angeklickt = TRUE (okay)
6.) Rechte Maustaste auf das Symbol auf dem Desktop und "An 'Start' anpinnen" gewählt, auf Start gegangen, angeklickt = FALSE (Fehler)
7.) Programm von Taskleiste wieder weggenommen, Wieder zurück auf Start (Homescreen) und "An Taskleiste heften" gewählt, auf Taskleiste gegangen, Programm angeklickt = FALSE (Fehler).Um es kurz zu machen, sobald die Verknüpfung einmal den Homescreen "gesehen" hat (also dort mal angepinnt war), geht es nicht mehr. Endlich "eine heiße Spur"!!!!!!!!!!!! :-)
Jetzt stellt sich mir die Frage, was passiert mit der Verknüpfung "auf dem Weg" vom Desktop zum Homescreen, dass danach das Programm nicht mehr funktioniert?
Ich habe euch mal einen Screenshot angehangen mit zwei Eigenschaftenfenstern.
Links, Eigenschaften der Verknüpfung von der Startseite. Rechts, funktionierende Verknüpfung vom Desktop. Was gleich ins Auge springt sind "Ziel" und "Ausführen in". Und "Ausführen in" ist Grundsätzlich leer (bzw. wird geleert), wenn die Verknüpfung auch nur ganz kurz die Startseite sieht, der Inhalt wird schlichtweg weggelassen und das Programm funktioniert dann nicht mehr. Folglich wird auch alles, was ich von der Startseite aus z.B. auf die Taskleiste anpinne, ebenfalls mit dem leeren Eintrag in "Ausführen in" kopiert.
Was kann man jetzt dagegen tun? Kann man Programmatisch noch irgendwie "eingreifen" (Stichwort SetEnviroment)?
Gruß
Andy
NACHTRAG:
Wenn ich vom Windows-Explorer das Programm mit gedrückter Alt-Taste an die Taskleiste anhefte, geht es auch nicht. Aber wenn ich mit gedrückter Alt-Taste ERST auf den Desktop gehe, DANACH sage an Taskleiste anheften und dann die Verknüpfungen vom Desktop lösche, funktioniert auch die Verknüpfung auf der Taskleiste (Antwort True).- Bearbeitet AndreasMahub Mittwoch, 5. März 2014 06:15
-
Geschafft! Geschafft! Geschafft! :-)
Hier ist das "Geheimnis" :-)
MsgBox(System.Environment.CurrentDirectory) System.Environment.CurrentDirectory = "C:\Program Files (x86)\Andy\DmxStyler 2014\"
Wenn ich das Programm von "Start" aus aufrufe, dann erhalte ich als CurrentDirectory "C:\Windows\System32"?????? :-o
Wenn ich danach CurrentDirectory ändere (dachte es wäre ReadOnly), dann funktioniert mein Programm und ich bekomme von der DLL "TRUE" zurück, klar, weil in meinem Programmordner auch EasyView liegt, und nicht in Windows/System32.
Boah, danke Tom, du hast mich auf diese Spur geführt :-)
Gruß
Andy