Toon posts:

[Access] Aanpassen schermresolutie (API/DLL)

Pagina: 1
Acties:
  • 761 views sinds 30-01-2008
  • Reageer

Verwijderd

Topicstarter
Jaja, ze zijn er nog, gebruikers die met 800x600 werken! _/-\o_

Omdat ik deze mensen niet kan verplichten om op 1024x768 te werken zal de resolutie bij het opstarten veranderd moeten worden.

Info:
- Access 2000
- Win 2K
- hoofdzakelijk CRT tot 1280x1024 of TFT tot 1024x768

De volgende opties heb ik al geprobeerd:
- In Win95 werkte MS-powertoys quickres prima, maar onder 2K niet meer
- Via DLL (rundll32 shell32.dll,Control_RunDLL desk.cpl,,3) instellingscherm op
resolutieblad openen, maar de gebruiker moet de aanpassing doen en bevestigen....

Beste methode tot nu toe
Deze methode stond op accessweb (bij gebrek aan info op GoT natuurlijk 8) ) maar is sinds kort verdwenen, er zullen misschien meer problemen mee zijn geweest.

Met een API de resolutie veranderen:
- kijk of huidige resolutie hoog genoeg is (zo ja, stop)
- zoek de eerste resolutie die voldoet aan het minimum (>1000, dus bv 1024) (als er geen resolutie hoog genoeg kan worden gevonden, stop)
- stel de resolutie in op de gevonden resolutie

Problemen :(
- Het bureaublad wordt niet ververst na de aanpassing, de resolutie klopt wel, maar de helft staat buiten beeld etc.
- De refreshrate wordt te laag ingesteld.

Vraag:
- Is er een andere beter manier, liefst minder bewerkelijk dan de API-methode???
- Kan het bureaublad ververst worden oid???
- Kan de refreshrate geforceerd/ingesteld worden op een of andere manier


Iemand een idee om dit anders op te lossen?? Of kan ik de API-methode werkend krijgen door een verversing van het bureaublad toe te voegen (kan dit???) en de refreshrate te forceren (???)

  • Niek_
  • Registratie: Februari 2002
  • Laatst online: 22:01
[offtopic] Accessweb? heb gezocht op google maar kom alleen maar vage sites tegen die over vanalles behalve MS access gaan. Heb jij een linkje? Altijd fijn om nog meer info-bronnen te hebben...[/offtopic]

  • moto-moi
  • Registratie: Juli 2001
  • Laatst online: 09-06-2011

moto-moi

Ja, ik haat jou ook :w

Ehm.. hou je er wel rekening mee dat er mensen zijn die een reden hebben om 800 bij 600 te draaien ? ;)

Ik zou het, als gebruiker, een stuk prettiger vinden als je in het geval van een te lage resolutie een stel scrolbalken zou geven, met misschien een popup venster die uitlegt dat het programma voor 1024*768 gemaakt is.
Maar zomaar mijn resolutie wijzigen, dan verdwijnt een programma nogal rap bij mij.

God, root, what is difference? | Talga Vassternich | IBM zuigt


  • whoami
  • Registratie: December 2000
  • Laatst online: 17:55
Waarom moet de resolutie veranderd worden?
Zoals moto-moi zegt, hebben die mensen er wel reden toe.

Het is jouw taak -als ontwikkelaar- om een scherm te maken dat aan een bepaalde minimum-resolutie (bv 800x600) voldoet, zodat het scherm ook zichtbaar is op een 800x600 resolutie.

https://fgheysels.github.io/


  • _js_
  • Registratie: Oktober 2002
  • Laatst online: 13-01 07:19
GetDC, GetDeviceCaps om huidige resolutie te vinden, ChangeDisplaySettings om resolutie te veranderen, SendMessage naar HWND_BROADCAST met WM_DISPLAYCHANGE om alle andere vensters te laten weten dat res is veranderd.

Hou er ook rekening mee dat sommige mensen de optie grote lettertypen of zelfingestelde grootte daarvoor hebben, waardoor je controls niet meer kloppen qua grootte.

Verwijderd

Topicstarter
Niek_ schreef op 05 februari 2004 @ 10:00:
[offtopic] Accessweb? heb gezocht op google maar kom alleen maar vage sites tegen die over vanalles behalve MS access gaan. Heb jij een linkje? Altijd fijn om nog meer info-bronnen te hebben...[/offtopic]
http://www.mvps.org/access/

8)

Verwijderd

Topicstarter
moto-moi schreef op 05 februari 2004 @ 10:02:
Ehm.. hou je er wel rekening mee dat er mensen zijn die een reden hebben om 800 bij 600 te draaien ? ;)

Ik zou het, als gebruiker, een stuk prettiger vinden als je in het geval van een te lage resolutie een stel scrolbalken zou geven, met misschien een popup venster die uitlegt dat het programma voor 1024*768 gemaakt is.
Maar zomaar mijn resolutie wijzigen, dan verdwijnt een programma nogal rap bij mij.
:) maar ik sloop het niet hoor :*)

Bij het veranderen van de resolutie wordt deze opgeslagen, en bij het afsluiten van de applicatie wordt deze netjes terug veranderd!!

Verwijderd

Topicstarter
whoami schreef op 05 februari 2004 @ 10:04:
Waarom moet de resolutie veranderd worden?
Zoals moto-moi zegt, hebben die mensen er wel reden toe.

Het is jouw taak -als ontwikkelaar- om een scherm te maken dat aan een bepaalde minimum-resolutie (bv 800x600) voldoet, zodat het scherm ook zichtbaar is op een 800x600 resolutie.
Ja, je hebt gelijk, maar op 800x600 kan ik niet alle gegevens (overzichterlijk) kwijt. Op deze manier is de applicatie gebruikersvriendelijk, én kan de rest van de programma's wel op de gewenste resolutie gebruikt worden.

Nadeel is wel dat als de gebruiker een ander programma wil gebruiken als de applicatie open staat dit wel onder de hoge resolutie is..... Maar aan de andere kant wel een goede reden om de applicatie niet onnodig open te laten staan !!!

Verwijderd

Topicstarter
_js_ schreef op 05 februari 2004 @ 10:23:
GetDC, GetDeviceCaps om huidige resolutie te vinden, ChangeDisplaySettings om resolutie te veranderen, SendMessage naar HWND_BROADCAST met WM_DISPLAYCHANGE om alle andere vensters te laten weten dat res is veranderd.

Hou er ook rekening mee dat sommige mensen de optie grote lettertypen of zelfingestelde grootte daarvoor hebben, waardoor je controls niet meer kloppen qua grootte.
Ik neem aan dat GetDC, GetDeviceCaps en ChangeDisplaySettings modules of functies zijn dit in de betreffende applicatie aanwezig zijn.... dat zegt mij dus weinig over de werking......
_js_ schreef op 05 februari 2004 @ 10:23:
.......SendMessage naar HWND_BROADCAST met WM_DISPLAYCHANGE om alle andere vensters te laten weten dat res is veranderd.
Dit is denk ik het deel wat ik mis.... Kan je hier iets meer info over geven?

[ Voor 3% gewijzigd door Verwijderd op 05-02-2004 13:31 ]


  • _js_
  • Registratie: Oktober 2002
  • Laatst online: 13-01 07:19
Topic zegt API, ik nam aan dat je bekend bent met het feit dat er een Windows API is.

SendMessage

WM_DISPLAYCHANGE

Verwijderd

Topicstarter
_js_ schreef op 05 februari 2004 @ 13:52:
Topic zegt API, ik nam aan dat je bekend bent met het feit dat er een Windows API is.

SendMessage

WM_DISPLAYCHANGE
Ik verander de resolutie ook mbv API, maar dit alles komt me onbekend voor.

Wat ik er van begrijp, en wat ik erover heb kunnen vinden, is dat er een algemeen signaal over het systeem gegeven wordt om aan te geven dat de resolutie veranderd is. Dit signaal wordt door de verschillende programma's etc. opgevangen waarna ze indien nodig zich hierop aanpassen.

Is dit binnen access te doen? ik kan er nl niks over vinden........

  • curry684
  • Registratie: Juni 2000
  • Laatst online: 17-12-2025

curry684

left part of the evil twins

Verwijderd schreef op 05 februari 2004 @ 13:25:
[...]
Ja, je hebt gelijk, maar op 800x600 kan ik niet alle gegevens (overzichterlijk) kwijt. Op deze manier is de applicatie gebruikersvriendelijk, én kan de rest van de programma's wel op de gewenste resolutie gebruikt worden.
Nee je bent niet gebruikersvriendelijk, je overtreedt zelfs met grote stappen een van de belangrijkste Windows Application Development guidelines: een applicatie mag nooit aan systeemwijde functionaliteit/instellingen komen zonder dat daar expliciet toestemming door is verleend door de gebruiker.

Als je je informatie niet kwijt kunt hoor je tabs/scrollbars te gebruiken, geen ranzige systeemverneukende trucs uit te halen die spontaan rook uit 14" monitors laten komen (bij wijze van).

Professionele website nodig?


  • curry684
  • Registratie: Juni 2000
  • Laatst online: 17-12-2025

curry684

left part of the evil twins

Je hebt trouwens vast en zeker in onze search dit topic al gevonden en doorgelezen: [rml][ delphi] - beeldscherm resolutie aanpassen[/rml]

Incluis alle uitleg hoe het moet en waarom je het absoluut niet hoort te doen.

Professionele website nodig?


Verwijderd

Topicstarter
curry684 schreef op 05 februari 2004 @ 14:38:
[...]

Nee je bent niet gebruikersvriendelijk, je overtreedt zelfs met grote stappen een van de belangrijkste Windows Application Development guidelines: een applicatie mag nooit aan systeemwijde functionaliteit/instellingen komen zonder dat daar expliciet toestemming door is verleend door de gebruiker.

Als je je informatie niet kwijt kunt hoor je tabs/scrollbars te gebruiken, geen ranzige systeemverneukende trucs uit te halen die spontaan rook uit 14" monitors laten komen (bij wijze van).
De gebruiker moet in een instellingenscherm aangeven dat hij/zij wil dat de resolutie aangepast wordt bij het opstarten, en kan zelfs nog aangeven dat er om bevestiging gevraagd moet worden vóór het aanpassen van de resolutie en vóór het terugzetten van de resolutie. Dus er wordt echt wel expliciet om bevestiging gevraagd, en niet zomaar iets geforceerd!

  • curry684
  • Registratie: Juni 2000
  • Laatst online: 17-12-2025

curry684

left part of the evil twins

Verwijderd schreef op 05 februari 2004 @ 14:53:
[...]
De gebruiker moet in een instellingenscherm aangeven dat hij/zij wil dat de resolutie aangepast wordt bij het opstarten, en kan zelfs nog aangeven dat er om bevestiging gevraagd moet worden vóór het aanpassen van de resolutie en vóór het terugzetten van de resolutie. Dus er wordt echt wel expliciet om bevestiging gevraagd, en niet zomaar iets geforceerd!
Maakt het acceptabeler, alhoewel ik het nog steeds een ranzige oplossing vind die je kost wat kost moet zien te voorkomen. Waarom geen tabs of scrollbars, mechanismes die wel bedoeld zijn voor dit soort situaties?

En is het je al eens opgevallen dat de gemiddelde Domain User niet eens voldoende user rights heeft om aan de resolutie te komen?

Professionele website nodig?


Verwijderd

Topicstarter
curry684 schreef op 05 februari 2004 @ 14:42:
Je hebt trouwens vast en zeker in onze search dit topic al gevonden en doorgelezen: [rml][ delphi] - beeldscherm resolutie aanpassen[/rml]

Incluis alle uitleg hoe het moet en waarom je het absoluut niet hoort te doen.
Ja, die heb ik zelfs een tijd geleden uitgeprint om eens goed te bekijken alvorens ik deze functionaliteit toevoegde.

Zoals in deze tekst al aangegeven is dit echt NOT-DONE als er niet expliciet om gevraagd wordt door de gebruiker. Maar in mijn geval willen ze het dus, maar zijn ze het beu om iedere keer naar de displaysettings te wandelen en daar de veranderingen aan te brengen, geef ze eens ongelijk!

En het opblazen van schermen die deze resolutie of refreshrate niet aankunnen zal al helemaal niet gebeuren, de functie kijkt eerst welke resoluties beschikbaar zijn, en pakt hier de eerste net boven het minimum maar met de hoogst mogelijk refreshrate en bits bij deze resolutie. Als er geen resolutie beschikbaar is die voldoet aan het minimum wordt hier een melding van gegeven, en blijft de actuele resolutie gehandhaafd!

Verwijderd

Topicstarter
curry684 schreef op 05 februari 2004 @ 14:59:
[...]
....En is het je al eens opgevallen dat de gemiddelde Domain User niet eens voldoende user rights heeft om aan de resolutie te komen?
Klopt, maar de standaard is 1024x768, en de betreffende users hebben het bewust teruggezet naar 800x600 voor een bepaald programma wat ze vaak gebruiken (niet in combinatie met mijn app.) Ze hebben allemaal de rechten om de resolutie te veranderen, vraag me niet waarom.....

  • ou812
  • Registratie: Februari 2002
  • Laatst online: 01-04 12:01
Waarom resolutie aanpassen als je ook de formulieren kunt aanpasseen aan de gekozen resolutie?

Als het goed is moet op de site http://www.mvps.org/access/ ergens een verwijzing staan naar FormShrinker of zoiets dergelijks. Hiermee geef je in je access code aan op welke resolutie je forms zijn ontworpen. Vervolgens vergroot of verkleint het programma je forms on the fly bij de gebruiker afhankelijk van zijn windows resolutie.

edit:

toch nog even voor je verder gezocht: kijk hier maar eens:

The Access Form Resizer.
( http://jamiessoftware.tk/resizeform/afr.exe)


The Access Developer's Handbook scaling/resizing utility.
( http://www.developershandbook.com/Downloads/ADHResize.zip)


Peter De Baets' Shrinker-Stretcher.
( http://www.peterssoftware.com/ss.htm)


En hier wat korte uitleg over de hierboven vermelde software / code:

The Access Form Resizer
The Access Form Resizer is a freeware VBA code module that you can install in your own Access application and call it when each form is opened. I originally wrote the module, but over the years various developers have sent in their additions and suggestions to further improve and refine it. However this does require basic VBA coding skills and is recommended for scaling up to a higher resolution rather than down. If you're keen and have a good level of VBA knowledge, you can view the code yourself to see exactly how it works and even edit the code to better suit your specific application.

The Access Developer's Handbook
The Access Developer's Handbook is often mentioned in the Microsoft Access newsgroups and comes highly recommended by many developers. A compiled MDE version of their utility can be downloaded from http://www.developershandbook.com/downloads.htm. However, if you wish to use this in your application then you will have to remember to distribute this MDE file as well. The download also includes a valuable PDF file providing guidance on using the utility along with a detailed explanation of the processes and calculations necessary to rescale your forms. If you opt to purchase the book then a source code version is provided which can be incorporated into your own application, making distribution easier. The source code is copyright protected so please remember to read the book's introduction carefully for more information before distributing it with your application.

Shrinker-Stretcher
Peter De Baets' Shrinker-Stretcher is a shareware utility, which will perform a wide range of scaling functions if you require more scaling flexibility than the Access Form Resizer or the Access Developer's Handbook utility provide. If you don't feel up to programming these yourself then this utility comes highly recommended. A demonstration version is available from http://www.peterssoftware.com along with a range of other Microsoft Access utilities that you may find useful. If you opt to use the Shrinker-Stretcher then you will have to purchase a license for each installation of your application or any other application that uses it. For further information please read the license.txt file which is included with the shareware download.

[ Voor 92% gewijzigd door ou812 op 05-02-2004 15:14 ]


Verwijderd

Topicstarter
Ou812, bedankt voor je reactie en goede uitleg, maar hier heb ik ook al eens naar gekeken, en dit had meer negatieve dan positieve effecten in mijn geval.

Ik ben tussen het replyen op de reacties aan het zoeken gegaan naar de oplossing..... dus de broadcast van wm_settingchange. Moet simpel zijn, maar is weinig over te vinden.
Pagina: 1