Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Multi-Monitor-Umgebung: Bestimmten Monitor abschalten (https://www.delphipraxis.net/172168-multi-monitor-umgebung-bestimmten-monitor-abschalten.html)

Codehunter 17. Dez 2012 07:55

Multi-Monitor-Umgebung: Bestimmten Monitor abschalten
 
Hallo!

Also ich such jetzt schon zwei Tage aber finden kann ich zu diesem Problem nichts: Wie kann man in einer Multi-Monitor-Umgebung einen bestimmten Monitor (eben NICHT alle zusammen) in den Standby schicken.

Lösungen wie diese:
Delphi-Quellcode:
SendMessage(HWND_BROADCAST, WM_SYSCOMMAND, SC_MONITORPOWER, 2);
findet man zu Hauf im Netz, aber das schickt bestenfalls nur alle Monitore gemeinsam in den Standby, nicht einen bestimmten.

Möglicherweise kann das Windows auch von der Logik her nicht, da jede Mausbewegung oder Tastendruck eigentlich die Bildschirme wieder aufweckt. Dann wäre es schlicht unmöglich, einen von mehreren Bildschirmen in den Standby zu schicken und an dem/den anderen weiter zu arbeiten.

Vielleicht gehts aber doch und einer von euch hat eine Idee?

Grüße
Cody

Medium 17. Dez 2012 08:35

AW: Multi-Monitor-Umgebung: Bestimmten Monitor abschalten
 
Da ich ähnliches denke, was du schon befürchtest, würde ich eher danach gucken, wie man einen Bildschirm aus der Konfiguration entfernen kann. Quasi so, als würde man in der Systemsteuerung "Diesen Monitor verwenden" abschalten. Ggf. gibt es da einen Weg via WMI o.ä.

Nur Standby hätte auch den unschönen Nebeneffekt, dass der Moni dann ja logisch noch vorhanden wäre, sich Windows also nicht wie mit nur einem verhält. Das führt gerne mal zu "verlorenen" Fenstern und Desktop-Icons die man nicht mehr findet.

Codehunter 17. Dez 2012 14:41

AW: Multi-Monitor-Umgebung: Bestimmten Monitor abschalten
 
Das logische Entfernen bzw. logische Deaktivieren kann aber auch unschöne Seiteneffekte haben. Dann werden evtl. auf dem Desktop platzierte Icons verschoben oder diverse Window Geometrics "sabotiert". Hat schon mal jemand gesehen was die Delphi-7-IDE unter Windows 7 für eine Show veranstaltet, wenn man die Auflösung ändert? Das sieht dann aus als würde sie im Schneckentempo Amok laufen.

Ich denke ich werde das erstmal bleiben lassen mit dem gezielten Abschalten einzelner Monitore. Braucht man einen Blackscreen kann man zur Not ein rahmenloses schwarzes Fenster StayOnTop da hinstellen.

Der Gedanke dahinter war eine Rechner-Bildschirm-Beamer-Konfiguration, wobei der Beamer nicht wie üblich den Desktop spiegelt sondern Teil des Desktops ist. Das Bild über den Beamer wird dann erst "hell" wenn der Anwender es will. So er vorher noch etwas auf dem Rechner zu tun hat das nicht alle über den Beamer sehen sollen. Das kann dann von Nutzen sein wenn der Beamer nicht gleich neben dem Rechner steht und man auch keine Fernbedienung hat (z.B. bei Präsentationen an fremden Beamern).

jus 17. Dez 2012 20:02

AW: Multi-Monitor-Umgebung: Bestimmten Monitor abschalten
 
Soweit ich weiß, gibt es bei einigen Beamern eine serielle Schnittstele, wo man den Beamer steuern kann. Vielleicht kann man über diese Schnittstelle, falls vorhanden, den Beamer mal auf Standby schalten.

Lg,
jus

jfheins 17. Dez 2012 23:09

AW: Multi-Monitor-Umgebung: Bestimmten Monitor abschalten
 
Zitat:

Zitat von Codehunter (Beitrag 1195775)
Der Gedanke dahinter war eine Rechner-Bildschirm-Beamer-Konfiguration, wobei der Beamer nicht wie üblich den Desktop spiegelt sondern Teil des Desktops ist. Das Bild über den Beamer wird dann erst "hell" wenn der Anwender es will. So er vorher noch etwas auf dem Rechner zu tun hat das nicht alle über den Beamer sehen sollen. Das kann dann von Nutzen sein wenn der Beamer nicht gleich neben dem Rechner steht und man auch keine Fernbedienung hat (z.B. bei Präsentationen an fremden Beamern).

Hmmm ... man kann doch den Desktop erweitern? (Shortcut Win+P)
Damit kann man erstmal sein zeug machen (über den beamer sieht man dann nur den Desktophintergrund) und wenn man loslegen möchte das Fenster nach rechts verschieben und loslegen. Powerpoint erkennt den Beamer vll. sogar selbst so dass die Präsentation direkt dort startet.

Christoph Schneider 18. Dez 2012 07:22

AW: Multi-Monitor-Umgebung: Bestimmten Monitor abschalten
 
Windows kann diese Aufgabenstellung nicht vernünftig lösen.
Ich würde in dieser Situation mit einer schaltbaren Stromschiene (bspw. per RS232) die Stromversorgung des Monitors ein-/ausschalten.

Tonic1024 18. Dez 2012 07:43

AW: Multi-Monitor-Umgebung: Bestimmten Monitor abschalten
 
Ich denke auch, dass das der Weg ist.

Einfach mal schauen ob der Beamer eine serielle Schnittstelle hat und ob man das Protokoll in die Finger bekommt. Neuere Modelle, die keine Serielle Schnittstelle mehr haben lassen sich oftmals auch per LAN (soweit vorhanden) bedienen. Auch hier braucht man Zugriff auf das Protokoll wenn man nicht zu viel reverse engeneering betreiben will.

Nachteil diese Lösung ist ganz klar, dass ein anderer beamer andere Schnittstellen hat und ein anderes Protokoll fährt. Ein wenig flexibler wäre man mit einer WinLIRC-Lösung. Hier bräuchte dann nur jeweils der Fernbedienungscode für Ein/Aus angelernt werden. Code gibts zu Hauf im Netz.

Toni

Codehunter 18. Dez 2012 16:04

AW: Multi-Monitor-Umgebung: Bestimmten Monitor abschalten
 
Win-P ist nichts was man programmatisch nutzen könnte, außerdem hat es die selben negativen Seiteneffekte wie schon beschrieben (Icon-Schubserei)

Das mit der seriellen Schnittstelle ist nicht unbedingt das Mittel der Wahl da das immer proprietär ist. Na vielleicht fällt mir ja noch was Gescheites ein :-)

Meta777 18. Dez 2012 21:41

AW: Multi-Monitor-Umgebung: Bestimmten Monitor abschalten
 
Liste der Anhänge anzeigen (Anzahl: 2)
Ahoi,

mittels DDC/CI geht dies wohl am besten (vorausgesetzt die Monitore unterstützen es). Ich hatte mal irgendwo ein Testproject, wenn ich das finde häng ich es an.

hth

ACHTUNG: Der Code kann die Monintoreinstellungen zu unbrauchbaren Werten hin ändern. Prüfe ggf. vorher ob du deinen Monitor über das OSD zurücksetzen kannst. Zum Factory Reset über den Source verwende die im "VESA Monitor Control Command Set" (Tabelle 8.1) definierten Codes.


Shalom

EDIT: Units hinzugefügt (TPmMoniControl ist als Singleton implementiert, deswegen hab ich auch die Singleton unit angefügt [die es hier auch im Forum geben müsste]). Das Ganze war wie gesagt ein Testproject und erhebt kein Anspruch auf Vollständigkeit ABER man konnte einzelne Monitor abschalten.

Verwendungsbeispiel:
die Methode "actToggleMoniPower" wird einer Action zugewiesen. Im "Tag"-Property der Action muss die Monitornummer stehen. Auf dem Form sind eine TListBox, eine TTreeView und um Codes zu senden eine TEdit und ein Button.

Delphi-Quellcode:
function EnumDisplayMonitorsCallback(hm: HMONITOR; dc: HDC; r: PRect; l: LPARAM): Boolean; stdcall;
//Callback für Auflistung aller Monitore

  function RectToStr: String;
  begin
    Result := Format('%d-%d %d|%d', [r.Left, r.Right, r.Top, r.Bottom]);
  end;

begin
  Form1.lbMonitorsAvailabe.AddItem(RectToStr, TObject(hm));
end;


procedure TForm1.FormCreate(Sender: TObject);
begin
  EnumDisplayMonitors(0, nil, EnumDisplayMonitorsCallback, 0);
end;

procedure TForm1.lbMonitorsAvailabeClick(Sender: TObject);
begin
  //Vom Monitor unterstützte Codes ermitteln...
  TPmMoniControl.GetVCPCodesAvailable(HMONITOR(lbMonitorsAvailabe.Items.Objects[
    lbMonitorsAvailabe.ItemIndex]));
  Assign(TPmMoniControl.ReqInstance);
end;

procedure TForm1.Assign(ASource: TPersistent);
var
  i: Integer;
  LLastNodeAdded: TTreeNode;

  procedure AddChilds(AParent: TTreeNode; AValues: TStrings);
  var
    i: Integer;
  begin
    for i := 0 to AValues.Count-1 do
      tvCodes.Items.AddChild(AParent, AValues[i]);
  end;

begin
  if (ASource <> nil) AND (ASource.InheritsFrom(TPmMoniControl)) then
  begin
    tvCodes.Items.Clear;
    for i := 0 to TPmMoniControl(ASource).CodesAvailable.Count-1 do
    begin
      LLastNodeAdded := tvCodes.Items.AddChild(nil,
        TPmMoniControl(ASource).CodesAvailable[i]);
      if TPmMoniControl(ASource).CodesAvailable.Objects[i] <> nil then
        AddChilds(LLastNodeAdded,
          TStrings(TPmMoniControl(ASource).CodesAvailable.Objects[i]));
    end;//for i := 0 to TPmMoniControl(ASource).CodesAvailable.Count-1 do
  end else
    inherited;
end;

procedure TForm1.btnSendClick(Sender: TObject);
var
  LVCPCode: Byte;
  LData: DWORD;
begin
  LVCPCode := StrToInt('$' + tvCodes.Selected.Text);
  LData := StrToInt(eValue.Text);
  if not TPmMoniControl.Send(LVCPCode, LData) then
    RaiseLastOSError;
end;

procedure TForm1.actToggleMoniPower(Sender: TObject);
const
  //although we assume that the monitor is powered on by default we store the
  //value visa versa for simplicity (so we do not need to set the initial
  //powerstate to True [1] in the actions .Tag-property)
  konPowerValue: Array[Boolean] of Byte = (1, 4);
var
  LMoniNumber, LPowerState: Byte;
begin
  //the Monitor number is set in the .Tag property at designtime!
  LMoniNumber := Lo(TAction(Sender).Tag);
  //In the High-Byte we store the power state - get it here
  LPowerState := Hi(TAction(Sender).Tag);
  //at least the monitor should be "detected"
  Assert(lbMonitorsAvailabe.Items.Count >= LMoniNumber);
  //toogle the the powerstate - if it's True (1) set to False (0) and visa versa
  LPowerState := Ord(NOT Boolean(LPowerState));
  //Get VCP Codes via the HMonitor handle
  TPmMoniControl.GetVCPCodesAvailable(HMonitor(
    lbMonitorsAvailabe.Items.Objects[LMoniNumber-1]));
  //Send new power state value
  TPmMoniControl.Send($D6, konPowerValue[Boolean(LPowerState)]);
  //Save the new power state if it could be send to the monitor
  TAction(Sender).Tag := MakeWord(LMoniNumber, LPowerState);
end;

Tonic1024 19. Dez 2012 08:10

AW: Multi-Monitor-Umgebung: Bestimmten Monitor abschalten
 
Ich muss vor dem oben stehenden Code warnen. Er ist unvollständig. Bei dem Versuch herauszufinden wie er funktioniert hab ich auf meinem ersten Monitor, wie es scheint, den Gamma-Wert so hoch geschraubt, dass er beinahe nur noch weiss ist und mein zweiter Monitor ist rosa eingefärbt.

Wie stellt man auf default zurück?

Toni

haentschman 19. Dez 2012 08:13

AW: Multi-Monitor-Umgebung: Bestimmten Monitor abschalten
 
Spontan würde ich sagen über das monitoreigene Menü... (ausnahmsweise per Hand) 8-)

Tonic1024 19. Dez 2012 08:18

AW: Multi-Monitor-Umgebung: Bestimmten Monitor abschalten
 
Der kann nur Helligkeit und Kontrast. Reset setzt zwar diese Einstellungen zurück aber ändert nichts an der Farbe.

Habs mit Try & Error über das Programm wieder brauchbar bekommen... Auch wenn ich das gefühl hab der Eine tut jetzt in den Augen weh. Muss vielleicht noch mal mit dem Kontrast herumspielen.

Scheint als hätte der Monitor-Hersteller am OSD gespart.

haentschman 19. Dez 2012 08:20

AW: Multi-Monitor-Umgebung: Bestimmten Monitor abschalten
 
Dann hätten wir noch in den Anzeigeeinstellungen "Farbkalibrierung". Das ist eine Art Wizzard... (W7)

Codehunter 19. Dez 2012 08:57

AW: Multi-Monitor-Umgebung: Bestimmten Monitor abschalten
 
@Meta777: Vielen Dank für den kleinen Denkanstoss! Ich wußte gar nicht dass es ein Low-Level-Monitor-API gibt. Da geht ja so einiges was ich mir vorgestellt hatte (sofern es der Monitor und dessen Verkabelung unterstützt). GetMonitorCapabilities dürfte für mich der richtige Einstieg sein.

Zwar wird das Ganze erst ab Vista unterstützt, aber so langsam finde ich mich damit ab dass Vista jetzt das älteste noch zu unterstützende Windows ist.

EDIT: @Tonic1024:
Du bist jetzt wahrscheinlich über genau das selbe gestolpert was ich in einem früheren Post hier schon geschrieben habe: Windows wirft die Grafikkarte und den Monitor "gedanklich" manchmal in einen Topf. Man ändert eine Einstellung (in deinem Fall Helligkeit oder Gamma) und muss sich da ganz genau überlegen, welches Device das dann tut - technisch könnten es nämlich beide: Graka und Monitor.

Codehunter 19. Dez 2012 12:53

AW: Multi-Monitor-Umgebung: Bestimmten Monitor abschalten
 
Nochmal herzlichen Dank an Meta777, der Denkanstoß über das Monitor Low Level API war sehr gut. Ich habs damit ohne viel Theater hinbekommen. Zwar braucht man das VESA Monitor Control Command Set (findet der Gockel als PDF) und einen VESA DDC 1.0 kompatiblen Monitor (kann fast jeder Flachglotzer und ein Großteil der Tiefglotzer) aber dann funktioniert das perfekt. Einfach ein
Delphi-Quellcode:
SetVCPFeature(hPhysicalMonitor, $D6, $02)
an den Bildschirm schicken und schon ist er schwarz wie die Nacht, mit
Delphi-Quellcode:
SetVCPFeature(hPhysicalMonitor, $D6, $01)
weckt man ihn wieder auf.

Ich glaub das wird eine richtig nette Implementierung des Monitor API von Windows. Was mich aber noch irritiert an dem Low Level API: Pro Monitor-Handle (HMONITOR) kennt das System wieder eine Menge X an physischen Monitorgeräten, verwendet aus dieser Menge aber immer nur den ersten Eintrag. Ist das jetzt für solche Konfigurationen gedacht, wo ein Bild via Grafiktreiber auf mehrere Monitore verteilt wird? So wie man das manchmal auf Messen oder in Fernsehstudios sieht wo man eine 3x3 oder 4x4 Matrix aus Bildschirmen hat? Das MSDN gibt dazu jedenfalls keine Auskunft:
Zitat:

Zitat von MSDN: GetNumberOfPhysicalMonitorsFromHMONITOR function
Receives the number of physical monitors associated with the monitor handle.

Ich dachte bisher immer HMONITOR wäre das Handle zum eigentlichen Bildschirmgerät, weil man darüber auch Details zum Gerät an sich auslesen kann. Jetzt gibt es wieder eine Unterverzweigung. Allerdings liefert GetNumberOfPhysicalMonitorsFromHMONITOR auf sämtlichen meiner Testsysteme immer nur "0" (bei virtuellen Grafiktreibern) oder "1" (bei echten Videoschnittstellen).

Besteht denn Interesse an einer Veröffentlichung meiner Multimon-Implementierung?

Meta777 20. Dez 2012 08:55

AW: Multi-Monitor-Umgebung: Bestimmten Monitor abschalten
 
Zitat:

Zitat von Tonic1024 (Beitrag 1195993)
Ich muss vor dem oben stehenden Code warnen. Er ist unvollständig. Bei dem Versuch herauszufinden wie er funktioniert hab ich auf meinem ersten Monitor, wie es scheint, den Gamma-Wert so hoch geschraubt, dass er beinahe nur noch weiss ist und mein zweiter Monitor ist rosa eingefärbt.

Wie stellt man auf default zurück?

Toni

Sorry Tonic1024,

falls du es nicht schon gefunden hast kannst du mit den Factory Reset Codes aus der Tabelle 8.1 des Bei Google suchenVESA Monitor Control Command Set die Einstellungen wieder reseten. Ich habe auch mal die Mods informiert, dass Sie eine Warnung in meinen Beitrag schrieben (Selbst bearbeiten kann ich ihn nicht mehr).

Shalom

Tonic1024 20. Dez 2012 09:12

AW: Multi-Monitor-Umgebung: Bestimmten Monitor abschalten
 
Kein Beinbruch... Man muss sich nur im klaren sein was man tut wenn man blindlinks Messages durch die Gegend Feuert. :-D

Codehunter 20. Dez 2012 10:43

AW: Multi-Monitor-Umgebung: Bestimmten Monitor abschalten
 
Liste der Anhänge anzeigen (Anzahl: 1)
So, neue Version, neues Glück:

Wenn man jetzt den Reiter "VESA MCCS" anklickt hat man die Power-Buttons (aufpassen, dass man nicht den abschaltet wo man das Fenster vom Testprogramm hat) und exemplarisch einen Regler für die Helligkeit. Wenn man den verschiebt und anschließend mal im OSD des Monitors nachschaut, dann ändert man mit dem Regler wirklich die Monitoreinstellungen, nicht die von der Grafikkarte. Man sollte sich aber ggf. vorher den eingestellten Wert merken, damit man ihn hinterher per OSD wieder genauso einstellen kann. Die Trackbar ist ja nur ein Schätzeisen.

Der Helligkeitsregler steht nur stellvertretend für eine ganze Reihe von Optionen, die von VESA MCCS unterstützt werden. Es hängt aber auch davon ab, welches Subset davon von der Monitor-Firmware unterstützt wird.

Wichtig: Die V4 unterstützt Windows XP nicht mehr!

Tonic1024 20. Dez 2012 11:10

AW: Multi-Monitor-Umgebung: Bestimmten Monitor abschalten
 
Wenn ich einen Monitor auswähle bekomme ich eine AV. Helligkeit lässt sich danach regeln. Monitorpower klappt nicht. Keine Meldung, keine Reaktion.

Gruß,

Toni

Codehunter 20. Dez 2012 11:23

AW: Multi-Monitor-Umgebung: Bestimmten Monitor abschalten
 
@Tonic: Welches Betriebssystem? Die AV könnte daher kommen, dass ich ein paar EXTERNALs drin habe und dein OS keine passende DLL hat. Ich habs auf Win 7 x64 laufen ohne AV. Wenn Helligkeit funzt und Power nicht könnte es sein, der Bildschirm kann den MCCS-Befehl nicht.

Tonic1024 20. Dez 2012 11:28

AW: Multi-Monitor-Umgebung: Bestimmten Monitor abschalten
 
Ein Vista Business 32Bit ist es. Hab aber später noch weitere Systeme (verschiedene Betriebssysteme und Monitore) im Zugriff, die ich testen kann.

Auch wenn mich das Thema interessiert muss ich gestehen, dass ich nicht viel Überblick drüber habe... Wo finde ich heraus was mein Monitor kann und was nicht? Oder muss man das einfach ausprobieren?

Planst du deinen Code zu veröffentlichen?


Toni

Codehunter 20. Dez 2012 12:16

AW: Multi-Monitor-Umgebung: Bestimmten Monitor abschalten
 
Ich hatte ja gefragt, ob Interesse an einer Veröffentlichung besteht. Bisher hat noch keiner die Hand gehoben.

Was die Fähigkeiten der Monitor-Firmware angeht: Ich suche schon nach einer Möglichkeit, die unterstützten Befehle abzufragen. Mit der Funktion CapabilitiesRequestAndCapabilitiesReply soll das gehen. Daraus bekommt man so eine Art REST-String (hier ein Samsung SyncMaster 2232BW):
Code:
(
  prot(monitor)
  type(LCD)
  model(PEBBLE)
  mccs_ver(2.0)
  vcp(
    04 05 08 10 12 14(02 03 0A 0B)
    16 18 1A 60(01 03)
    87 B0(01 02)
    B6 C6 C8 C9 D6(01 04)
    DC(01 02 03 04 05 06 F0)
    DF F0(00 01 02 03)
    F3(00 01)
    F2
  )
  mswhql(1)
)
Und hier ein Fujitsu-Siemens P19-2:
Code:
vcp(
  04 05 08 0E 10 12 14(01 02 05 06 08 0B)
  16 18 1A 60 62 6C 6E 70 94 AA AC AE B2 B6 C0 C6 C8 C9 CA CC D6 DF F0 F6
)
vcp_p2(
  37 38 39 3B
)
type(LCD)
mccs_ver(2.0)
asset_eep(64)
mpu(0.20)
Wie man sieht, sind die in ihrem Aufbau je nach Hersteller verschieden. Dadurch wird das Parsing ein wenig lästig. Ich werde aber mal eine V5-Testanwendung bauen, die den MCCS-Caps-String mit in der Detailliste ausgibt.

Der VCP-Code für Power-On/Off/Standby/Suspend ist "D6". Wie man sieht, unterstützt der SyncMaster dafür nur die Werte "01" und "04" (Power-On und Power-Off), der Fujitsu grenzt es nicht ein, unterstützt also alle 4 Modes.

Jetzt kommts aber: Sowohl SyncMaster als auch Fujitsu unterstützen in der Praxis auch die Werte "02" und "03" (Power-Standby und Power-Suspend). Insofern ist der VCP-Caps-String alles andere als zuverlässig.

Tonic1024 20. Dez 2012 13:19

AW: Multi-Monitor-Umgebung: Bestimmten Monitor abschalten
 
Ich seh schon. Da ist Handarbeit gefragt... Ich hab, nach meinen missglückten Versuchen mit dem Code von Meta, nochmal explizit nach den D6 Values geschaut. Meine beiden typgleichen Monitore gleichen Kaufdatums melden sich da einmal mit 01 04 und einmal mit 01 03. Schon ein wenig verwunderlich.

Also ich hätte da direkt schon eine Projekt-Idee zu dem Thema und würde spontan Interesse anmelden.

Toni

Codehunter 20. Dez 2012 13:46

AW: Multi-Monitor-Umgebung: Bestimmten Monitor abschalten
 
Also ich hab bei meinen Experimenten zuerst die Funktion realisiert, die aktuellen Werte aus dem Monitor auszulesen. Bevor ich dann experimentellerweise irgendwas ändere rufe ich erstmal den Stand ab, speichere ihn irgendwo zwischen, schicke meinen Änderungsbefehl und per Timer nach 10 Sekunden die Rücksetzung auf die Ausgangswerte. So muss man nachher bei einem Fehlversuch nicht so viel am OSD-Menü rumfummeln.

Ich muss mal schauen ob ich über Weihnachten wenn ich mehr Zeit habe, ein Sourceforge-Projekt dafür aufsetze, damit hat man dann ein SVN.

Allerdings gebe ich zu bedenken, dass die VESA-Standards "nicht so ganz" öffentlich sind. Man findet sie zwar als PDF aber immer auf "irgendwelchen" Seiten. Jetzt frag mich bloß keiner, ob die clientseitige Implementierung lizenzpflichtig ist oder nicht.

Codehunter 21. Dez 2012 15:12

AW: Multi-Monitor-Umgebung: Bestimmten Monitor abschalten
 
So kleines Update noch vor meinem Urlaub:

Ich habe die Komponente ja ursprünglich auf Delphi 7 entwickelt, hab sie jetzt aber soweit portiert, dass sie auch auf XE2 x64 kompiliert. Alle bisherigen Features laufen da genauso. Allerdings nur in einer reinen ANSI-Version, da das Monitor-API in der Wide-Version Probleme macht.

Ein Sourceforge-Projekt mach ich über die Feiertage mal auf. Bis dahin, alles Gute und frohes Fest.

Codehunter 8. Jan 2013 09:15

AW: Multi-Monitor-Umgebung: Bestimmten Monitor abschalten
 
So, den Code zum eigentlichen MultiMon Manager habe ich jetzt erstmal unter die GPLv3 gestellt und bei SourceForge veröffentlicht.

http://sourceforge.net/p/multimonman...s/Development/

Ob es bei der GPLv3 bleibt weiß ich noch nicht. Fürs Erste habe ich noch die Option offengelassen, es außerhalb der GPLv3 zu verwenden wenn man mich vorher fragt. Aber da es ohnehin noch im Alpha-Status ist wirds ja keiner in einem Produktiv-Prjekt verwenden wollen oder? ;-)

Bernhard Geyer 8. Jan 2013 09:54

AW: Multi-Monitor-Umgebung: Bestimmten Monitor abschalten
 
Zitat:

Zitat von Codehunter (Beitrag 1198176)
Ob es bei der GPLv3 bleibt weiß ich noch nicht. Fürs Erste habe ich noch die Option offengelassen, es außerhalb der GPLv3 zu verwenden wenn man mich vorher fragt. Aber da es ohnehin noch im Alpha-Status ist wirds ja keiner in einem Produktiv-Prjekt verwenden wollen oder? ;-)

Bitte noch MPL oder Apache an. Nur mit GPL ist es für alle User gestorben die Closed Source-SW entwickeln.

Codehunter 8. Jan 2013 10:13

AW: Multi-Monitor-Umgebung: Bestimmten Monitor abschalten
 
Zitat:

Zitat von Bernhard Geyer (Beitrag 1198188)
Bitte noch MPL oder Apache an. Nur mit GPL ist es für alle User gestorben die Closed Source-SW entwickeln.

Ganz entspannt bleiben :-) Kaum stößt Bernhards Runtime auf das Keyword "GPL" wirft sie gleich eine EInvalidLicenseModel aus ^^

Also bitte EInvalidLicenseModel in die Liste der ignorierten Exceptions aufnehmen und weiter lesen :-)
Delphi-Quellcode:
{
  This file is part of MultiMon Manager, Copyright 2013 Codehunter Works.

  Original filename is MonitorManager.pas published by Codehunter Works
  at 01-08-2013 (MM-DD-YYYY).

  MultiMon Manager is dual licensed under the Terms of GPL version 3 and
  simultaneously under a proprietary Software License. If you wish to use
  MultiMon Manager in commercial and/or closed source Projects, you must
  contact Codehunter Works via codehunter@gmx.net to get a Professional
  License.

  ...


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:50 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-2025 by Thomas Breitkreuz