Autostart. CurrentDir spielt verrückt.
Übersicht

barratatorBetreff: Autostart. CurrentDir spielt verrückt. |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hallo,
ich habe für ein Programm von mir einen Autostart Eintrag in der Registry angelegt. Also: Current_User->Software->........->Run und dort eine Zeichenfolge mit einem Namen und dem Wert nach dem Schema von: "C:\XYZ\programm.exe" angelegt (inklusive den Anführungszeichen davor und dahinter). Dies klappt soweit ganz gut, allerdings gibt CurrentDir ![]() Ein weiterer Test: Ich habe Versucht statt dem Programm, eine Batch-Datei über den Autostart starten zu lassen. Batch und Exe liegen im selben Verzeichnis. Die Batch-Datei wurde gestartet, und sollte dann die Exe starten. Inhalt der Batch Datei: Code: [AUSKLAPPEN] @echo off start programm.exe exit Dies klappt, wenn ich die Batch Datei über den Explorer starte. Aber wenn der Autostart diese startet kommt eine Fehlermeldung, dass die Datei "programm.exe" nicht existiert... Also "dachte" die Batch-Datei auch, sie würde woanders liegen. Achja...Alle Dateien, die mein Programm aufrufen soll, also per ReadFile o.Ä. (mit relativen Pfadangaben) findet dieses nicht. Es wird 0 zurückgegeben. Diese sucht er vermutlich auch in "C:\Dokumente und Einstellungen\User". Wie kann ich dies jetzt beheben, sodass mein Programm auch genauso klappt, wie es klappen sollte? gruß Bastian |
||
![]() |
DAK |
![]() Antworten mit Zitat ![]() |
---|---|---|
hast du das ganze per verknüpfung gemacht oder das programm direkt rein geschoben? | ||
Gewinner der 6. und der 68. BlitzCodeCompo |
![]() |
BtbN |
![]() Antworten mit Zitat ![]() |
---|---|---|
Beim starten per Registry wird das Working-Dir zu programm-start auf das home-dir des users gesetzt.
Es ist nicht garantiert, dass das CurrentDir = dem dir, wo die exe liegt ist. Sich darauf zu verlassen könnte demnach nach hinten los gehen. |
||
barratator |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ja, das weiß ich auch.
Aber bisher hatte es ja geklappt. Das Merkwürde ist ja, dass ReadFile, etc. mit relativer Pfadangabe nicht funktionieren. -> Was gibt es sonst für möglichkeiten den Speicherort rauszufinden? (Könnte eine DLL in PB weiterhelfen?) -> Wird das mit dem ReadFile, etc. behoben, wenn ich mit ChangeDir dies dann ändere? gruß Bastian |
||
barratator |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
So, habe mir jetzt eine Userlib geschrieben die den Pfad ermittelt.
Klappt jetzt alles super. Danke für die Antworten. gruß Bastian |
||
![]() |
BtbN |
![]() Antworten mit Zitat ![]() |
---|---|---|
Sollte SystemProperty![]() |
||
barratator |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Edit: Ok, klappt doch. Aber ist jetzt eh zu spät. Ob jetzt 55kb unter 20 DLLs noch was ausmachen ist auch egal ![]() gruß Bastian |
||
![]() |
The Shark |
![]() Antworten mit Zitat ![]() |
---|---|---|
1. ein dll aufruf ist langsamer
2. wofür brauchst du 20 dlls? |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group