Seite 1 von 1

RunProgram() ?

Verfasst: 08.02.2009 03:35
von The_Dark_Zim-.-
Hey ho
Ich will den Befehl :
"RUNDLL32.EXE user32.dll,UpdatePerUserSystemParameters"
in RunProgram() ausführen.
Das scheint aber aufgrunt der dll nicht zu gehen.

Wie kann ich das umgehen oder anders machen ?
Im mom schreibt ich das immer in eine *.bat aber das nervt, weil dann immer cmd aufgeht.

Gruß ZIM

Verfasst: 08.02.2009 09:57
von Bisonte
mit dem Flag #PB_Program_Hide erscheint kein CMD Fenster... Siehe (F1) PB-Hilfe...

Verfasst: 08.02.2009 16:53
von The_Dark_Zim-.-
Danke an Bisonte
Hab deine lösung nicht getestet wird sicherlich auch gehen ^^

Hab stattdessen das benutzt:

Code: Alles auswählen

Procedure.s GetSystemDirectory()
  Path.s=Space(501)
  GetSystemDirectory_(@Path,500)
  ProcedureReturn Path
EndProcedure

RunProgram("rundll32.exe", "user32.dll,UpdatePerUserSystemParameters", GetSystemDirectory() , 0) 
Code von hier : http://board.gulli.com/thread/1314238-d ... l-ndern/2/

Gruß ZIM

Verfasst: 08.02.2009 16:57
von Kaeru Gaman
mal ne blöde Frage....

warum kein Import auf die Funktion und direkt aufrufen?
warum über die rundll32.exe?

Verfasst: 10.02.2009 14:26
von The_Dark_Zim-.-
Wie würde das denn gehen ?
Kannst ja mal Code schicken ;)

Gruß ZIM

Verfasst: 13.02.2009 14:49
von The_Dark_Zim-.-
Hey Ho
Der Code :

Code: Alles auswählen

Procedure.s GetSystemDirectory()
  Path.s=Space(501)
  GetSystemDirectory_(@Path,500)
  ProcedureReturn Path
EndProcedure

RunProgram("rundll32.exe", "user32.dll,UpdatePerUserSystemParameters", GetSystemDirectory() , 0) 
Scheint unter Vista nicht zu laufen... Wie könnte ich das zum laufen bekommen ?

Gruß ZIM

Verfasst: 13.02.2009 14:59
von ts-soft
> Wie könnte ich das zum laufen bekommen ?
Ich kann die Funktion in der DLL nicht finden, also wohl eher garnicht. Was
soll es denn machen?

Verfasst: 13.02.2009 17:54
von The_Dark_Zim-.-
@ts-soft
es soll das hintergrundbild aktuallisieren ;)

so gehts unter Vista:

Code: Alles auswählen

CreateFile(0,"refresh.bat")
WriteString(0,"RUNDLL32.EXE user32.dll,UpdatePerUserSystemParameters")
CloseFile(0)
RunProgram("refresh.bat")
Delay(500)
DeleteFile("refresh.bat")
Kann man das nicht anders machen ?

Verfasst: 18.02.2009 16:46
von The_Dark_Zim-.-
Hey Ho hab gerade noch ein wenig getestet. Scheinabr geht das doch.

Code: Alles auswählen

Procedure.s GetSystemDirectory()
  Path.s=Space(501)
  GetSystemDirectory_(@Path,500)
  ProcedureReturn Path
EndProcedure

RunProgram("rundll32.exe", "user32.dll,UpdatePerUserSystemParameters", GetSystemDirectory() , 0) 
Irgentwie muss ich es aber erst mit einem *.BMP machen, ist aber sicher ein bug in meiner software.

Gruß ZIM