Entwickler-Ecke
Dateizugriff - REG_SZ Datei lesen dann .exe starten
kulka1 - Fr 29.05.09 15:17
Titel: REG_SZ Datei lesen dann .exe starten
Hallo!!
ich schreibe mal was ich vorhabe zu "programmieren":
also ich möchte wenn ich auf ein Button klicke das die Fifa.exe startet!
Den Code dafür ist mir bekannt. Nun möchte ich aber das auf anderen PC's auch die Fifa.exe ausgeführt wird auch wenn die Datei nicht im z.b. C:\Programme\EA SPORTS\FIFA 09.
Ein Freund von mir hat mir gesagt das ich n Registry schlüssel suchen muss, denn hab ich dann auch mit START -> Ausführen "regedit" gefunden.
Der lautet REG_SZ, wenn ich mich nicht täusche ;)
Mit dem Schlüssel soll es irgendwie möglich sein das man auf jedem PC, auf dem Fifa 09 installiert ist und durch drücken des Buttons das Spiel gestartet wird!
Ich hoffe ich habe alles ordnungsgemäß erklärt =), und so das es jeder verstehen kann :P!^^
Bin noch nicht so ein Experte, aber lerne ja dazu ;)
Hoffentlich könnt ihr mir weiterhelfen =)
MfG kulka1
FinnO - Fr 29.05.09 15:34
du hast nur noch keine Frage gestellt...
thepaine91 - Fr 29.05.09 15:48
Doch hat er. Nur ist sie schwer zu erkennen.
Frage: Gibt es einen Registry Key in dem standartmäßig der Fifa 09 ausführungspfad steht?
kulka1 - Fr 29.05.09 15:49
oh achso, ich dachte das wäre klar gewesen, also:
ich möchte einen code schreiben mit dem es möglich ist, das die fifa09.exe auch auf anderen pc's gestartet wird per Button Click, auch wenn es nicht im standard ordner (C:\Programme\EA SPORTS\FIFA 09) ist!
und mir wurde gesagt das es was mit der registry zutun hat!
thepaine91 - Fr 29.05.09 16:02
Sowas habe ich mal gemacht mit Wow.
Habe abegfragt ob der pfad C:\Programme\... ist wenn nicht habe ich den Datenträger nach der .exe durchsucht.
Aber auch das wird nicht die beste Lösung sein denke ich.
Mir wäre kein Registry schlüssel bekannt der dir dabei Helfen kann :nixweiss:
kulka1 - Fr 29.05.09 16:04
mhm ne, also mit etwas suchen sollte es nicht sein ;)
halt nur das wenn ich auf button1 zb klicke das dann aufjedem pc wo fifa installiert ist das auch gestartet wird ;)
bin mir zu 100 % sicher das sowas geht, aber ich selbst weiß halb nicht wie ich das mit der registry oder so kombinieren muss ;)
Marc. - Fr 29.05.09 16:06
Einen Registry-Schlüssel kannst Du z.B. so auslesen:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23:
| uses registry;
procedure GetInfo(Dest: String); const KEY = 'Control Panel\Desktop'; W_NAME = 'Wallpaper'; begin with TRegistry.Create do try RootKey := HKEY_CURRENT_USER;
if OpenKey(KEY,False) then with TStringList.Create do try Add(W_NAME + ': ' + ReadString(W_NAME)); finally Free; end;
finally Free; end; end; |
Hast du den Pfad zur Exe ausgelesen, kannst Du diese anschließend mit
Shellexecute starten. ;)
Grüße,
Marc
jaenicke - Fr 29.05.09 16:07
Der Zugriff auf die Registry ist nicht weiter schwer, das geht mit TRegistry und in deinem Fall z.B. OpenKey, ReadString wie du oben siehst.
Du hast allerdings weder den Schlüssel noch den Namen des Wertes in der Registry genannt. REG_SZ ist nur der Typ des Wertes...
thepaine91 - Fr 29.05.09 16:11
Kulka1 ich meinte das auch so das du dann Fifa09 startest ich wüsste nur keinen anderen weg als mit einer Sucher nach fifa...exe den Pfad herauszufinden um das Programm zu starten. ^^ Und standartmäßig erstmal den c:\PROGRAMME überprüfen.
PS:
Als nächstes würde ich das nicht mit Delphi machen sondern mit z.B. c# da funktioniert es dann auch 100% auf Xp, vista, 7, 2k. (.net) da es ja auf jedem Rechner funktionieren soll. Und das könnte mit Delphi kompatiblitäts Probleme geben.
jaenicke - Fr 29.05.09 16:13
thepaine91 hat folgendes geschrieben : |
| Und das könnte mit Delphi kompatiblitäts Probleme geben. |
Wie kommst du auf die Idee? Meine Delphiprogramme laufen zumeist von Windows 95 bis Windows 7 überall. C# ab Windows 2000 und mit neueren .NET Versionen erst ab XP...
Suchen der Exe ist ja wie gesagt wurde nicht notwendig, da (wie im Übrigen auch bei WoW) der Pfad in der Registry steht.
thepaine91 - Fr 29.05.09 16:18
jaenicke naja das finde ich erstaunlich das sie überall laufen. Das war bei mir noch nie so aber okay.
Und bin mir sicher das 2k auch .net umgebung verfügbar hat.
Egal ist ja nicht das Thema. Also vergessen wir das.
Na siehst du der RegistryKey war mir nicht bekannt sagte ich ja auch bereits.
Konnte im Thread nicht erkennen das es diesen gibt. Und dann natürlich über dir Registry.
kulka1 - Fr 29.05.09 16:18
wie kan ich denn den schlüssel von der REG_SZ herausfinden oder den namen des wertes`?
jaenicke - Fr 29.05.09 16:21
Das steht direkt dabei, wenn du im Registryeditor, den du angesprochen hast, den Wert gefunden hast.
Der Schlüssel wird vermutlich irgendwo unter HKEY_LOCAL_MACHINE liegen und dort ca. Software\[Firma]\Fifa\... heißen. Und der Name steht direkt neben dem Wert.
// EDIT:
thepaine91 hat folgendes geschrieben : |
| jaenicke naja das finde ich erstaunlich das sie überall laufen. Das war bei mir noch nie so |
Man muss natürlich schauen was man benutzt, aber normale Programme laufen auch unter 95.
Ab Delphi 2009 mit Unicode geht es natürlich erst ab Windows 2000, weil Win 9x das schlicht nicht kannte.
thepaine91 hat folgendes geschrieben : |
| Und bin mir sicher das 2k auch .net umgebung verfügbar hat. |
Aber nicht 3.5, das geht erst ab XP...
Siehe Download:
http://www.microsoft.com/downloads/details.aspx?FamilyId=333325FD-AE52-4E35-B531-508D977D32A6&displaylang=en
kulka1 - Fr 29.05.09 16:29
also ich habe im registyeditor gesucht, der wert war hier: C:\Programme\EA SPORTS\FIFA 09 und dann hab ich ma kopiert:
HKEY_CLASSES_ROOT\TypeLib\{54CB0D09-E60F-41B1-B8AF-C7F6652621EC}\1.0\HELPDIR
was ist jetzt genau der schlüssel, sorry für die doofe frage :P, aber man lernt ja nur raus ;) habe mit der registry vorher noch nie was gemacht ;)
jaenicke - Fr 29.05.09 16:33
Damit hast du schon den Wert für RootDir (HKEY_CLASSES_ROOT) und OpenKey ('TypeLib\{54CB0D09-E60F-41B1-B8AF-C7F6652621EC}\1.0\HELPDIR'), falls der Wert selbst keinen Namen hat, kannst du dann ReadString('') benutzen.
Diese Stelle in der Registry ist aber eigentlich nicht die, die ich erwartet hätte. Ich hätte erwartet:
HKEY_LOCAL_MACHINE\Software\EA SPORTS\FIFA 09\...
Oder sowas.
kulka1 - Fr 29.05.09 16:37
also das kann natürlich auch sein... ich habe einfach bei suchen "fifa" eingegeben!
jaenicke hat folgendes geschrieben : |
Diese Stelle in der Registry ist aber eigentlich nicht die, die ich erwartet hätte. Ich hätte erwartet:
HKEY_LOCAL_MACHINE\Software\EA SPORTS\FIFA 09\...
Oder sowas. |
habe da auch nochmal geguckt ;), dort weiß ich dann nur nicht welcher name das ist, habe da namen wie z.b. Display name wo der wert "FIFA 09" ist und dann noch ProductName wo der name "fifa09" ist.
nur was ist jetzt von alledem die richtige?
Marc. - Fr 29.05.09 16:42
Schau doch einmal OHNE die Suche unter HKEY_LOCAL_MACHINE -> Software -> EA SPORTS (?) -> Fifa (?)...
Das Programm
RegMon [
http://technet.microsoft.com/en-us/sysinternals/bb896652.aspx] von Sysinternals könnte dir bei der Suche auch helfen. Aber ich denke eigentlich nicht, dass der Eintrag so versteckt sein wird. ;)
Ist denn nirgendswo der Pfad eingetragen?
kulka1 - Fr 29.05.09 16:48
habe mal ein bild hochgeladen
jaenicke - Fr 29.05.09 16:50
Ja, da siehst du es doch. RootKey ist HKEY_LOCAL_MACHINE, der Schlüssel, der geöffnet werden muss, 'Software\EA Sports\FIFA 09' und der Wert 'Install Dir'.
Marc. - Fr 29.05.09 16:50
Da steht's doch:
Install Dir
Edit: Ausfühliche Infos hat
jaenicke bereits einen Post weiter oben gepostet. ;)
kulka1 - Fr 29.05.09 16:54
achso installdir ist das... wie gesagt hatte keine ahnung von den ganzen zeugs ;), das ist bisher nie mein gebiet gewesen ;)
und hier mit soll ich das jetzt bei delphi einbinden?
oder kurz ne andere frage, wo mus sich den schlüssel jetzt hinschreiben?
Marc. hat folgendes geschrieben : |
Einen Registry-Schlüssel kannst Du z.B. so auslesen:
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23:
| uses registry;
procedure GetInfo(Dest: String); const KEY = 'Control Panel\Desktop'; W_NAME = 'Wallpaper'; begin with TRegistry.Create do try RootKey := HKEY_CURRENT_USER;
if OpenKey(KEY,False) then with TStringList.Create do try Add(W_NAME + ': ' + ReadString(W_NAME)); finally Free; end;
finally Free; end; end; |
Hast du den Pfad zur Exe ausgelesen, kannst Du diese anschließend mit Shellexecute starten. ;)
Grüße,
Marc |
in zeile 10?
jaenicke - Fr 29.05.09 16:56
Was Schlüssel und öffnen auf Englisch heißt, weißt du aber schon, oder? Wie wärs mit Key und open? Und um den zu öffnen eben OpenKey, also Zeile 12.
Und dass in Zeile 10 HKEY_LOCAL_MACHINE gehört, habe ich ja schon geschrieben.
thepaine91 - Fr 29.05.09 17:12
uses
Delphi-Quelltext
1:
| Windows, registry, usw....; |
buttoncick
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9:
| var regist : Tregistry; begin regist := Tregistry.create; regist.rootkey := hKEY_Local_machine; regist.openkey('Key', false); shellexecute(application.handle, 'open', regist.readstring('install dir', nil, nil, SW_show); regist.closekey; regist.Free; end; |
kulka1 - Fr 29.05.09 17:15
danke das hat mir noch gefehlt =)... aber wenn ich starten will gibt er mir ne fehlermeldung bei shellexecute an, hab das jetzt so kopiert von dir (Undefinierter Bezeichner)
thepaine91 hat folgendes geschrieben : |
uses
Delphi-Quelltext 1:
| Windows, registry, usw....; |
buttoncick
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9:
| var regist : Tregistry; begin regist := Tregistry.create; regist.rootkey := hKEY_Local_machine; regist.openkey('Key', false); shellexecute(application.handle, 'open', regist.readstring('install dir', nil, nil, SW_show); regist.closekey; regist.Free; end; | |
jaenicke - Fr 29.05.09 17:16
thepaine91 hat folgendes geschrieben : |
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9:
| var regist : Tregistry; begin regist := Tregistry.create; regist.rootkey := hKEY_Local_machine; regist.openkey('Key', false); shellexecute(application.handle, 'open', regist.readstring('install dir', nil, nil, SW_show); regist.closekey; regist.Free; end; | |
- Da fehlt komplett die Fehlerbehandlung
- Der Schlüssel ist nicht der oben angegebene
- ReadString gibt einen String zurück, ShellExecute erwartet aber einen PChar
- Da fehlt die Endklammer von ReadString
kulka1 hat folgendes geschrieben : |
| danke das hat mir noch gefehlt =)... aber wenn ich starten will gibt er mir ne fehlermeldung bei shellexecute an, hab das jetzt so kopiert von dir (Undefinierter Bezeichner) |
Da fehlt noch ShellAPI unter uses.
kulka1 - Fr 29.05.09 17:25
bei KEY habe ich jetzt Software\EA Sports\FIFA 09 hingeschrieben, also:
regist.openkey('Software\EA Sports\FIFA 09', false);
deinen punkt: ReadString gibt einen String zurück, ShellExecute erwartet aber einen PChar verstehe ich leider nicht ganz, was muss ich da denn verändern? und muss die klammer innen durch ein komme ersetzt werden oder muss da noch eine klammer dazu?
:D
thepaine91 - Fr 29.05.09 17:28
Einmal kein Kommentar von dir werd ich nie erleben.
Ich hab das kurz so abgetippt und ein bisschen überlegen für den Endnutzer schadet nicht das dort keine Fehlerbehandlung ist *wirst du kaum glauben* ist mir auch bewusst.
Und den Schlüssel kann er genauso selbst einsetzen.
Die klammer hätte ihm der compiler gesagt.
Pchar() ist das einzige was er vielleicht wirklich hätte nicht verstehen können. -.-
einfach
Delphi-Quelltext
1:
| shellexecute(application.handle, 'open', Pchar(regist.readstring('install dir')), nil, nil, SW_show); |
kulka1 - Fr 29.05.09 17:32
super danke...es geht endlich =)... jetzt hab ich nur noch ne frage :D ;)
beim klicken auf dem button wird ja immer ein neues fenster geöffnet, kann man jetzt noch einstellen das man einmal den "pfad" angibt und der das dann immer speichert, auch wenn das programm geschlossen wird und dann wieder aufgemacht wird? ist das möglich?
jaenicke - Fr 29.05.09 17:34
Wie meinst du das? Meinst du du willst gar kein Formular erst sehen? Dann brauchst du auch gar keins erst. Oder was meinst du?
thepaine91 - Fr 29.05.09 17:36
Also ist doch unnötig da nen Pfad zu speichern dafür hast du ja den Registry eintrag. ^^
Außer du meinst es anders wenn ja nochmal genau erläutern.
jaenicke - Fr 29.05.09 17:39
Ich glaube ich habs verstanden:
Da du einen Pfad öffnest und nicht die Exe, kommt halt immer der Windows Explorer... Du musst da natürlich den Namen der Exe noch anhängen... :roll:
Und damit das mit der Registry ordentlich dasteht:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17:
| uses Registry, ShellAPI;
var Reg: TRegistry; begin Reg := TRegistry.Create; try Reg.RootKey := HKEY_LOCAL_MACHINE; if Reg.OpenKey('Software\EA Sports\FIFA 09', False) and Reg.ValueExists('Install Dir') then ShellExecute(Handle, 'open', PChar(Reg.ReadString('Install Dir') + 'xyz.exe'), nil, nil, SW_SHOWNORMAL) else ShowMessage('Spiel nicht gefunden'); finally Reg.Free; end; end; |
thepaine91 - Fr 29.05.09 17:57
1. In deinem Quellcode steht aber xyz.exe dabei wurde sie oben bereits genannt!
2. Warum unnötig Fragen ob der Wert existiert aber vielleicht liefert EAGAMES ja unterschiedliche Installations routinen aus. Und lässt ihn manchmal weg.^^ Oder noch besser ein Zufallsgenerator. XD
3. Welches Handle?
Wenn du schon so peinlich auf jede kleinigkeit achtest. -.-
kulka1 - Fr 29.05.09 17:59
muss ich das hier denn dann so lassen? und den text den du geschrieben hast, muss der dann vor diesem hier? :
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10:
| var regist : Tregistry; procedure TForm1.Button1Click(Sender: TObject); begin regist := Tregistry.create; regist.rootkey := hKEY_Local_machine; regist.openkey('Software\EA Sports\FIFA 09', false); shellexecute(application.handle, 'open', Pchar(regist.readstring('install dir')), nil, nil, SW_show); regist.closekey; regist.Free; end; |
thepaine91 - Fr 29.05.09 18:02
XD Nein.
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10:
| procedure TForm1.Button1Click(Sender: TObject); var regist : Tregistry; begin regist := Tregistry.create; regist.rootkey := hKEY_Local_machine; regist.openkey('Software\EA Sports\FIFA 09', false); shellexecute(application.handle, 'open', Pchar(regist.readstring('install dir') + Fifa) , nil, nil, SW_show); regist.closekey; regist.Free; end; |
jaenicke - Fr 29.05.09 18:03
kulka1 hat folgendes geschrieben : |
| muss ich das hier denn dann so lassen? und den text den du geschrieben hast, muss der dann vor diesem hier? |
Ähh... Dass die Quelltexte sich ähneln, siehst du aber schon, oder? :shock:
Wie wäre es, wenn du erst einmal verstehst was die machen, bevor du sie verwendest... :?
Die Quelltexte machen fast das selbe, nur einmal ohne Fehlerbehandlung usw.
Du musst bei meinem nur noch das xyz.exe durch fifa.exe ersetzen.
thepaine91 hat folgendes geschrieben : |
| 1. In deinem Quellcode steht aber xyz.exe dabei wurde sie oben bereits genannt! |
Das habe ich nicht gefunden gehabt auf die Schnelle, jetzt seh ichs auch.
thepaine91 hat folgendes geschrieben : |
| 2. Warum unnötig Fragen ob der Wert existiert aber vielleicht liefert EAGAMES ja unterschiedliche Installations routinen aus. |
Nein, aber es soll vorkommen, dass da ein Fehler auftritt und der Wert nicht da ist. Zum Beispiel passiert so etwas, wenn man ein programm einfach auf einen PC kopiert ohne es zu installieren.
thepaine91 hat folgendes geschrieben : |
| 3. Welches Handle? |
Das des Formulars? Sonst hätte ich ja Application oder so dazugeschrieben...
kulka1 - Fr 29.05.09 18:11
:D:D... also ich mache zz nur TurboPascal in der Schule im Informatikkurs, und Delphi bring ich mir sozusagen selber bei bevor wir das nächstes Schuljahr machen ;)
deswegen fällt mir das alles nicht so genau auf ;)
thepaine91 - Fr 29.05.09 18:11
Naja du denkst ein bisschen weit. ^^ Das programm wird warscheinlich eh nur auf seinem Rechner wenn überhaupt ausgeführt. ;)
Und gewöhn dich dran das mein Quelltext immer so aussieht ich schreib immer nur kurz und knapp. Damit die Leute noch was denken müssen.
Mir ging dein ständiges Klugscheißen grad einfach aufn nerv und hat mich i-wie in Wallung versetzt.
Nichts für ungut.
Und
Delphi-Quelltext
1: 2: 3:
| shellexecute(application.handle, 'open', Pchar(regist.readstring('install dir')+ 'Fifa 09.exe'), nil, nil, SW_show); |
NP wenn du Fragen hast kannst mir ne Pm schicken geb ich dir mein Icq und kannst mich direkt fragen. ^^
Dann nehm ich mir auch mehr Zeit.
jaenicke - Fr 29.05.09 18:12
Oben stand fifa.exe ohne 09. ;-)
thepaine91 - Fr 29.05.09 18:13
*@!AHRG....* *Durchdreh* :motz: *jaenicke umbring!!!!* :evil:
XD Du musst mich hassen. XD
kulka1 - Fr 29.05.09 18:16
es schaut jetzt so aus bei mir:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24:
| begin Reg := TRegistry.Create; try Reg.RootKey := HKEY_LOCAL_MACHINE; if Reg.OpenKey('Software\EA Sports\FIFA 09', False) and Reg.ValueExists('Install Dir') then ShellExecute(application.handle, 'open', PChar(Reg.ReadString('Install Dir') + 'fifa09.exe'), nil, nil, SW_SHOWNORMAL) else ShowMessage('Spiel nicht gefunden'); finally Reg.Free; end; end;
procedure TForm1.Button1Click(Sender: TObject); var regist : Tregistry; begin regist := Tregistry.create; regist.rootkey := hKEY_Local_machine; regist.openkey('Software\EA Sports\FIFA 09', false); shellexecute(application.handle, 'open', Pchar(regist.readstring('install dir') + 'fifa09.exe') , nil, nil, SW_show); regist.closekey; regist.Free; end; |
korrigiert mich bitte wennich was falsch habe -.-
und es kommt noch die fehlermeldung '.' erwartet aber ',' gefunden in zeile 12
jaenicke - Fr 29.05.09 18:19
Du kopierst echt ohne jegliches Verständnis für das was du da machst... :autsch: :autsch: :autsch:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13:
| procedure TForm1.Button1Click(Sender: TObject); begin Reg := TRegistry.Create; try Reg.RootKey := HKEY_LOCAL_MACHINE; if Reg.OpenKey('Software\EA Sports\FIFA 09', False) and Reg.ValueExists('Install Dir') then ShellExecute(application.handle, 'open', PChar(Reg.ReadString('Install Dir') + 'fifa09.exe'), nil, nil, SW_SHOWNORMAL) else ShowMessage('Spiel nicht gefunden'); finally Reg.Free; end; end; |
kulka1 - Fr 29.05.09 18:48
ey jungs ich danke euch für alles :D, aber jetzt seit mir bitte nicht böse :D
ich bin total durcheinander jetzt, ich weiß garnicht mehr was von dem allen bei delphi rein soll^^
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13:
| procedure TForm1.Button1Click(Sender: TObject); begin Reg := TRegistry.Create; try Reg.RootKey := HKEY_LOCAL_MACHINE; if Reg.OpenKey('Software\EA Sports\FIFA 09', False) and Reg.ValueExists('Install Dir') then ShellExecute(application.handle, 'open', PChar(Reg.ReadString('Install Dir') + 'fifa09.exe'), nil, nil, SW_SHOWNORMAL) else ShowMessage('Spiel nicht gefunden'); finally Reg.Free; end; end; |
wenn ich nur das "reinkopiere" dann sagt er mir das er Reg nicht kennt, habs dann auch in registry umbenannt xD, hat aber nichts gebracht weil er dann ein fehler bei ':=' gegeben hat ;)
und muss jetzt NUR das da oben rein? ich find hier nicht mehr durch... sorry aber ich bin n anfänger in sachen delphi.^^
nimmt es mir nicht übel ;), aber ihr könnt das ja alles schon ;) und ich lerne es gerade sozusagen :P.
jaenicke - Fr 29.05.09 18:51
Ja, vor dem begin fehlt noch das
Da hab ich jetzt gar nicht mehr drauf geachtet...
kulka1 hat folgendes geschrieben : |
sorry aber ich bin n anfänger in sachen delphi.^^
[..] und ich lerne es gerade sozusagen :P. |
Ersteres glaube ich, das ist klar, zweiteres habe ich so leichte Zweifel... ;-)
thepaine91 - Fr 29.05.09 19:25
wo das var hingehört hab ich doch schon vor einigen posts geschrieben :nixweiss:
Ich kann kein Delphi ich programmier erst seit gestern damit.
Ich tu immer nur so und versage stetig.
kulka1 - Fr 29.05.09 19:37
bin am verzweifeln xD, ich bin zu blöd dafür...
ich habe einfach mal n bild gemacht wie das bei mir aussieht
jakobwenzel - Fr 29.05.09 19:41
Du definierst dir die Variable Reg, nutzt aber mal Registry und mal regist....
kulka1 - Fr 29.05.09 19:42
jakobwenzel hat folgendes geschrieben : |
| Du definierst dir die Variable Reg, nutzt aber mal Registry und mal regist.... |
okay das hab ich behoben ;), und mit dem RootKey?
jaenicke - Fr 29.05.09 19:43
Also du postest Quelltext, ich sage dir, dass da noch zwei Zeilen vor dem begin fehlen. Und dann änderst du wild den ganzen Quelltext... Das muss ich jetzt nicht verstehen, oder?
Bei RootKey muss es halt auch Reg heißen.
kulka1 - Fr 29.05.09 20:22
JUHU es läuft jetzt =), habe von ganz vorne angefangen und dann ganz ruhig geschaut was ich ändern muss... das ist jetzt der richtige Code^^...
habe das noch an meinem laptop ausprobiert wo fifa auf ner anderen partition installiert ist und es lief=)
ich bedanke mich bei euch =) ... man wird sich bestimmt nochmal schreiben :D:D:D
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37:
| uses registry;
procedure GetInfo(Dest: String); const KEY = 'Software\EA Sports\FIFA 09'; W_NAME = 'Install Dir'; begin with TRegistry.Create do try RootKey := HKEY_LOCAL_MACHINE;
if OpenKey(KEY,False) then with TStringList.Create do try Add(W_NAME + ': ' + ReadString(W_NAME)); finally Free; end;
finally Free; end; end;
var regist : Tregistry; procedure TForm1.Button1Click(Sender: TObject); begin regist := Tregistry.create; regist.rootkey := hKEY_Local_machine; if regist.openkey('Software\EA Sports\FIFA 09', false) and regist.ValueExists('Install Dir') then shellexecute(application.handle, 'open', Pchar(regist.readstring('install dir') + 'FIFA09.exe'), nil, nil, SW_show) else ShowMessage('Spiel nicht gefunden'); regist.closekey; regist.Free; end; |
thepaine91 - Fr 29.05.09 22:00
Na super ;) Glückwunsch aber:
Delphi-Quelltext
1: 2: 3: 4: 5: 6:
| var regist : Tregistry; procedure TForm1.Button1Click(Sender: TObject); var regist : Tregistry; begin regist := Tregistry.create; usw... |
Und wie gesagt Angebot steht pm und ich kann dir auch msn, icq etc. geben dann hast du schnell eine Antwort ;)
Marc. - Sa 30.05.09 10:30
thepaine91 hat folgendes geschrieben : |
| Und wie gesagt Angebot steht pm und ich kann dir auch msn, icq etc. geben dann hast du schnell eine Antwort ;) |
Der Sinn des Forums liegt darin, dass auch andere User mit gleichen Problemen über bereits vorhandene Threads an eine Lösung kommen können - da ist dein Angebot, die Aufgaben via Instant Messenger zu lösen, absolut kontraproduktiv.
Zu
kulka1: Copy + Paste hat noch nie jemanden dabei geholfen, etwas zu verstehen - auch bei Dir nicht. Du kopierst sinnlos irgendwelche Quelltexte, missachtest Empfehlungen und wunderst dich am Ende darüber, dass nichts funktioniert, aber ohne dir darüber weitere Gedanken zu machen. Mein Rat an Dich: Geh noch einmal den Thread von A bis Z durch und versuche zu verstehen, was wir dir beibringen wollten. :zwinker:
kulka1 - Sa 30.05.09 11:40
@ marc... ja das hab ich jetzt auch gelernt :D, ich hatte nur mein ziel vor augen das das mit dem fifa.exe klappt :D
habe dann irgendwie nur noch kopiert :D, aber am ende hab ich dann nochmal alles von vorne gemacht und dann wirklich auch was verändert^^
und jetzt klappt es ja =)^^, danke :)
thepaine91 - Sa 30.05.09 23:59
Marc. ansichtssache
jaenicke - So 31.05.09 00:04
thepaine91 hat folgendes geschrieben : |
| Marc. ansichtssache |
Wenn du damit das mit der PN meinst: Das steht auch in den Richtlinien.
| Richtlinien [http://www.delphi-forum.de/sites.php?id=9] hat folgendes geschrieben: |
2.3 Antworten IMMER ins Forum
Es gibt eine Regel im Usenet welche auch bei uns auf den Webseiten der Entwickler-Ecke Gültigkeit hat: Wer im Forum fragt, liest auch im Forum mit, d. h. Antworten auf Fragen bitte IMMER im Forum posten.
[...]
Ebenfalls unerwünscht, da nicht sinnvoll für die Allgemeinheit, sind Antworten per E-Mail (außer man sendet diese zusätzlich). |
Und auch bei neuen Fragen macht das natürlich viel mehr Sinn, da es im Forum öffentlich mehr Leuten hilft ggf.
thepaine91 - So 31.05.09 13:55
vorher verstehen um was es geht. es geht um kleine fragen da kann ich schnell helfen und auf diese frage wollte ich ja nie via pm antworten. Daher ist es nichts schlimmes gravierende fragen nach wie vor im Forum.
mfg nic usw...
Und thema hat sich eigentlich soweit auch erledigt.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!