Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: 6322
Последний выпуск: 19.06.2015

функция SPI_GETDESKWALLPAPER как получить параметр?

42K
09 сентября 2008 года
Gammi
2 / / 09.09.2008
День добрый!
Как получить ссылку на используемый файл обоев с помощью этой функции?
Язык С#.
Это то, что у меня не работает :(



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);

}
}
}
9.0K
10 сентября 2008 года
t-34
129 / / 30.11.2007
а не проще из реестра вытащить это значение? и не париться с функцией :)
14
10 сентября 2008 года
Phodopus
3.3K / / 19.06.2008
Цитата: Gammi

SystemParametersInfo (SPI_GETDESKWALLPAPER, 0, (ВРОДЕ СЮДА ПАДАЕТ ИСКОМАЯ ИНФОРМАЦИЯ???), 0);
}



Туда падает. Только там должен быть тобою выделенный буфер для символов, а его размер, в символах, нужно передать в последнем параметре, где сейчас 0.

5
10 сентября 2008 года
hardcase
4.5K / / 09.08.2005
Цитата: Gammi
День добрый!
Как получить ссылку на используемый файл обоев с помощью этой функции?


В реестре путь к обоям лежит тут, кажется при условии включенного Active Desktop:

 
Код:
HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Desktop\General
значение Wallpaper
713
10 сентября 2008 года
Ap0k
360 / / 13.03.2006
pinvoke.net: SystemParametersInfo
42K
11 сентября 2008 года
Gammi
2 / / 09.09.2008
Цитата: Phodopus
Туда падает. Только там должен быть тобою выделенный буфер для символов, а его размер, в символах, нужно передать в последнем параметре, где сейчас 0.


Да! Точно! А ткните мне, пожалуйста, как разобраться теперь с буфером? И как определить его длину? С этим зверем я ещё не сталкивалсяю Заранее спасибо!


А насчёт реестра - так я ж не спорю - так тоже можно - но вот очень уж с winapi хочется разобраться!

5
11 сентября 2008 года
hardcase
4.5K / / 09.08.2005
Цитата: Gammi
А насчёт реестра - так я ж не спорю - так тоже можно - но вот очень уж с winapi хочется разобраться!


По спецификациям функции она возвращает не более MAX_PATH символов. Но, думаю в вашем случае хватит 4096 байт.

Кстати, программирование под .NET это не самый лучший способ постижения WinAPI. Под .NET платформенные вызовы возможны, но не особо приветствуются.

Знаете кого-то, кто может ответить? Поделитесь с ним ссылкой.

Ваш ответ

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог