HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Desktop\General
значение Wallpaper
функция SPI_GETDESKWALLPAPER как получить параметр?
Как получить ссылку на используемый файл обоев с помощью этой функции?
Язык С#.
Это то, что у меня не работает :(
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.Runtime.InteropServices;
using System.Collections;
using Microsoft.Win32;
using System.Drawing.Imaging;
using System.IO;
using System.Xml;
namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
private const int SPI_GETDESKWALLPAPER = 0X0023;
[DllImport("USER32.DLL", EntryPoint = "SystemParametersInfo", SetLastError = true)]
private static extern int SystemParametersInfo(int uAction, int uParam, string lpvParam, int fuWinIni);
string alo;
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
SystemParametersInfo (SPI_GETDESKWALLPAPER, 0, (ВРОДЕ СЮДА ПАДАЕТ ИСКОМАЯ ИНФОРМАЦИЯ???), 0);
MessageBox.Show("Ошибочка вышла такая : " + alo);
}
}
}
а не проще из реестра вытащить это значение? и не париться с функцией :)
Цитата: Gammi
SystemParametersInfo (SPI_GETDESKWALLPAPER, 0, (ВРОДЕ СЮДА ПАДАЕТ ИСКОМАЯ ИНФОРМАЦИЯ???), 0);
}
Туда падает. Только там должен быть тобою выделенный буфер для символов, а его размер, в символах, нужно передать в последнем параметре, где сейчас 0.
Цитата: Gammi
День добрый!
Как получить ссылку на используемый файл обоев с помощью этой функции?
Как получить ссылку на используемый файл обоев с помощью этой функции?
В реестре путь к обоям лежит тут, кажется при условии включенного Active Desktop:
Код:
Цитата: Phodopus
Туда падает. Только там должен быть тобою выделенный буфер для символов, а его размер, в символах, нужно передать в последнем параметре, где сейчас 0.
Да! Точно! А ткните мне, пожалуйста, как разобраться теперь с буфером? И как определить его длину? С этим зверем я ещё не сталкивалсяю Заранее спасибо!
А насчёт реестра - так я ж не спорю - так тоже можно - но вот очень уж с winapi хочется разобраться!
Цитата: Gammi
А насчёт реестра - так я ж не спорю - так тоже можно - но вот очень уж с winapi хочется разобраться!
По спецификациям функции она возвращает не более MAX_PATH символов. Но, думаю в вашем случае хватит 4096 байт.
Кстати, программирование под .NET это не самый лучший способ постижения WinAPI. Под .NET платформенные вызовы возможны, но не особо приветствуются.