Babybaer Geschrieben 29. September 2003 Geschrieben 29. September 2003 Hi Leutz, ich habe mal wieder ein Problem mit XP. Wenn man die Eigenschaften der Schnellstartenleiste aufruft (Taskleiste) gibt es das Klickfeld 'Schnellstartleiste anzeigen'. Genau dieses möchte ich über mein Programm steuern können. Leider weiß ich nicht wie. Hat jemand eine Idee. [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Streams\Desktop] "TaskbarWinXP" Das Problem ist ja nicht den RegKey zu überschreiben. Doch eigentlich schon (man versaut die ganze Schnellstartleiste). WindowsXP greift erst beim nächsten anmelden auf die Registry zu und somit wird meine Änderung erst beim nächsten Anmelden wirksam. Aber XP kann es auch und speichert die Änderung auch erst beim Abmelden in die Registry. Will das auch so machen können. Ich habe es auch schon mit Spy++ versucht die ID des Objektes zu bekommen. Keine Chance. HILFE Zitieren
Babybaer Geschrieben 29. September 2003 Autor Geschrieben 29. September 2003 Zur info habe jetzt das Handle doch bekommen, nur wird dieses Dynamisch erzeugt. SUPER Zitieren
Crush Geschrieben 29. September 2003 Geschrieben 29. September 2003 Ja, jetzt hast Du alle hier heiß gemacht... poste doch die Lösung für die Nachwelt, wie´s geht. Zitieren
Babybaer Geschrieben 29. September 2003 Autor Geschrieben 29. September 2003 Ja die Lösung habe ich noch nicht ganz, aber mit dem Spy++ von DotNet kann man das Fenster mit seinen ganzen Handles aufsplitten, bringt aber so eigentlich nix da XP bei jedem neu erzeugen des Fensters die Handle dynamisch vergibt. Also ich werde jetzt den Weg gehen über FindWindow und FindWinowEx für das Control. Und dann nach dem Namen des Contols suchen oder so. :-). Zitieren
Babybaer Geschrieben 29. September 2003 Autor Geschrieben 29. September 2003 Sch.... das kann doch nicht sein das es keine Doku dazu gibt, wie man die Funktionen des Fensters so steuern kann. Ich gebs auf. Zitieren
Crush Geschrieben 29. September 2003 Geschrieben 29. September 2003 Naja, ich hätte eigentlich noch 2 oder 3 kostenlose Fragen an die Microsoft-Developer-Hotline... aber das Problem ist mir dazu etwas zu banal =8-) Zitieren
SwordMaster Geschrieben 29. September 2003 Geschrieben 29. September 2003 hast dus schon mal versucht, dass du mit findwindows das handle auf die taskleiste findest und dann mit enumchildwindows die kind-fenster durchläuftst.... da müßte man dann doch eigentlich die schnellstart leiste auch finden (die uhranzeige hab ich so z.b. auch schon mal auf "SW_HIDE" setzen können) Cu SwordMaster Zitieren
Babybaer Geschrieben 30. September 2003 Autor Geschrieben 30. September 2003 Das haben ich schon versucht, nur möchte ich nichts an der Taskleiste ändern, nur die Option für die Taskleiste. Das geht aber so nicht. Jetzt versuche ich es mal so wenn ich es hinbekomme. Das Fenster aufrufen Hide setzten das richtige Control finden verändern schliessen Hat jemand noch eine Idee? Zitieren
Babybaer Geschrieben 1. Oktober 2003 Autor Geschrieben 1. Oktober 2003 Ja und jetzt die Lösung. Ist zwar kein C++ aber es wäre kein Thema es umzusetzt VBS-Code: --------------------------- Set WSHShell = WScript.CreateObject("WScript.Shell") Message = "Sicher?" X = MsgBox(Message, vbYesNo, "Notice") If X = 6 Then On Error Resume Next P1 = "HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\" 'Hier den Wert 0 für ON und 1 für OFF :-) WshShell.RegWrite p1 & "NoToolbarsOnTaskbar", 0, "REG_DWORD" On Error Goto 0 For Each Process in GetObject("winmgmts:"). _ ExecQuery ("select * from Win32_Process where name='explorer.exe'") Process.terminate(0) Next End If --------------------------- also das ist doch wohl nicht so schwer gewesen :marine Zitieren
SwordMaster Geschrieben 1. Oktober 2003 Geschrieben 1. Oktober 2003 Original geschrieben von Babybaer Ja und jetzt die Lösung. Ist zwar kein C++ aber es wäre kein Thema es umzusetzt dann setz mal um :D , mein vbs lässt zu wünschen übrig:( Zitieren
Babybaer Geschrieben 2. Oktober 2003 Autor Geschrieben 2. Oktober 2003 Original geschrieben von SwordMaster dann setz mal um :D , mein vbs lässt zu wünschen übrig:( Kein Thema Boy long CRegistry::SetRegValueInt (HKEY hKey, LPCTSTR subKey, LPCTSTR valueName, DWORD value) { long hr; HKEY regkey; hr = RegOpenKeyEx(hKey,subKey,0, KEY_SET_VALUE,®key); if (hr == ERROR_SUCCESS) { hr = RegSetValueEx(regkey, valueName, 0, REG_DWORD,(LPBYTE)&value, sizeof(DWORD) ); if(hr == ERROR_SUCCESS) { hr = RegCloseKey(regkey); } } return hr; } Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.