AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Speziellen Pfad in XP finden

Ein Thema von axelf98 · begonnen am 5. Aug 2004 · letzter Beitrag vom 6. Aug 2004
Antwort Antwort
Seite 2 von 2     12   
MathiasSimmack
(Gast)

n/a Beiträge
 
#11

Re: Speziellen Pfad in XP finden

  Alt 5. Aug 2004, 15:59
Es sind max. 6 Zeilen Mehr-Aufwand.
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#12

Re: Speziellen Pfad in XP finden

  Alt 5. Aug 2004, 16:00
Mir ist es egal, was du machst, ich habe dich nur auf mögliche Probleme mit deinem Code hingewiesen.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
MathiasSimmack
(Gast)

n/a Beiträge
 
#13

Re: Speziellen Pfad in XP finden

  Alt 5. Aug 2004, 16:08
Und das zurecht, Luckie!

Aber mir fällt gerade ein, dass es doch in der Open Source-Sparte ein ähnliches Programm gibt, dem es im Prinzip vollkommen egal ist, wo sich das Hintergrundbild befindet. Sprich: Mit den Pfaden brauchst du dich überhaupt nicht rumärgern. Hier ist der Originalbeitrag, hier eine Alternative samt Update. Reicht das nicht auch schon?
  Mit Zitat antworten Zitat
axelf98

Registriert seit: 27. Aug 2003
Ort: Ennepetal
440 Beiträge
 
Delphi 2005 Personal
 
#14

Re: Speziellen Pfad in XP finden

  Alt 5. Aug 2004, 16:14
Zitat von MathiasSimmack:
Aber mir fällt gerade ein, dass es doch in der Open Source-Sparte ein ähnliches Programm gibt, dem es im Prinzip vollkommen egal ist, wo sich das Hintergrundbild befindet. Sprich: Mit den Pfaden brauchst du dich überhaupt nicht rumärgern.
Ich habs mit allen in der DP verfügbaren Funktion probiert, aber keine lief bei mir, ausser man kopiert die als Bitmap konvertierte JPEG in dieses Verzichnis.

Im Anhang habe ich mein Programm, das aus dem Ordner in dem es sich befindet alle Jpgs sucht, durch Zufall eine Datei auswählt und als Hintergrund einstellt. Das Programm funktioniert wahrscheinlich nur unter WIN XP und WIN 2000, braucht dafür aber keine 8-Tasten Maus. 8)
Angehängte Dateien
Dateityp: zip hintergrund_aendern.zip (111,6 KB, 7x aufgerufen)
  Mit Zitat antworten Zitat
MathiasSimmack
(Gast)

n/a Beiträge
 
#15

Re: Speziellen Pfad in XP finden

  Alt 5. Aug 2004, 16:17
Was glaubst du, was das Programm im genannten Link macht? Es sucht ebenfalls alle Bitmaps (sofern ActiceDesktop unter 9x aktiv ist auch alle JPEGs) und lädt eine. Ich persönlich habe es unter 98 und XP getestet. Meine Version, natürlich. Keine Probleme.
  Mit Zitat antworten Zitat
axelf98

Registriert seit: 27. Aug 2003
Ort: Ennepetal
440 Beiträge
 
Delphi 2005 Personal
 
#16

Re: Speziellen Pfad in XP finden

  Alt 5. Aug 2004, 16:19
Ich wollte das Erlebnis haben dieses Problem selbst zu lösen
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#17

Re: Speziellen Pfad in XP finden

  Alt 5. Aug 2004, 16:27
Hast du ja auch. Nur eben nicht perfekt und Fehler anfällig.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
axelf98

Registriert seit: 27. Aug 2003
Ort: Ennepetal
440 Beiträge
 
Delphi 2005 Personal
 
#18

Re: Speziellen Pfad in XP finden

  Alt 5. Aug 2004, 16:32
Zitat von Luckie:
Hast du ja auch. Nur eben nicht perfekt und Fehler anfällig.
Schau dir mal den Code an.. Ich habs doch eingebaut und dürfte nicht mehr fehlerhaft sein!

Delphi-Quellcode:
program WechselHintergrund;

uses Windows,Sysutils,Graphics,Classes,Registry,JPEG,ActiveX,ShellAPI,ShlObj;

var
 Liste : Tstringlist;
 Zufall : Integer;
 bmp: TBitmap;
 mjpeg: TJpegImage;
 Datei: String;

Function ChangeWallpaper(FileName: String; Style: Integer): Boolean;
Var
  reg: TRegistry;
  wp: Array[0..$FF] Of Char;
Begin
  reg := TRegistry.Create;
  Try
    reg.RootKey := HKEY_CURRENT_USER;
    If reg.OpenKey('\Control Panel\desktop\', True) Then
    Begin
      If (Style = 1) Then
        reg.WriteString('TileWallpaper', '1')
      Else
        reg.WriteString('TileWallpaper', '0');
      reg.WriteString('WallpaperStyle', IntToStr(Style));
    End;
  Finally
    reg.Free;
  End;
  StrPCopy(wp, FileName);
  Result := SystemParametersInfo(spi_SetDeskWallpaper, 0, @wp, spif_UpdateIniFile);
End;

function GetAllFiles(mask: string): TStringlist;
{....}
end;

function GetSpecialFolder(hWindow: HWND; Folder: Integer): String;
var
  pMalloc: IMalloc;
  pidl: PItemIDList;
  Path: PChar;
begin
  // get IMalloc interface pointer
  if (SHGetMalloc(pMalloc) <> S_OK) then begin
    MessageBox(hWindow, 'Couldn''t get pointer to IMalloc interface.',
               'SHGetMalloc(pMalloc)', 16);
    Exit;
  end;

  // retrieve path
  SHGetSpecialFolderLocation(hWindow, Folder, pidl);
  GetMem(Path, MAX_PATH);
  SHGetPathFromIDList(pidl, Path);
  Result := Path;
  FreeMem(Path);

  // free memory allocated by SHGetSpecialFolderLocation
  pMalloc.Free(pidl);
end;
        //------------------------------------------------------------
  begin
 randomize;
 Liste := Tstringlist.create;
 Liste := GetAllFiles(Extractfilepath(ParamStr(0))+'*.jpg');
 if Liste.count = 0 then
   halt;

 Zufall := random(Liste.count);
 if fileexists(Liste[Zufall]) then
 begin
 try
  mjpeg := TJpegImage.Create;
  mjpeg.LoadFromFile(Liste[Zufall]);
  bmp:=TBitmap.Create;
  bmp.Assign(mjpeg);
  Datei := GetSpecialFolder(0,28) + '\Microsoft\Wallpaper1.bmp';
  bmp.SaveToFile(Datei);
  ChangeWallpaper(Datei,2);
  Liste.Free;
 except
  end;
 end;

end.
  Mit Zitat antworten Zitat
MathiasSimmack
(Gast)

n/a Beiträge
 
#19

Re: Speziellen Pfad in XP finden

  Alt 6. Aug 2004, 07:09
Zitat von axelf98:
Ich wollte das Erlebnis haben dieses Problem selbst zu lösen
Das ist sehr lobenswert. Wirklich! Nur wollte ich dir zeigen, dass du diesen Pfad nicht brauchst, mit dem du da hantierst. Und nur darum ging es. Niemand hat von dir verlangt, dass du dein Projekt einstellst und nun meins nimmst.

Zu deinem letzten Code-Posting würde ich sagen, benutze bitte nicht den Wert "28" für den Ordner. Kein Mensch, außer dir (weil du ihn gerade brauchst), weiß aus dem Kopf, was er bedeutet. Wofür gibt es denn die Konstanten wie CSIDL_APPDATA, usw.?
Das ist, mit Verlaub, der gleiche Unsinn, den ich bei Dialogboxen immer sehe. Anstelle der IMHO selbst erklärenden Konstanten wie
MB_YESNO or MB_ICONQUESTION or MB_DEFBUTTON2 werden die Werte zusammengerechnet, und zwei Monate später weiß man (ohne Ausprobieren des Programms) nicht mehr, was es bedeutet.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:38 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz