Skip to content

Instantly share code, notes, and snippets.

@killobatt
Created July 14, 2016 13:56
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save killobatt/188bc87234cbd89186809062e75b3b00 to your computer and use it in GitHub Desktop.
Save killobatt/188bc87234cbd89186809062e75b3b00 to your computer and use it in GitHub Desktop.
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO;
using System.Runtime.InteropServices;
namespace Wallpapers
{
public partial class Form1 : Form
{
[DllImport("user32.dll", CharSet = CharSet.Auto, SetLastError = true)] // подключение .dll библиотек для работы с рабочим столом
private static extern int SystemParametersInfo(UInt32 uAction, UInt32 uParam, String lpvParam, UInt32 fuWinIni);
public const int SPI_SETDESKWALLPAPER = 20;
public const int SPIF_UPDATEINIFILE = 1;
public const int SPIF_SENDCHANGE = 2;
private string fullPath;
public Form1()
{
InitializeComponent();
DriveTreeInit(); //инициализация дерева папок с помощью метода DriveTreeInit
}
private void toolStripButton2_Click(object sender, EventArgs e)
{
}
public void DriveTreeInit() //Метод инициализации дерева папок
{
string[] drivesArray = Directory.GetLogicalDrives();
treeView1.BeginUpdate();
treeView1.Nodes.Clear();
foreach(string s in drivesArray)
{
TreeNode drive = new TreeNode(s, 0, 0);
treeView1.Nodes.Add(drive);
GetDirs(drive);
}
treeView1.EndUpdate();
}
public void GetDirs(TreeNode node) //метод добавляет в список содержимое крневого каталога
{
DirectoryInfo[] diArray;
node.Nodes.Clear();
string fullPath = node.FullPath;
DirectoryInfo di = new DirectoryInfo(fullPath);
try { diArray = di.GetDirectories(); }
catch { return; }
foreach (DirectoryInfo dirinfo in diArray)
{
TreeNode dir = new TreeNode(dirinfo.Name, 1, 2);
node.Nodes.Add(dir);
}
}
private void treeView1_AfterSelect(object sender, TreeViewEventArgs e)
{
string[] drivesArray = Directory.GetLogicalDrives(); // используем статический метод Directory.GetLogicalDrives
// для получения списков логических элементов
foreach (string s in drivesArray)
Console.Write("{0} ", s);
DirectoryInfo[] diArray;
string fullPath = "C:\\";
DirectoryInfo di = new DirectoryInfo(fullPath); // с помощью метода DirectoryInfo получаем список
//всех подкаталогов
try{ diArray = di.GetDirectories(); }
catch{ return; }
}
private void treeView1_OnBeforeExpand(object sender, System.Windows.Forms.TreeViewCancelEventArgs e)
{
treeView1.BeginUpdate();
foreach (TreeNode node in e.Node.Nodes)
{
GetDirs(node);
}
treeView1.EndUpdate();
}
private void listView1_SelectedIndexChanged(object sender, System.Windows.Forms.TreeViewEventArgs e)
{
listView1.Items.Clear();
ListViewItem lvi = new ListViewItem("myfile.txt");
lvi.SubItems.Add("1024");
lvi.SubItems.Add("10-05-2003");
listView1.Items.Add(lvi);
}
private void treeView1_OnAfterSelect(object sender,System.Windows.Forms.TreeViewEventArgs e)
{
TreeNode selectedNode = e.Node;
fullPath = selectedNode.FullPath;
DirectoryInfo di = new DirectoryInfo(fullPath);
FileInfo[] fiArray;
DirectoryInfo[] diArray;
try { fiArray = di.GetFiles(); diArray = di.GetDirectories(); }
catch { return; }
listView1.Items.Clear();
foreach (DirectoryInfo dirInfo in diArray)
{
ListViewItem lvi = new ListViewItem(dirInfo.Name);
lvi.SubItems.Add("0");
lvi.SubItems.Add(dirInfo.LastWriteTime.ToString());
lvi.ImageIndex = 0;
listView1.Items.Add(lvi);
}
foreach (FileInfo fileInfo in fiArray)
{
ListViewItem lvi = new ListViewItem(fileInfo.Name);
lvi.SubItems.Add(fileInfo.Length.ToString());
lvi.SubItems.Add(fileInfo.LastWriteTime.ToString());
string filenameExtension = Path.GetExtension(fileInfo.Name).ToLower();
listView1.Items.Add(lvi);
}
}
private void listView1_SelectedIndexChanged(object sender, EventArgs e)
{
}
private void listView1_OnItemActivate(object sender, System.EventArgs e)
{
foreach(ListViewItem lvi in listView1.SelectedItems)
{
this.loadImage(lvi, pictureBox1);
}
}
private void button1_Click(object sender, EventArgs e)
{
if (listView1.SelectedIndices.Count > 0 )
{
int oldSelection = listView1.SelectedIndices[0];
listView1.SelectedIndices.Clear();
if (1 <= oldSelection)
if (oldSelection - 1 <= listView1.Items.Count)
{
listView1.SelectedIndices.Add(oldSelection - 1);
}
else { listView1.SelectedIndices.Add(1); }
}
foreach (ListViewItem lvi in listView1.SelectedItems)
{
this.loadImage(lvi, pictureBox1);
}
}
private void button2_Click(object sender, EventArgs e)
{
if (listView1.SelectedIndices.Count > 0)
{
int oldSelection = listView1.SelectedIndices[0];
listView1.SelectedIndices.Clear();
if (oldSelection + 1 >= listView1.Items.Count) listView1.SelectedIndices.Add(0);
else listView1.SelectedIndices.Add(oldSelection + 1);
}
foreach (ListViewItem lvi in listView1.SelectedItems)
{
this.loadImage(lvi, pictureBox1);
}
}
private void toolStripButton6_Click(object sender, EventArgs e)
{
string path = pictureBox1.ImageLocation;
System.Drawing.Image image = System.Drawing.Image.FromFile(path); ;
image.Save(@"C:\WINDOWS\Web\Wallpaper\test.bmp", System.Drawing.Imaging.ImageFormat.Bmp);
SystemParametersInfo(SPI_SETDESKWALLPAPER, 0, @"C:\WINDOWS\Web\Wallpaper\test.bmp", SPIF_UPDATEINIFILE | SPIF_SENDCHANGE);
}
private void оПрограммеToolStripMenuItem1_Click(object sender, EventArgs e)
{
MessageBox.Show("Программа для оформления рабочего стола\n\n\n Лось Татьяна, 2014г.", "Wall Changer 1.0");
}
private void снимокЭкранаToolStripMenuItem1_Click(object sender, EventArgs e)
{
var boom = Screen.GetBounds(new Point(0, 0));
var bmp = new Bitmap(boom.Width, boom.Height);
using (var g = Graphics.FromImage(bmp))
g.CopyFromScreen(0, 0, 0, 0, bmp.Size);
bmp.Save(@"C:\Documents and Settings\User\Мои документы\Мои рисунки\screen.bmp");
}
private void Form1_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.S) снимокЭкранаToolStripMenuItem1_Click(sender, e);
}
private void toolStripButton10_Click(object sender, EventArgs e)
{
Timer timer = new Timer();
timer.Interval = 1200000;
timer.Tick += button3_Click;
timer.Start();
}
private void pictureBox1_Click(object sender, EventArgs e)
{
}
private void folderBrowserDialog1_HelpRequest(object sender, EventArgs e)
{
}
private void button3_Click(object sender, EventArgs e)
{
if (listView1.SelectedIndices.Count > 0)
{
int oldSelection = listView1.SelectedIndices[0];
listView1.SelectedIndices.Clear();
if (oldSelection + 1 >= listView1.Items.Count) listView1.SelectedIndices.Add(0);
else listView1.SelectedIndices.Add(oldSelection + 1);
}
foreach (ListViewItem lvi in listView1.SelectedItems)
{
this.loadImage(lvi, pictureBox2);
}
string path = pictureBox2.ImageLocation;
System.Drawing.Image image = System.Drawing.Image.FromFile(path); ;
image.Save(@"C:\WINDOWS\Web\Wallpaper\test.bmp", System.Drawing.Imaging.ImageFormat.Bmp);
SystemParametersInfo(SPI_SETDESKWALLPAPER, 0, @"C:\WINDOWS\Web\Wallpaper\test.bmp", SPIF_UPDATEINIFILE | SPIF_SENDCHANGE);
}
private void loadImage(ListViewItem lvi, PictureBox pictureBox) {
string ext = Path.GetExtension(lvi.Text).ToLower();
if (ext == ".jpg" || ext == ".jpeg" || ext == ".bmp" || ext == ".png")
{
try { pictureBox.Load(Path.Combine(fullPath, lvi.Text)); }
catch { return; }
}
}
private void pictureBox2_Click(object sender, EventArgs e)
{
}
private void Form1_Resize(object sender, EventArgs e)
{
if (WindowState == FormWindowState.Minimized)
Hide();
notifyIcon1.BalloonTipTitle = "Программа была спрятана";
notifyIcon1.BalloonTipText = "Обратите внимание что программа была спрятана в трей и продолжит свою работу.";
notifyIcon1.ShowBalloonTip(5000); // Параметром указываем количество миллисекунд, которое будет показываться подсказка
}
private void notifyIcon1_MouseDoubleClick(object sender, MouseEventArgs e)
{
Show();
WindowState = FormWindowState.Normal;
}
private void menuStrip1_ItemClicked(object sender, ToolStripItemClickedEventArgs e)
{
}
private void listView1_SelectedIndexChanged_1(object sender, EventArgs e)
{
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment