![]() |
Delphi-Version: 7
*.exe datei aus Delphi heraus umbenennen
Hallo hänge da an einem kleinen Problem und zwar möchste ich nach einer Art Update diverse Dateien umbenennen(damit sie besser zum Projektnamen passen) darunter auch eine *.exe.
Die Textdateien etc sind kein Problem, jedoch versagt die "Routine" bei allen Arten von *.exe Dateien, jetzt ist meine Frage kann man das irgendwie umgehen ? Hier mal der Codeschnipsel zum umbenennen der Datei
Delphi-Quellcode:
Vielen Dank für eure Hilfe
procedure TForm1.Button2Click(Sender: TObject);
var Dir: String; myExePath : String; myApplication : String; begin myExePath := ExtractFilePath(Application.ExeName); myApplication := myExePath + 'Projekt.exe'; if SelectDirectory('Bitte das Projekt XXXXXX Verzeichnis auswählen', '', Dir) then begin RenameFile(dir+'\Daten\log.txt', dir+'\Daten\log.old'); RenameFile(dir+'\projekt.exe', dir+'\projektV1.exe'); end; end; |
AW: *.exe datei aus Delphi heraus umbenennen
Und wenn Du statt RenameFile einmal so etwas benutzt, was kommt dabei als Rückgabewert?
Delphi-Quellcode:
function MyRenameFile(const OldName, NewName: string): DWORD;
begin if MoveFile(PChar(OldName), PChar(NewName)) then Result := 0 else Result := GetLastError; end; |
AW: *.exe datei aus Delphi heraus umbenennen
Zitat:
|
AW: *.exe datei aus Delphi heraus umbenennen
Hast du denn vorher Adminrechte angefordert? Ohne wirst du kaum in dem Verzeichnis eines Programms etwas ändern können. (Eine sachgerechte PC-Konfiguration vorausgesetzt.)
|
AW: *.exe datei aus Delphi heraus umbenennen
@Jaenicke
Ich geh mal davon aus, daß das hier nicht notwendig ist, es scheint sich nicht um das Programme-Verzeichnis zu handeln: Zitat:
K-H |
AW: *.exe datei aus Delphi heraus umbenennen
@DeddyH
Vielen Dank, werde das morgen mal antesten und dann bescheid geben. @ Luckie Es manifestiert sich so das alle Dateien mit außnahme der Exedatei umbenannt werden. @jaenicke Darf ich fragen wie du das expliziet meinst ? Aber vielleicht hilft dir das weiter, also unter Windows war ich zwecks Testzwecken diesbezüglich als Admin angemeldet. Aber da es sich nicht um einen geschützten Ordner handelt sollte es doch auch ohne gehen ? @p80286 also der Ordner war/ist d:\Programme\Stanze OS liegt auf c: |
AW: *.exe datei aus Delphi heraus umbenennen
Es fehlt mal wieder eine gescheite Fehlerbehandlung. Was sagt GetLastError, wen Rename False zurückgibt?
|
AW: *.exe datei aus Delphi heraus umbenennen
Zitat:
|
AW: *.exe datei aus Delphi heraus umbenennen
Ja du, aber wenn er es schon gemacht hätte, dann hätte er schon entscheidenden Hinweise bekommen können und uns diese auch gleich mitteilen können in seinem ersten Beitrag.
|
AW: *.exe datei aus Delphi heraus umbenennen
Zitat:
|
AW: *.exe datei aus Delphi heraus umbenennen
Hallo und erstmal sorry für die Verspätung, aber leider habe ich im Moment zuhause kein Delphi, kann dafür aber nur zuhause ins Internet. Hoffe das das nächste Woche wieder erledigt ist und dann alle rund läuft.
Als Rückgabewert von MyRenameFile bekomme ich eine 5. Denke bzw bin ich mir sicher das es an den Adminrechten liegt, habe da heute nochmals was getestet und wenn ich die compilierte Datei (unter Windows 7) mit Rechtsklick-->ausführen als Administrator ausführe dann benennt er mir auch die exe um. So jetzt muss ich mal schauen wie ich das hinbekomme das das Programm die Adminrechte "beantragt" natürlich mit der Kentniss des Benutzers, gibt es da unterschiede im Bezug auf die verschiedenen Windowsversionen ? Danke für eure Hilfe |
AW: *.exe datei aus Delphi heraus umbenennen
|
AW: *.exe datei aus Delphi heraus umbenennen
Bezüglich des Starts mit erhöhten Rechten .... ob das < Vista auch funktioniert weiß ich nicht ...
Delphi-Quellcode:
shellexecute(handle,'RunAs','C:\temp\DeinProgramm.exe','','',sw_Show);
Application.Terminate; |
AW: *.exe datei aus Delphi heraus umbenennen
Zitat:
Zum einen gehören Parameterdateien,Tempdateien usw NICHT in den "Programme"-Ordner!! Entweder Du hällst Dich an die Vorgaben von Microsoft, Dann landen die Daten irgendwo unter C:\Benutzer oder Du machst Dein eigenes Ding "C:\MeinSuperprogramm". Im zweiten Fall kannst Du Zugriffsrechte vergeben wie Du lustig bist und kommst niemanden in die Quere. Nachteil ist, das normal gestrickte Programme nicht damit rechnen, daß es jemanden gibt der sich ausserhalb der von MS vorgegebenen Pfade bewegt. Zum zweiten hat der eingeschränkte Zugriff auf C:\Programme mit dem Adminitrator eigentlich nichts zu tun, der Administrator hat bei MS nur das Recht sich jedes Recht zu holen. Was Du benötigst, ist das Recht Dateien umzubenennen. Das kann jeder Benutzer erhalten, wenn man will. Aber bevor Du solche Änderungen vornimmst, solltest Du Dich fragen, ob das was Du vorhast auch wirklich so sinnvoll ist. Gruß K-H |
AW: *.exe datei aus Delphi heraus umbenennen
Es kann aber auch schlicht sein, dass die Programme gerade laufen, dann ist ein Umbenennen auch nicht möglich (selber Fehlercode IIRC).
|
AW: *.exe datei aus Delphi heraus umbenennen
Ne habs ja getestet Starten per Rechtsklick -> Als Admin ausführen und es klappt, starten per Doppelklick das umbenennen der exe klappt nicht.
Desweietern handelt es sich nicht um Parameterdateien, Tempdateien oder sonstiges. Der Sinn ist, in ein bestehendes Projekt/Programm (bereits installiert) werden einige bearbeitete Grafiken eingefügt und im gleichen Schritt soll die Startdatei für das Programm umbenannt werden damit ersichtlich ist das die neuen Grafiken vorliegen, die Änderungen sind zum teil so winzig das sie beim betrachten nicht direkt ins Auge fallen.
Delphi-Quellcode:
Muss ich dann auch morgen mal antesten.
shellexecute(handle,'RunAs','C:\temp\DeinProgramm.exe','','',sw_Show);
Application.Terminate; Danke |
AW: *.exe datei aus Delphi heraus umbenennen
Da wird sich der Anwender aber freuen, wenn bei ihm keine Verknüpfungen mehr funktionieren. Und ich als Admin würde den Programmierer in den Pop treten, wenn ich die Verknüfungen auf allen Rechnern wieder in Ordnung bringen dürfte.
|
AW: *.exe datei aus Delphi heraus umbenennen
Jo, diese DOS-Mentalität ist nicht auszurotten.
Man muß Windows nicht unbedingt lieben und alles gut finden was dazu gehört, aber ein wenig an die Spielregeln halten ist meist kein Fehler. Gruß K-H |
AW: *.exe datei aus Delphi heraus umbenennen
Der User weiß nicht welche Version installiert ist?
Da frage ich mich, wozu es z.B. die Versions-Ressource gibt. Außerdem kann diese Verzeichnis doch nur absichtlich verändert werden (wenn man die Rechte gewährt), womit man dann eigentlich auch weiß, was man grade installiert/updated. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:27 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz