AGB  ·  Datenschutz  ·  Impressum  







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

Probleme mit Indy und Vista

Ein Thema von cokotech2 · begonnen am 15. Jun 2008 · letzter Beitrag vom 15. Jun 2008
Antwort Antwort
cokotech2

Registriert seit: 19. Nov 2006
15 Beiträge
 
#1

Probleme mit Indy und Vista

  Alt 15. Jun 2008, 13:22
Hallo!

Ich habe ein blödes Problem. Ich benutze Delphi2006 und Indy um in meinem Programm ein OnlineUpdate anzubieten.
Leider scheitert das ganze unter Vista wegen der UAC. Das Programm kann anscheinend den Datenstrom nicht öffnen. Witziger Weise scheint das abspeichern der eigenen ConfigDatei zu funktionieren.
Entweder das Propgramm steigt ganz aus "... funktioniert nicht mehr" oder er meldet tatsächlich, das er keine Rechte hat die Datei zu schreiben.
Umgehen kann man das ganze indem man beim Programm unter Kompatiblität sagt, dass es mit Administratorenrechten ausgeführt werden soll, aber dazu eine Anleitung in 10 Sprachen zu schreiben, die dann auch noch gelesen wird ist recht komplex.
Hat jemand eine geniale Idee? (Vista deinstallieren ist zwar das Beste aber keine Option )


Delphi-Quellcode:
Procedure Programmupdate;
var geladen : Boolean;
    responseStream: TFileStream;
    i : integer;
    size : Integer;
    result: integer;
    BEGIN

form1.memo1.Color:=clwindow;
form1.memo1.lines.add(UTF8Decode(AnsiToUTF8(sprachen[sprache].ausg63)));
form1.Repaint;
i:=0;
repeat
inc(i);
form1.memo1.lines.add(InttoStr(i)+UTF8Decode(AnsiToUTF8(sprachen[sprache].ausg64)));
form1.Repaint;
geladen:=true;
responseStream := TFileStream.Create('gildenidentupdate.exe', fmCreate);
try
form1.IdHTTP1.Get(UTF8toAnsi(ProgrammDownloadPfad), responseStream);
except on e:Exception do
BEGIN
application.ShowException(E);
geladen:=false;
END;
end;
responseStream.free;
form1.repaint;
assign (daten, 'gildenidentupdate.exe');
Reset(Daten);
{$I+}
result:=IOResult;
size:=FileSize(Daten);
CloseFile (Daten);
{$I-}
Until ((geladen) AND (size>0) AND (Result=0)) OR (i=10);


If (geladen) AND (size>0) AND (Result=0) then
BEGIN
form1.memo1.lines.add(UTF8Decode(AnsiToUTF8(sprachen[sprache].ausg65)));
updatestart:=true;
form1.Close;
END ELSE
BEGIN
form1.memo1.clear;
form1.memo1.lines.add(UTF8Decode(AnsiToUTF8(sprachen[sprache].ausg66)));
WideShowMessage (UTF8Decode(AnsiToUTF8(sprachen[sprache].ausg67)));
END;

END;
  Mit Zitat antworten Zitat
Benutzerbild von Die Muhkuh
Die Muhkuh

Registriert seit: 21. Aug 2003
7.332 Beiträge
 
Delphi 2009 Professional
 
#2

Re: Probleme mit Indy und Vista

  Alt 15. Jun 2008, 13:24
Entweder da hin laden, wo Du schreiben kannst (Benutzerverzeichnis) oder eben ein Manifest bei packen, was automatisch Admin-Rechte anfordert (hier entfällt das Häkchen setzen, die UAC meldet sich automatisch beim Programmstart)
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.171 Beiträge
 
Delphi 10.4 Sydney
 
#3

Re: Probleme mit Indy und Vista

  Alt 15. Jun 2008, 13:27
Und bitte mit absoluten Pfadangaben. Bei relativen Dateiangaben ohne Pfad ist es immer abhängig vom aktuellen Pfad des Prozesses wohin die Datei geschrieben wird.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
cokotech2

Registriert seit: 19. Nov 2006
15 Beiträge
 
#4

Re: Probleme mit Indy und Vista

  Alt 15. Jun 2008, 18:47
Oh man bin ich Stulle.
Auf die Idee hätte ich auch selber kommen können!
Das mit dem Manifest ist zwar ne gute Idee, würde aber nerven weil das Ding ja dann jedes Mal fragt, auch wenn keine neue Version vorliegt.
Ich google mal nach der richtigen Variable für die Eigenen Dateien und dann probier ich das mal.

Danke für den schnellen Tipp!!


Gruß Sven!
  Mit Zitat antworten Zitat
Benutzerbild von Phoenix
Phoenix
(Moderator)

Registriert seit: 25. Jun 2002
Ort: Hausach
7.611 Beiträge
 
#5

Re: Probleme mit Indy und Vista

  Alt 15. Jun 2008, 19:12
Für Vista kannst Du folgendes machen:
Du lädst zusammen mit dem Update Deines Programmes noch einen kleinen 'Updater' herunter. Dieser hat ein Manifest, das Admin-Rechte beantragt.

Zum Austauschen der Exe musst Du eh das Programm beenden, und dann kannst Du genausogut den Updater starten, der dann mit Adminrechten das Update durchführt. So brauchst Du die UAC wirklich nur, um kurz ins Programmverzeichnis zu schreiben. Die aktualisierte Version startet dann wieder mit normalen Nutzerrechten.
Sebastian Gingter
Phoenix - 不死鳥, Microsoft MVP, Rettungshundeführer
Über mich: Sebastian Gingter @ Thinktecture Mein Blog: https://gingter.org
  Mit Zitat antworten Zitat
Namenloser

Registriert seit: 7. Jun 2006
Ort: Karlsruhe
3.724 Beiträge
 
FreePascal / Lazarus
 
#6

Re: Probleme mit Indy und Vista

  Alt 15. Jun 2008, 19:21
Mal was anderes: wa swillst du mit dem andauernden UTF8Decode(AnsiToUTF8()) bezwecken? Du enkodierst es erst und dann dekodierst du es wieder oO. Und du solltest deinen Code übersichtlicher einrücken.
  Mit Zitat antworten Zitat
cokotech2

Registriert seit: 19. Nov 2006
15 Beiträge
 
#7

Re: Probleme mit Indy und Vista

  Alt 15. Jun 2008, 19:34
Hallo!

Ja das mit dem Einrücken und so... bin Elektriker.... mache das nur so zum Hobby.

Das mit den Decodes ist im Prinzip schon richtig. Die Variablen (verschiedene Ausgaben für verschiedene Sprachen) werden direkt im Quellcode zugewiesen demzufolge glaube ich ANSI... Die konvertiere ich zu UTF8. Das Form und alle Buttons etc. sind Unicode Felder und deshalb muss ich den UTF8 String in einen Unicode Wide-String konvertieren... es sei ich mache einen Denkfehler!


Gruß Sven!
  Mit Zitat antworten Zitat
Antwort Antwort


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