AGB  ·  Datenschutz  ·  Impressum  







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

Programme ausführen, Win+R

Ein Thema von netpilots · begonnen am 2. Apr 2013 · letzter Beitrag vom 4. Apr 2013
Antwort Antwort
netpilots

Registriert seit: 13. Nov 2004
Ort: Zürich
33 Beiträge
 
Delphi 6 Enterprise
 
#1

Programme ausführen, Win+R

  Alt 2. Apr 2013, 09:48
Hallo Experten

Ich möchte die Box wie sie kommt wenn man die Windows Taste und 'R' drückt aus eine Programm genau so erscheinen lassen.
Habe schon den Explorer mit seinen Parametern und auch RunDLL32 untersucht aber noch nichts gefunden.
Wie macht man das softwaremässig? 'Normale' Programm ausführen lassen funktioniert mit ShellExecute super, geht das auch für mein Wunsch wie beschrieben?

Notfalls könnte man den Tastendruck 'WinTaste' und 'R' simulieren, oder? Wie würde das aussehen?

Nachtrag: Mit einem Trick habe ich es bereitsch geschafft. Kopierte den Link Ausführen als Run.lnk und führte diesen mit ShellExecute aus.
Bei Win7 x64 ist der Link hier: C:\Users\[Benutzername]\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Accessories
Wenn man in den Link schaut sieht man explorer -7003 u.s.w. was mich nicht weiter brachte.
Gibt es eine elegantere Lösung als mit dem Trick über den Link?


Vielen Dank und freundliche Grüsse - Netpilots

Geändert von netpilots ( 2. Apr 2013 um 10:02 Uhr)
  Mit Zitat antworten Zitat
taveuni

Registriert seit: 3. Apr 2007
Ort: Zürich
535 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: Programme ausführen, Win+R

  Alt 2. Apr 2013, 10:11
Vielleicht so?
Die obige Aussage repräsentiert meine persönliche Meinung.
Diese erhebt keinen Anspruch auf Objektivität oder Richtigkeit.
  Mit Zitat antworten Zitat
mjustin

Registriert seit: 14. Apr 2008
3.010 Beiträge
 
Delphi 2009 Professional
 
#3

AW: Programme ausführen, Win+R

  Alt 2. Apr 2013, 10:13
Von der Kommandozeile aus geht es mit

c:\WINDOWS\system32\rundll32.exe shell32.dll,#61

Programmatisch get es mit IShellDispatch::FileRun laut How to open the Run window programmatically
Michael Justin
  Mit Zitat antworten Zitat
netpilots

Registriert seit: 13. Nov 2004
Ort: Zürich
33 Beiträge
 
Delphi 6 Enterprise
 
#4

AW: Programme ausführen, Win+R

  Alt 2. Apr 2013, 13:57
Programmatisch geht es auch so wie beschrieben.

Code:
 ShellExecute(Handle,'open', PChar('rundll32.exe'), PChar('shell32.dll, #61'), nil, SW_SHOWNORMAL);
Die anderen Hinweise werde ich auch noch durchlesen. Ist halt Cpp welches ich für Delphi 6 ändern müsste.
  Mit Zitat antworten Zitat
netpilots

Registriert seit: 13. Nov 2004
Ort: Zürich
33 Beiträge
 
Delphi 6 Enterprise
 
#5

AW: Programme ausführen, Win+R

  Alt 3. Apr 2013, 14:13
Es ist wie verhext. Der Ursprung der Frage ('Ausführen' zu öffen), liegt darin, dass wenn ich Regedit vom Programm aus ausführe, dieses nicht gleich reagiert wie wenn man Regedit separat ausführt. Mein Programm wird mit Administratorenrechte ausgeführt. Diese Rechte werden scheinbar an die daraus gestarteten Programme vererbt. Regedit fragt nicht nochmals nach den Rechten.

Beispiel: Die Eintragungen in HK_LM\Software\Microsoft\Windows\CurrentVersion\OE MInformation (Selbstvertändlich ohne die Umleitung nach \WOW6432Node wie das bei x64 Systemen auomatisch geschehen würde) funktioniert. OEMInfos werden auch in den Eigenschaften angezeigt. Die Inhalte lassen sich programmatisch auslesen.

Nun möchte ich aber mit Regedit in die Registry rein schauen. Regedit programmatisch geöffnet erscheinen keine Einträge in \OEMInformation, auch WOW6432Node ist nicht vorhanden. Die Darstellung der Registry erscheint so wie bei 32 Bit Systemen. Selbst dort müssten aber Werte im \OEMInformation stehen.
Starte ich Regedit ausserhalb der Anwendung selbst wird alles so angezeigt wie erwartet. Starte ich Regedit programmatisch mit dem zuvor beschriebenen Link zeigt es auch alles an wie erwartet. Mit dem zuvor gestarteten Link werden die Rechte nicht an Regedit vererbt, es fragt also nochmals danach. Ich dachte dass der Link die Rechte Erbt und genau so auch das daraus gestartete Regedit.
Hauptproblem ist aber die unterschiedliche Darstellung der Inhalte der Registry, je nachdem wie, resp. von wem, Regedit gestartet wurde.
Wer hat schon solche Beobachtungen gemacht?
  Mit Zitat antworten Zitat
Benutzerbild von Dalai
Dalai

Registriert seit: 9. Apr 2006
1.683 Beiträge
 
Delphi 5 Professional
 
#6

AW: Programme ausführen, Win+R

  Alt 3. Apr 2013, 14:27
Schau mal im Taskmanager nach, welche Variante der regedit.exe wirklich - je nach Methode - gestartet wird.

MfG Dalai
  Mit Zitat antworten Zitat
netpilots

Registriert seit: 13. Nov 2004
Ort: Zürich
33 Beiträge
 
Delphi 6 Enterprise
 
#7

AW: Programme ausführen, Win+R

  Alt 4. Apr 2013, 01:22
Dein Hinweis ist was Wert, vielen Dank.
Wenn es nicht funktioniert ist es der regedit.exe *32 ; also der 32 Bit im C:\Windows\SysWOW64 Verzeichnis.
Wenn alles richtig angezeigt wird ist es der im C:\Windows Verzeichnis : also die 64 Bit Ausführung.
Jetzt werde ich explizit den 64 Bit ausführen. Schreibe dann ob es wirklich daran lag. Ich bin mir jetzt schon sicher dass es so ist aber testen muss ich ja trotzdem.

Ich schreibs gleich hier als Nachtrag rein.
Es hat noch nicht so funktioniert wie ich möchte.
Dies funktioniert:
Registry Einträge in der, sagen wir mal x64 Registry, bearbeiten geht mit der Einleitung.
Code:
Reg := TRegistry.Create(KEY_ALL_ACCESS OR KEY_WOW64_64KEY);
Regedit (x64) ausführen klappt nicht. Beide Beispiele öffnen das 32Bit Regedit.

So erwartete ich dass Regedit x64 ausgeführt wird, tut es aber nicht.
Code:
ShellExecute(Handle,'open', PChar('C:\Windows\Regedit.exe'), nil, nil, SW_SHOWNORMAL);
So erwartete ich dass Regedit x86 ausgeführt wird, tut es wie erwartet, nützt mir aber nichts.
Code:
ShellExecute(Handle,'open', PChar('C:\Windows\SysWOW64\Regedit.exe'), nil, nil, SW_SHOWNORMAL);

Ist da was zu machen, so wie einem das mit TRegistry.Create(KEY_ALL_ACCESS OR KEY_WOW64_64KEY) gelingt?

Geändert von netpilots ( 4. Apr 2013 um 10:29 Uhr) Grund: Nachtrag
  Mit Zitat antworten Zitat
Antwort Antwort


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 08:41 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz