Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Autostart aus Registry von Windows simulieren (https://www.delphipraxis.net/69106-autostart-aus-registry-von-windows-simulieren.html)

sieppl 10. Mai 2006 10:52


Autostart aus Registry von Windows simulieren
 
Hi!

Wenn eine ausführbare Datei aus HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Curr entVersion\Run gestartet wird
ist das Arbeitsverzeichnis nicht das selbe wie der tatsächliche Ort der Datei. Ich muss einen Fehler finden, der nur
auftritt wenn meine Exe-Datei als Auto-Run gestartet wurde, bei normalem Doppelklick auf die Exe nicht.
Hat jemand eine Idee wie ich den Autostart aus der Registry simulieren kann, ohne meinen Rechner jedesmal neu zu starten?
Danke!

Grüße

Sebastian

XeRo 10. Mai 2006 10:56

Re: Autostart aus Registry von Windows simulieren
 
ein fehler der nur beim autostart auftritt? :gruebel:
wir die datei dabei mit einem parameter gestartet?
sonst wüsste ich nicht wieso der fehler bei normalen starten nicht da ist...

Klaus01 10. Mai 2006 10:59

Re: Autostart aus Registry von Windows simulieren
 
Arbeit Deine Exe mit weiteren Datei, die Du in Deinem Programm relativ zu Deinem Arbeitsverzeichnis gesetzt hast?
wie z.B.
Delphi-Quellcode:
memo1.lines.loadfromfile('.\test.dat');
Wenn das so ist, dann sollte das Problem auch dann auftreten, wenn Du Deine Exe nach irgendwohin verlinkst.

Dann solltest Du das am Besten so ändern:
Delphi-Quellcode:
memo1.lines.loadfromfile(extractFilePath(Application.ExeName)+'\test.dat'));

Grüße
Klaus

sieppl 10. Mai 2006 11:02

Re: Autostart aus Registry von Windows simulieren
 
Zitat:

Zitat von XeRo
ein fehler der nur beim autostart auftritt? :gruebel:
wir die datei dabei mit einem parameter gestartet?
sonst wüsste ich nicht wieso der fehler bei normalen starten nicht da ist...

Diese Exe-Datei (kleines Tray-Proggie) startet ein anderes Programm bei Bedarf. DIe beiden kommunizieren über Messages.
Das heißt sie tauschen zu Beginn die Handles aus. Wenn das Tray-Programm das Hauptprogramm startet (mit einem Parameter)
versucht das Hauptprogramm den Handle auf das Tray-Programm zu bekommen. Ich mache das über:

Delphi-Quellcode:
  FTrayHandle := FindWindow(nil, 'Tray Proggie');
Klappt wenn das Tray-Programm per Doppelklick gestartet wird, aber anscheinend nicht wenn es von Windows in Gang gesetzt wird.
Ich bin mir im Moment auch nicht sicher ob es am FindWindow liegt, dafür möchte ich den Autostart siumulieren können.

sieppl 10. Mai 2006 11:03

Re: Autostart aus Registry von Windows simulieren
 
Zitat:

Zitat von Klaus01
Arbeit Deine Exe mit weiteren Datei, die Du in Deinem Programm relativ zu Deinem Arbeitsverzeichnis gesetzt hast?
wie z.B.
Delphi-Quellcode:
memo1.lines.loadfromfile('.\test.dat');
Wenn das so ist, dann sollte das Problem auch dann auftreten, wenn Du Deine Exe nach irgendwohin verlinkst.

Dann solltest Du das am Besten so ändern:
Delphi-Quellcode:
memo1.lines.loadfromfile(extractFilePath(Application.ExeName)+'\test.dat'));

Grüße
Klaus

Hi Klaus!
Danke für den Hinweis, das ist leider nicht das Problem. Das Hauptprogramm wird gestartet, bekommt aber nicht den Handle zum Tray-Programm. Siehe Beitrag oben.

sieppl 10. Mai 2006 13:09

Re: Autostart aus Registry von Windows simulieren
 
Mein Tray-Programm hat nur Handles > 99999 akzeptiert. Komscherweise bekomme ich in der einen geschilderten Situation einen Handle der kleiner ist. (Der Handle wird von einer Konnektor-Klasse über AllocateHWnd erstellt) Komisch, komisch.
Naja, jetzt klappt es.
Falls doch noch jemand einen Tipp hat wie man den Autostart simulieren kann, bitte hier rein. (Rein Interessehalber)


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:21 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