A InfoWiki wikiből
(Változatok közti eltérés)
17. sor: | 17. sor: | ||
int fWinIni | int fWinIni | ||
); | ); | ||
- | // | + | //.................................................................... |
static void Main(string[] args) | static void Main(string[] args) | ||
{ | { | ||
35. sor: | 35. sor: | ||
@"c:\kepek\choosen_as_actual.bmp", 0x01|0x02); | @"c:\kepek\choosen_as_actual.bmp", 0x01|0x02); | ||
} | } | ||
- | // | + | //.................................................................... |
static string pickupOne(string dirName, string filter) | static string pickupOne(string dirName, string filter) | ||
{ | { | ||
42. sor: | 42. sor: | ||
return files[i]; | return files[i]; | ||
} | } | ||
- | // | + | //.................................................................... |
} | } | ||
</code> | </code> |
A lap 2009. január 16., 08:30-kori változata
Wallpaper beállítása dual monitoron
Amennyiben pl. van egy normál monitorunk 1600x1200, és egy wide monitorunk 1680x1050 felbontással, akkor készíthetünk egy 3280x1200-as méretű képet. Ez a kép pontosan a két monitor szélességének (1600+1680) összege szélességű, magassága a két magasság közül a nagyobb érték. Egy ekkora méretű képet amennyiben beállítunk háttérkép (wallpaper)-nek a Windows-ban, úgy ezen kép bal része fog a bal oldali normál, jobb része fog a jobb oldali wide monitorunkon megjelenni. E módon tudunk különböző háttérképet állítani be a bal és jobb monitorunkon.
Feltételezzük, hogy vannak pontosan 1600x1200-as képeink valamely c:\kepek\normal alkönyvtárban, hasonlóan vannak pontosan 1680x1050 méretű képeink a c:\kepek\wide alkönyvtárban.
class Program { static Random rnd = new Random(); public const int SPI_SETDESKWALLPAPER = 20; [DllImport("User32.dll", CharSet = CharSet.Auto)] private static extern int SystemParametersInfo( int uiAction, int uiParam, string pvParam, int fWinIni ); //.................................................................... static void Main(string[] args) { string leftName = pickupOne(@"c:\kepek\normal", "*.jpg"); string rightName = pickupOne(@"c:\kepek\wide", "*.jpg"); Bitmap theImage = new Bitmap(3280,1200); Image left = Bitmap.FromFile(leftName); Image right = Bitmap.FromFile(rightName); Graphics g = Graphics.FromImage(theImage); g.DrawImage(left, 0.0f, 0.0f); g.DrawImage(right, 1600.0f, 0.0f); g.Dispose(); theImage.Save(@"c:\kepek\choosen_as_actual.bmp", System.Drawing.Imaging.ImageFormat.Bmp); SystemParametersInfo(SPI_SETDESKWALLPAPER, 0, @"c:\kepek\choosen_as_actual.bmp", 0x01|0x02); } //.................................................................... static string pickupOne(string dirName, string filter) { string[] files = System.IO.Directory.GetFiles(dirName, filter); int i = rnd.Next(0, files.Length); return files[i]; } //.................................................................... }