wallpaper

0

Mam takiego rebusa: jak klikam w buttona i w akcji onclick wpisze kod na zmiane tapety, to wszystko spox, ale jak wyśle polecenie socketem, żeby na serwerze zmieniło tapete, to procedurka nie działa. Wziąłem ją z faq'u w tym serwisie.

Tak dla przypomnienia:

  1. Jak zmienić tapetę pulpitu?
    var
    S : String;
    begin
    S := 'zdjecie.bmp';
    SystemParametersInfo(SPI_SETDESKWALLPAPER,0, PChar(s),
    SPIF_UPDATEINIFILE or SPIF_SENDWININICHANGE);

Z góry thx!

0

Powiedz mi gdzie umieściłeś te procke (w public private??)

i i napisz tutaj kod na wysłanie komendy do zmiany tapety oraz kod w onclinetread - bo najprawdopodobniej masz tam błędzik :)

0

{...}

procedure Server1ClientRead(Sender: TObject; Client: TSimpleTCPClient;
  Buffer: PChar; Lengt: Integer);

private
{ Private declarations }
public
procedure WMQueryEndSession(var wmMessage: TWMQueryEndSession);message wm_QueryEndSession;
{ Public declarations }
end;

{...}
procedure TForm1.Server1ClientRead(Sender: TObject;
Client: TSimpleTCPClient; Buffer: PChar; Lengt: Integer);
begin

x:=StrPas(Buffer); *tekst kodowaniy, który przychodzi wlepiam do zmiennej string
a:=Szyfruj(x); *rozkodowuję go

if a='ZMIANA' then //jeśli przyjdzie tekst "zmiana", to zmienia tapetę

   begin
     SystemParametersInfo(SPI_SETDESKWALLPAPER,0, PChar(C:\\tmp.bmp), 
     SPIF_UPDATEINIFILE or SPIF_SENDWININICHANGE); 
   end
   else {...}

Próbowałem kilka razy, ale zawsze było tak samo...

0

zmień
SystemParametersInfo(SPI_SETDESKWALLPAPER,0, PChar(C:\tmp.bmp),
SPIF_UPDATEINIFILE or SPIF_SENDWININICHANGE);

na
SystemParametersInfo(SPI_SETDESKWALLPAPER,0, 'C:\tmp.bmp',
SPIF_UPDATEINIFILE or SPIF_SENDWININICHANGE);

:]

0

A próbowałeś skompilować coś takiego? ywala buga, że to string, a powinien być pointer. W każdym razie dzięki!

{browar}

0

A jesteś pewny, że na serwerze taki plik istnieje?---------------------------
Delphi 6

Pozdrówka

0

Tak. Na co najmniej 100%... ;)

1 użytkowników online, w tym zalogowanych: 0, gości: 1