![]() |
Auflösung,Frequenz,Icons wiederherstellen ?
hallo,
muetze1 hat einen code von ferby modifiziert " Auflösung und Frequenz ändern, Desktopicons sichern und alles dann wiederherstellen !
Delphi-Quellcode:
ich hab den code von muetze1 ausprobiert, das funzt,die auflösung und frequenz wird
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; umgestellt, aber wie bekomme ich die alten wieder zurück wenn ich mein programm schließe 1. ist mein funktionsaufruf so richtig ?
Delphi-Quellcode:
2.welchen code muß ich in das ereigniss "onclose" schreiben, das meine alten einstellungen
ChangeScreen(800,600,85,'c:\saveicon.exe')
wiederhergestellt werden ? mfg vader |
Re: Auflösung,Frequenz,Icons wiederherstellen ?
hallo,
keiner eine idee ? mfg vader |
Re: Auflösung,Frequenz,Icons wiederherstellen ?
Zitat:
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. |
Re: Auflösung,Frequenz,Icons wiederherstellen ?
hallo,
ich komm aber nicht drauf !!! mfg vader |
Re: Auflösung,Frequenz,Icons wiederherstellen ?
Hi!
Hast du den Post über dir mal gelesen? Da steht doch ein Tipp drin, hast du den mal ausprobiert? Ciao Frederic |
Re: Auflösung,Frequenz,Icons wiederherstellen ?
Zitat:
Delphi-Quellcode:
ChangeScreen(0, 0, 0, 'c:\saveicon.exe');
|
Re: Auflösung,Frequenz,Icons wiederherstellen ?
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!
Delphi-Quellcode:
mfg vader
ChangeScreen(0, 0, 0, 'c:\saveicon.exe');
|
Re: Auflösung,Frequenz,Icons wiederherstellen ?
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?
|
Re: Auflösung,Frequenz,Icons wiederherstellen ?
Liegt auch die Anwendung saveicon.exe im Root von Laufwerk c:?
|
Re: Auflösung,Frequenz,Icons wiederherstellen ?
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:18 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