AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Auflösung,Frequenz,Icons wiederherstellen ?
Thema durchsuchen
Ansicht
Themen-Optionen

Auflösung,Frequenz,Icons wiederherstellen ?

Ein Thema von Vader · begonnen am 26. Dez 2005 · letzter Beitrag vom 6. Jan 2006
Antwort Antwort
Seite 1 von 3  1 23      
Vader

Registriert seit: 6. Mai 2003
804 Beiträge
 
Delphi 6 Enterprise
 
#1

Auflösung,Frequenz,Icons wiederherstellen ?

  Alt 26. Dez 2005, 18:17
hallo,

muetze1 hat einen code von ferby modifiziert " Auflösung und Frequenz ändern, Desktopicons sichern und alles dann wiederherstellen !

Delphi-Quellcode:
Uses
  ShellAPI,
  registry; // auch wenn du es nicht wolltest, nun hast doch ein wenig Registry mit drinne - aber nur lesen...

....

Var
  ScreenAlt: TPoint; // diese solltest du schon haben
  ScreenAltFrequenz : Integer; // diese kommt neu hinzu

Function ChangeScreen(AWidth, AHeight: Word; AFrequenz: Integer; Const APfad: string): Boolean;
  // modified by Muetze1
Const
  ENUM_CURRENT_SETTINGS : Cardinal = Cardinal(-1);//$ffffffff; // = -1
Var
  lpDevMode: TDeviceMode;
  saveiconherstellen: boolean;
  lRegInfo : TRegistry;
Begin
  saveiconherstellen := false;

  If ( AWidth <> 0 ) Then
  Begin
    ScreenAlt.x := Screen.Width;
    ScreenAlt.y := Screen.Height;
    ScreenAltFrequenz := 0; // diese Variable noch definieren

    If ( EnumDisplaySettings(Nil, ENUM_CURRENT_SETTINGS, lpDevMode) ) Then
    Begin
      If ( ( lpDevMode.dmFields And DM_PELSWIDTH ) > 0 ) Then
        ScreenAlt.x := lpDevMode.dmPelsWidth;
      If ( ( lpDevMode.dmFields And DM_PELSHEIGHT ) > 0 ) Then
        ScreenAlt.y := lpDevMode.dmPelsHeight;
      If ( ( lpDevMode.dmFields And DM_DISPLAYFREQUENCY ) > 0 ) Then
        ScreenAltFrequenz := lpDevMode.dmDisplayFrequency
      Else If ( Win32Platform = VER_PLATFORM_WIN32_WINDOWS ) Then // Win9x/ME
      Begin
        lRegInfo := TRegistry.Create(KEY_READ);
        lRegInfo.RootKey := HKEY_CURRENT_CONFIG;
        Try
          If lRegInfo.OpenKey('\Display\Settings', False) Then
          Begin
            ScreenAltFrequenz := StrToIntDef(lRegInfo.ReadString('RefreshRate'), 0);
          End;
        Finally
          lRegInfo.CloseKey;
          lRegInfo.Free;
        End;
      End;
    End;

    ShellExecute(0, 'open', PChar(APfad + 'saveicon.exe'),'"\s"', nil, SW_Show);
    Sleep(1000);
  End
  Else
  Begin
    saveiconherstellen:=true;
    AWidth := ScreenAlt.X;
    AHeight := ScreenAlt.Y;
    AFrequenz := ScreenAltFrequenz;
  End;

  lpDevMode.dmFields := DM_PELSWIDTH Or DM_PELSHEIGHT;
  lpDevMode.dmPelsWidth := AWidth;
  lpDevMode.dmPelsHeight := AHeight;
  If ( AFrequenz > 20 ) Then // valid?
  Begin
    lpDevMode.dmDisplayFrequency := AFrequenz;
    lpDevMode.dmFields := lpDevMode.dmFields Or DM_DISPLAYFREQUENCY;
  End;
  Result := ChangeDisplaySettings(lpDevMode, CDS_UPDATEREGISTRY) = DISP_CHANGE_SUCCESSFUL;

  If saveiconherstellen Then
    ShellExecute(0,'open', PChar(APfad + 'saveicon.exe'),'"\r"', nil, SW_Show);

  If Not Result Then
  Begin
    MessageBeep(MB_ICONERROR);
    MessageDlg('Fehler1' +#10#10+ 'Das Programm konnte die Auflösung nicht auf '+inttostr(AWidth)+'x'+inttostr(AHeight)+ ' umstellen.' +#10+ 'Es könnte sein das der Computer diese Auflösung nicht unterstützt' +#10+ 'Sollte der Computer diese Auflösung doch unterstüzen,' +#10+ 'dann stelle bitte die Auflösung manuel ein und starte das Spiel erneut.', mtError, [mbOK], 0);
    Application.Terminate;
  End;
End;
ich hab den code von muetze1 ausprobiert, das funzt,die auflösung und frequenz wird
umgestellt, aber wie bekomme ich die alten wieder zurück wenn ich mein programm schließe


1. ist mein funktionsaufruf so richtig ?

ChangeScreen(800,600,85,'c:\saveicon.exe') 2.welchen code muß ich in das ereigniss "onclose" schreiben, das meine alten einstellungen
wiederhergestellt werden ?

mfg vader
  Mit Zitat antworten Zitat
Vader

Registriert seit: 6. Mai 2003
804 Beiträge
 
Delphi 6 Enterprise
 
#2

Re: Auflösung,Frequenz,Icons wiederherstellen ?

  Alt 26. Dez 2005, 21:02
hallo,

keiner eine idee ?

mfg vader
  Mit Zitat antworten Zitat
Muetze1
(Gast)

n/a Beiträge
 
#3

Re: Auflösung,Frequenz,Icons wiederherstellen ?

  Alt 26. Dez 2005, 21:23
Zitat von Vader:
hallo,

keiner eine idee ?

mfg vader
Keine Zeit?

Anscheinend nicht, wenn man nach 3 Stunden wieder pusht, obwohl es nicht erlaubt ist. Im Alter von 35 sollte man vllt. auch ein wenig Geduld haben, oder? Und selbst wenn, der Code ist doch leicht zu durchschauen.

Wiederherstellung der alten Daten erfolgt mit einer Auflösungsweite von 0 - also am besten im OnClose "0, 0, 0," sowie den Pfad zu der EXE angeben.
  Mit Zitat antworten Zitat
Vader

Registriert seit: 6. Mai 2003
804 Beiträge
 
Delphi 6 Enterprise
 
#4

Re: Auflösung,Frequenz,Icons wiederherstellen ?

  Alt 27. Dez 2005, 07:53
hallo,

ich komm aber nicht drauf !!!

mfg vader
  Mit Zitat antworten Zitat
Benutzerbild von fkerber
fkerber
(CodeLib-Manager)

Registriert seit: 9. Jul 2003
Ort: Ensdorf
6.723 Beiträge
 
Delphi XE Professional
 
#5

Re: Auflösung,Frequenz,Icons wiederherstellen ?

  Alt 27. Dez 2005, 08:04
Hi!

Hast du den Post über dir mal gelesen?
Da steht doch ein Tipp drin, hast du den mal ausprobiert?


Ciao Frederic
Frederic Kerber
  Mit Zitat antworten Zitat
Muetze1
(Gast)

n/a Beiträge
 
#6

Re: Auflösung,Frequenz,Icons wiederherstellen ?

  Alt 27. Dez 2005, 12:59
Zitat von Muetze1:
Wiederherstellung der alten Daten erfolgt mit einer Auflösungsweite von 0 - also am besten im OnClose "0, 0, 0," sowie den Pfad zu der EXE angeben.
Für alle faulen, blinden und schlechten Leser:

ChangeScreen(0, 0, 0, 'c:\saveicon.exe');
  Mit Zitat antworten Zitat
Vader

Registriert seit: 6. Mai 2003
804 Beiträge
 
Delphi 6 Enterprise
 
#7

Re: Auflösung,Frequenz,Icons wiederherstellen ?

  Alt 27. Dez 2005, 20:30
sorry,

hab ich überlesen, aber es funzt nicht, es bleibt die veränderte auflösung und die icons stellen sich
auch nicht zurück, wenn ich das in onclose reinschreibe!

ChangeScreen(0, 0, 0, 'c:\saveicon.exe'); mfg vader
  Mit Zitat antworten Zitat
Muetze1
(Gast)

n/a Beiträge
 
#8

Re: Auflösung,Frequenz,Icons wiederherstellen ?

  Alt 28. Dez 2005, 01:15
Sicher das OnClose ausgelöst wird? Ansonsten nimm dir eine Form und packe 2 Buttons rauf. Im OnClick des einen verstellst du die Auflösung, im OnClick des anderen stellst du sie wieder her. Also beide Aufrufe mal "per Hand" auslösen. Klappt das denn?
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#9

Re: Auflösung,Frequenz,Icons wiederherstellen ?

  Alt 28. Dez 2005, 06:07
Liegt auch die Anwendung saveicon.exe im Root von Laufwerk c
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Muetze1
(Gast)

n/a Beiträge
 
#10

Re: Auflösung,Frequenz,Icons wiederherstellen ?

  Alt 28. Dez 2005, 10:55
Zitat von Luckie:
Liegt auch die Anwendung saveicon.exe im Root von Laufwerk c
Die würde aber auch nicht dafür sorgen dei Auflösung zurück zu drehen, oder?
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23      


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 17:00 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