AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Externes Programm starten

Ein Thema von sebjensen · begonnen am 30. Jan 2007 · letzter Beitrag vom 3. Feb 2007
Antwort Antwort
Seite 3 von 4     123 4      
sebjensen

Registriert seit: 8. Dez 2005
Ort: Kiel
62 Beiträge
 
#21

Re: Externes Programm starten

  Alt 31. Jan 2007, 12:01
Also ich habe es noch weiter probiert, steige da aber nicht durch und habe es leider abbrechen müssen. Kann mir von euch Profis vielleicht jemand helfen...
  Mit Zitat antworten Zitat
sebjensen

Registriert seit: 8. Dez 2005
Ort: Kiel
62 Beiträge
 
#22

Re: Externes Programm starten

  Alt 1. Feb 2007, 06:37
Wirklich keiner der sich damit auskennt und mir helfen könnte? Schade, mein Programm ist im Kopf schon fertig und es fehlt nur noch die Umsetzung...
  Mit Zitat antworten Zitat
JonnyGuitar

Registriert seit: 4. Jun 2004
233 Beiträge
 
#23

Re: Externes Programm starten

  Alt 1. Feb 2007, 08:58
servus,

lass mal bei openkeyreadonly den ersten backslash weg, der ist da fehl am platze.
ausserdem müsste da noch ein if not hin.

Delphi-Quellcode:
if not reg.OpenKeyReadOnly('Software\Microsoft\Office') then
begin
  key:='';
  reg.CloseKey;
end

mfg Jonny
the only thing to fear is runnin' out of beer
  Mit Zitat antworten Zitat
Benutzerbild von sirius
sirius

Registriert seit: 3. Jan 2007
Ort: Dresden
3.443 Beiträge
 
Delphi 7 Enterprise
 
#24

Re: Externes Programm starten

  Alt 1. Feb 2007, 09:06
Ich habe die Funktion so umgeschrieben, wie es in meiner Registry aussieht.
Delphi-Quellcode:
function LookUpRegistry:string;
{Suchen, wo MS Office Word liegt}
var reg :TRegistry;
    s :TStrings;
    p,i :integer;
    key,value:string;
    wordpfad : string;
begin
  reg := TRegistry.Create(KEY_READ);
  s := TStringlist.Create;
  reg.rootkey := HKEY_LOCAL_MACHINE;
  key := '\Software\Microsoft\Office';
  wordpfad := '';

  if reg.OpenKeyReadOnly(key) then begin
    reg.GetKeyNames(s);
    if s.count>0 then key:=key +'\'+ s.Strings[0]+'\Word\InstallRoot';
    // Ich habe zur Probe s.strings[0] genommen
    // Du müsstest vorher die Stringlist durchsuchen, an welcher Stelle die höchste Versionsnummer steht

    reg.CloseKey;
    if reg.OpenKeyReadOnly(key) then begin
      value:=reg.ReadString('Path');
      reg.CloseKey;
      value:=value+'\winword.exe';
      if fileexists(value) then wordpfad:=value;
    end;
    result:=wordpfad;
  end;
  
  s.free;
  reg.free;

end;
Dieser Beitrag ist für Jugendliche unter 18 Jahren nicht geeignet.
  Mit Zitat antworten Zitat
JonnyGuitar

Registriert seit: 4. Jun 2004
233 Beiträge
 
#25

Re: Externes Programm starten

  Alt 1. Feb 2007, 09:34
key := '\Software\Microsoft\Office'; ist falsch, es muss
key := 'Software\Microsoft\Office'; heissen.


mfg Jonny
the only thing to fear is runnin' out of beer
  Mit Zitat antworten Zitat
Benutzerbild von sirius
sirius

Registriert seit: 3. Jan 2007
Ort: Dresden
3.443 Beiträge
 
Delphi 7 Enterprise
 
#26

Re: Externes Programm starten

  Alt 1. Feb 2007, 09:47
Zitat von JonnyGuitar:
key := '\Software\Microsoft\Office'; ist falsch, es muss
key := 'Software\Microsoft\Office'; heissen.
Bei mir funktioniert beides.
Dieser Beitrag ist für Jugendliche unter 18 Jahren nicht geeignet.
  Mit Zitat antworten Zitat
sebjensen

Registriert seit: 8. Dez 2005
Ort: Kiel
62 Beiträge
 
#27

Re: Externes Programm starten

  Alt 2. Feb 2007, 08:55
Super. Schon einmal vielen Dank. Das klappt schon ganz gut. Nun habe ich aber noch einige Fragen...


(1) Wie laufe ich denn die Schlüssel durch und suche nach der höchsten Versionsnummer? Das sind doch Strings, wie kann ich die denn zerlegen?

(2) Muss ich für jedes Office Programm so eine Funktion schreiben, oder kann ich einfach einen Parameter mit geben. Und dann sucht die Funktion nach '\Software\Microsoft\Office\xxx\11.0\....'?


Vielen Dank schonmal für die Antworten...
  Mit Zitat antworten Zitat
Benutzerbild von sirius
sirius

Registriert seit: 3. Jan 2007
Ort: Dresden
3.443 Beiträge
 
Delphi 7 Enterprise
 
#28

Re: Externes Programm starten

  Alt 2. Feb 2007, 09:09
zu (1) Na du kannst mit TryStrToFloat die Strings in Zahlen umwandeln und dann die Größte nehmen.

zu (2) Du meinst wohl eher '\Software\Microsoft\Office\11.0\xxx....'?
Natürlich geht auch. Ganz normale Parameterübergabe an Funktionen und an entsprechender Stelle dem String anfügen (z.B. statt Word)
Dieser Beitrag ist für Jugendliche unter 18 Jahren nicht geeignet.
  Mit Zitat antworten Zitat
sebjensen

Registriert seit: 8. Dez 2005
Ort: Kiel
62 Beiträge
 
#29

Re: Externes Programm starten

  Alt 2. Feb 2007, 09:20
Hallo.

Irgendwie bekomme ich das nicht so hingebastelt, dass es läuft. Könntest du mir da vielleicht nochmal unter die Arme greifen?
  Mit Zitat antworten Zitat
sebjensen

Registriert seit: 8. Dez 2005
Ort: Kiel
62 Beiträge
 
#30

Re: Externes Programm starten

  Alt 2. Feb 2007, 09:42
Delphi-Quellcode:
function LookUpRegistryForWord : string;

var reg : TRegistry;
    s : TStrings;
    p,i : integer;
    help : integer;
    v1, v2 : real;
    key,value : string;
    wordpfad : string;

begin
  reg := TRegistry.Create(KEY_READ);
  s := TStringlist.Create;
  reg.rootkey := HKEY_LOCAL_MACHINE;
  key := '\Software\Microsoft\Office';
  wordpfad := '';
  help := 0;

  if reg.OpenKeyReadOnly(key) then begin
    reg.GetKeyNames(s);

    for i := 0 to s.Count-2 do
     begin
      TRY
       v1 := StrToFloat(s.Strings[i]);
       v2 := StrToFloat(s.Strings[i+1]);

       if (v1 < v2) then help := i+1;
       if (v1 > v2) then help := i;
      EXCEPT
       showMessage('Es ist leider ein Fehler aufgetreten');
      end;
     end;

    key := key +'\'+ s.Strings[help]+'\Word\InstallRoot';

    reg.CloseKey;
    if reg.OpenKeyReadOnly(key) then begin
      value:=reg.ReadString('Path');
      reg.CloseKey;
      value := value + 'winword.exe';
      if fileexists(value) then wordpfad := value;
    end;
    result:=wordpfad;
  end;
  
  s.free;
  reg.free;

end;
Leider funktioniert das so nicht. Ich erhalte eine Exception, dass 10.0 keine gültige Gleitkommazahl ist... wieso?
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 3 von 4     123 4      


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:25 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