2 ytftdkjxkj ytftdkjxkj 于 2016.04.21 20:02 提问

vs2012 c# SystemParametersInfo 在win7下无法设置桌面背景

程序在win10下可用.在win7下一直返回值:0
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Runtime.InteropServices;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

    private void Form1_Load(object sender, EventArgs e)
    {
        int temp = SystemParametersInfo(20,0,"C:\\Windows\\Web\\Wallpaper\\img0.bmp",0);
        Console.WriteLine(temp);
    }


    [DllImport("user32.dll", EntryPoint = "SystemParametersInfo")]
    public static extern int SystemParametersInfo(
     int uAction,
     int uParam,
     string lpvParam,
     int fuWinIni
     );


}

}

在win10下正常.在WIN7下一直返回零,麻烦各位大神支个招

4个回答

ytftdkjxkj
ytftdkjxkj   2016.04.21 22:00

修改注册也只在WIN10有用.WIN7无用.真是奇了怪了

caozhy
caozhy   Ds   Rxr 2016.04.21 22:13
 "C:\\Windows\\Web\\Wallpaper\\img0.bmp"
这个图片存在么?
wq1282
wq1282   2018.07.17 15:48
    SystemParametersInfo(20, 0, strFile, SPIF_UpdateAndSend)
wq1282
wq1282   2018.07.17 15:48
'after Public Class class_name
Public Const SPI_SetWallpaper As Integer = &H14
'Win.ini flag values (intWinIniFlag)
Public Const SPIF_UpdateIni As Integer = 1
Public Const SPIF_SendIniChange As Integer = 2
Public Const SPIF_UpdateAndSend As Integer = SPIF_UpdateIni Or SPIF_SendIniChange '3
Public Const SPI_GETDESKWALLPAPER = &H73
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
[WIN32]SystemParametersInfo 可用于设置壁纸
函数原型 BOOL WINAPI SystemParametersInfo( _In_ UINT uiAction, _In_ UINT uiParam, _Inout_ PVOID pvParam, _In_ UINT fWinIni ); 参数 【uiAction】 该参数指定要查询或设置的系统级参数。其取值如下; Ac
使用C#制作的更换桌面背景程序
使用C#制作的更换桌面背景程序今天是周末,可是没什么地方去,所以有上网来了,突然发现了一篇用VB调用API来更换桌面的程序,我想既然VB可以C#也一定能行,所以就试着做了一下,好吧,来看看我的代码吧.一步一步来,你也能行.那还是先让我们来了解一个API吧,SystemParametersInfo,这个API的功能很简单就是通过一些参数的设置来完成对系统的一些外观设置.函数原
SystemParametersInfo的使用方法
<br /> <br /> <br />[DllImport("user32.dll", EntryPoint = "SystemParametersInfo")]<br />public static extern int SystemParametersInfo(<br />                                                int uAction,<br />                                                in
C#获取桌面壁纸图片的路径(Desktop Wallpaper)
<br />利用 Windows 的 API 获取桌面壁纸的实际路径,使用的是 SystemParametersInfo 这个API,此API的功能非常丰富,壁纸操作只是一斑 。<br />using System.Runtime.InteropServices;<br />[DllImport("user32.dll", CharSet = CharSet.Auto, SetLastError = true)] static extern bool SystemParametersInfo(uint
C# 实现设置桌面背景图片的功能
 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.
Qt: windows修改切换桌面背景的风格(居中,平铺,拉伸等).
在上一篇通过修改注册表的桌面背景图的路径,来改变桌面图的切换,但是没有说到桌面背景风格的切换问题. 桌面背景的风格通常有:填充 ,居中,适应,拉伸,平铺等显示风格.下面我们通过修改注册表来修改这些属性: 通过测试发现: 拉伸在注册表中的数值是2.适应是6,填充是10.而平铺和居中都是0.那么如何区分并设置平铺和居中呢? 原来在注册表中还有一个额外标识:TileWallpaper.它的值为0
SystemParametersInfo调用失败的问题
SystemParametersInfo 失败
systemparametersinfo详细用法
应一同学要求特把这api详之设置和取得windows系统参数,现在让我们详细地分析一下(其功能强大)下面一例取得work区procedure CenterWindow(winHnd : HWND; winWidth : Integer; winHeight : Integer);    var    screenDim : TRect;     screenLeft : Integer;   
实用批处理--更换桌面背景
"%userProfile%/Local Settings/Application Data/Microsoft/Wallpaper1.bmp"此为当前桌面背景完整路径。测试环境:XP SP2 ::复制更换桌面背景.bat::::将bmp格式图片拖入P中@echo offtitle 更换桌面背景cd/d %~dp0if /i %~x1==.BMP copy %1 "%userProfile%/
win7以上系统批处理修改注册表修改桌面背景图片
win7,win8,win10以上修改桌面背景图片工具实现