![]() |
Re: Bildschirm drehen
Also ich habe jetzt selber noch was über MagicRotate in Erfahrung gebracht. Das Programm arbeitet mit Hooks und einem Treiber. Nur welche Hooks das sind kann ich nicht sagen. Den treiber kann man ja einfach installieren nur der Zugriff auf dessen Funktionen bzw auf die Hooks kenne ich leider nicht und weiss auch nicht wie ich die herausfinde.
|
Re: Bildschirm drehen
oh, wenn Treiber im Spiel sind siehts schlecht aus, zumal du die eventuell nicht verwenden darfst für deine Programme.
Ich könnte mir bezüglich des Treibers vorstellen das dieser eine Zwischenschicht zwischen dem Betriebssystem und dem richtigen Grafiktreiber ist. |
Re: Bildschirm drehen
Und warum verlinkst du nicht dein
![]() |
Re: Bildschirm drehen
Zitat:
|
Re: Bildschirm drehen
Zitat:
Oh, ja sorry existiert bereits ein Forumeintrag im anderen Forum. ![]() Jedoch kann ich hier meinen Post nicht mehr ändern und außerdem stehen im Delphi-Forum bis jetzt eh keine nennenswerten Informationen. Post wird dort sowie auch hier eh bald geschlossen, da es leider keinen gibt, der sich mit der Materie auskennt. |
Re: Bildschirm drehen
ich denke es hat weniger mit auskennen als viel mehr damit zu tun das Delphi und Treiberprogrammierung nicht zusammen passt. Du musst auch keine Angst haben das dieses Thema geschlossen wird aufgrund von keiner Antwort. Der Beitrag bleibt weiterhin bestehen so das auch in einigen Monaten noch die Lösung gepostet werden kann. :)
|
Re: Bildschirm drehen
Jopp, okay denn halt so. :-D Es ist halt nur so ich habe mich jetzt echt übertrieben viel mit der MSDN und sämtlichen Foren beschäftigt um eine Lösung zu finden. Leider ohne Erfolg. Ich bin nur immer wieder auf die Option dmDisplayOrientation gestoßen, die es ab XP geben soll. Jedoch bietet mir mein Delphi 2007 SP3 diese Funktion nicht an, es gibt nur die Druckervariante dmOrientation.
Vielleicht gibt es hier ja auch einige klevere Debugger, die sich mal das MagicRotate vornehmen und gucken, wie und mit welchen befehlen der Treiber davon angesprochen wird, weil die eigentliche Anwendung kommuniziert ja mir dem Treiber. Den Treiber zu installieren und nen paar Dlls zu registrieren habe ich schon hinbekommen, jedoch das ausleden der relevanten Funktionen bekomme ich nicht hin. |
Re: Bildschirm drehen
Zitat:
Code:
Sowie ich
void __fastcall TForm1::Button1Click(TObject *Sender)
{ DEVMODEA DM; DISPLAY_DEVICEA DD; ZeroMemory(&DD, sizeof(DD)); DD.cb = sizeof(DD); if (0 != EnumDisplayDevices(0, 0, &DD, 0)) { Caption = DD.DeviceName; ZeroMemory(&DM, sizeof(DM)); DM.dmSize = sizeof(DM); if (0 != EnumDisplaySettings(DD.DeviceName, ENUM_CURRENT_SETTINGS, &DM)) { DM.dmFields = DM_PELSWIDTH + DM_PELSHEIGHT + DM_DISPLAYORIENTATION;//? DM.dmDisplayOrientation = DMDO_180;//DMDO_DEFAULT; DM.dmPelsWidth= 1024; DM.dmPelsHeight= 768; switch(ChangeDisplaySettings(&DM,CDS_UPDATEREGISTRY)) { case DISP_CHANGE_SUCCESSFUL: MessageBox(NULL, "DISP_CHANGE_SUCCESSFUL", "Hinweis", MB_OK); break; case DISP_CHANGE_BADFLAGS: MessageBox(NULL, "DISP_CHANGE_BADFLAGS", "Hinweis", MB_OK); break; case DISP_CHANGE_BADMODE: MessageBox(NULL, "DISP_CHANGE_BADMODE", "Hinweis", MB_OK); break; case DISP_CHANGE_BADPARAM: MessageBox(NULL, "DISP_CHANGE_BADPARAM", "Hinweis", MB_OK); break; case DISP_CHANGE_FAILED: MessageBox(NULL, "DISP_CHANGE_FAILED", "Hinweis", MB_OK); break; case DISP_CHANGE_NOTUPDATED: MessageBox(NULL, "DISP_CHANGE_NOTUPDATED", "Hinweis", MB_OK); break; case DISP_CHANGE_RESTART: MessageBox(NULL, "DISP_CHANGE_RESTART", "Hinweis", MB_OK); break; } } } }
Code:
auf DMDO_180 (= 2) setze kommt die Meldung DISP_CHANGE_BADMODE, bei DMDO_DEFAULT (= 0) DISP_CHANGE_SUCCESSFUL.
DM.dmDisplayOrientation
Mein Treiber unterstützt eigentlich das Drehen des Bildschirms. |
Re: Bildschirm drehen
Zitat:
Und kann dein Treiber wirklich den Schirm um 180° drehen? Also einmal auf den Kopf stellen? Meiner kann nur 90° und 270° |
Re: Bildschirm drehen
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:16 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