AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Programmstart durch Autostart - kann man das herausfinden?
Thema durchsuchen
Ansicht
Themen-Optionen

Programmstart durch Autostart - kann man das herausfinden?

Ein Thema von Flare · begonnen am 15. Sep 2006 · letzter Beitrag vom 16. Sep 2006
Antwort Antwort
Seite 2 von 3     12 3      
Flare

Registriert seit: 26. Jan 2006
Ort: Leipzig
529 Beiträge
 
Delphi 7 Professional
 
#11

Re: Programmstart durch Autostart - kann man das herausfinde

  Alt 15. Sep 2006, 16:33
Gut, werde ich mal probieren!

(Und ich finde es seltsam, dass sich ICQ und MSN sowie ein paar andere Programme extra wieder beenden obwohl ich möchte, dass die gestartet werden...ich finde das unnötige Programmierarbeit - und für mich mehr )


Flare
Willy Scheibel
  Mit Zitat antworten Zitat
Benutzerbild von Martin K
Martin K

Registriert seit: 20. Okt 2005
919 Beiträge
 
Turbo Delphi für Win32
 
#12

Re: Programmstart durch Autostart - kann man das herausfinde

  Alt 15. Sep 2006, 16:46
Also ich hab jetzt selber mal geguckt, als Arbeitsverzeichnis wird wohl der %HomePath% übergeben.
Ist das bei Dir auch so?
Mit den Menschen ist es wie mit Computern -
es gibt Nullen und Einsen.
  Mit Zitat antworten Zitat
Flare

Registriert seit: 26. Jan 2006
Ort: Leipzig
529 Beiträge
 
Delphi 7 Professional
 
#13

Re: Programmstart durch Autostart - kann man das herausfinde

  Alt 16. Sep 2006, 11:23
Bei mir ist das auch so. Also habe ich einfach mal eine Funktion gesucht womit man eben diesen Homepath bekommt und habe zum Glück bei Lucky nach langer Zeit etwas gefunden

Das dumme nur, für den Homepath scheint keine Konstante festgelegt zu sein, also habe ich durchgetestet und eine Zahl gefunden, die man als Homepath durchgehen lassen kann.

Also habe ich das ganze schnell noch in mein Programm implementiert und siehe da: nix passiert

Aber wenigstens weiß ich jetzt wie man die Funktion GetShellFolder verwendet

Hier mal mein relevanter Code, vielleicht habe ich ja auch irgendwo nen Fehler den ich nicht sehe:
Delphi-Quellcode:
procedure TForm3.buttonclick(Sender: TObject);
var button: TButton;
    name,workdir: string;
begin
  if Sender is TButton then
  begin
    name := programs[(Sender as TButton).tag]; //z.B. "C:\Programme\Messenger\msmsgs.exe" /background
    if pos('"', name)>0 then
    begin
      //vielleicht kommt ja noch was hier rein
    end
    else
    begin
      name := '"' + name + '"';
    end;
    workdir := GetShellFolder($0028); //z.B. C:\Dokumente und Einstellungen\Flare
    ShellExecute(Handle, nil, PChar(name), nil, PChar(workdir), 0);
  end;
end;

Flare
Willy Scheibel
  Mit Zitat antworten Zitat
ringli

Registriert seit: 7. Okt 2004
509 Beiträge
 
Delphi 11 Alexandria
 
#14

Re: Programmstart durch Autostart - kann man das herausfinde

  Alt 16. Sep 2006, 11:59
Versuch es doch mal so:
Shellexecute(Handle, nil, 'C:\Programme\Messenger\msmsgs.exe', '/background', nil, 0); oder

Shellexecute(Handle, nil, nil, '"C:\Programme\Messenger\msmsgs.exe" /background', nil, 0); Einfach mal ausprobieren ob es so geht.
  Mit Zitat antworten Zitat
Flare

Registriert seit: 26. Jan 2006
Ort: Leipzig
529 Beiträge
 
Delphi 7 Professional
 
#15

Re: Programmstart durch Autostart - kann man das herausfinde

  Alt 16. Sep 2006, 12:21
Erstes klappt, Zweites nicht, wobei ich auch nicht weiß wieso das klappen sollte, da du alles als Parameter übergeben möchtest.

Allerdings klappt es auch nur mit dieser Exe! Wenn ich genau das mit ICQ mache passiert nämlich gar nix.
Und außerdem habe ich dann wieder das Problem mit dem extrahieren des Parameters. Bei dem Messenger ist das ja noch einfach, da gibt es ja nur ein Leerzeichen aber darauf kann man sich ja nicht verlassen.

Flare
Willy Scheibel
  Mit Zitat antworten Zitat
Benutzerbild von vlees91
vlees91

Registriert seit: 19. Apr 2004
843 Beiträge
 
Turbo Delphi für Win32
 
#16

Re: Programmstart durch Autostart - kann man das herausfinde

  Alt 16. Sep 2006, 13:22
Mcötest du einfach nur ICQ/MSN im Hintergrund starten?
Wenn ja:
starte es normal über dein Programm und dann gibts glaube ich eine Messager, die man Programmen schicken kann, sodass sie "verschwinden"^^
vlees91
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.063 Beiträge
 
Delphi 12 Athens
 
#17

Re: Programmstart durch Autostart - kann man das herausfinde

  Alt 16. Sep 2006, 13:40
Zitat von Flare:
Zweites nicht, wobei ich auch nicht weiß wieso das klappen sollte, da du alles als Parameter übergeben möchtest.
Zweites kann auch nicht funktionieren, da Shellexecute als ersten 2 Parameter ausschließlich einen Dateinamen erwartet (verlangt) und diese nunmal insgesamt kein Dateiname.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
Flare

Registriert seit: 26. Jan 2006
Ort: Leipzig
529 Beiträge
 
Delphi 7 Professional
 
#18

Re: Programmstart durch Autostart - kann man das herausfinde

  Alt 16. Sep 2006, 13:44
Nein, das möchte ich nicht. Ich möchte es so starten, wie das Programm durch den Autostart gestartet werden möchte. Mein Programm soll ja einen Autostart simulieren der nur nicht direkt beim starten von Windows ausgeführt wird sondern erst wenn der User es möchte.


Flare
Willy Scheibel
  Mit Zitat antworten Zitat
Benutzerbild von Martin K
Martin K

Registriert seit: 20. Okt 2005
919 Beiträge
 
Turbo Delphi für Win32
 
#19

Re: Programmstart durch Autostart - kann man das herausfinde

  Alt 16. Sep 2006, 13:46
Hi,

ersetze mal:
ShellExecute(Handle, nil, PChar(name), nil, PChar(workdir), 0); durch:
ShellExecute(Handle, 'open', PChar(name), nil, PChar(workdir), SW_ShowNormal); das ist der normale ShellExecute-Aufruf:
ShellExecute(Handle, 'open', PChar(Dateiname), PChar(Parameter), PChar(Arbeitsverzeichnis), SW_ShowNormal);
Mit den Menschen ist es wie mit Computern -
es gibt Nullen und Einsen.
  Mit Zitat antworten Zitat
Flare

Registriert seit: 26. Jan 2006
Ort: Leipzig
529 Beiträge
 
Delphi 7 Professional
 
#20

Re: Programmstart durch Autostart - kann man das herausfinde

  Alt 16. Sep 2006, 13:54
Ich würde ja jetzt gerne sagen, dass es geklappt hat, aber durch diese beiden Änderungen hat sich gar nix geändert.
Das war es also auch nicht.

Vielleicht könnte ja mal jemand das bei sich probieren?

Folgende Programme wollen sich nicht per meinem Programm starten:

MSN 2
MSN 7.5
ICQ Lite 5.1
Quick Time
MSN Plus 3


Flare
Willy Scheibel
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 3     12 3      


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 03:23 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