Seite 1 von 1

ShellExecuteEx - gelöst

Verfasst: 28.09.2009 15:11
von uweb
Ich wollte eigentlich nur mal schnell etwas ausprobieren und suche schon wieder seit Stunden den Fehler.
Vielleicht sieht ihn ja einer von euch.
...
edit
Ich habe den Fehler selbst gefunden. Der war so peinlich, daß ich nur noch die Lösung stehen lasse.

Code: Alles auswählen

AppVerb$ = "open"
AppName$ = "notepad.exe"
AppDir$ = "c:\windows\"

 
shExecInfo.SHELLEXECUTEINFO


  shExecInfo\cbSize=SizeOf(SHELLEXECUTEINFO)
  shExecInfo\fMask=#SEE_MASK_NOCLOSEPROCESS
  shExecInfo\hwnd=#Null;
  shExecInfo\lpVerb=@AppVerb$ ; der Trick : "runas"  statt "explore","open" oder "print".
  shExecInfo\lpFile=@AppName$
  shExecInfo\lpDirectory=@AppDir$
  shExecInfo\nShow=#SW_SHOWNORMAL


If ShellExecuteEx_(shExecInfo)
  Debug "ShellExecuteEx war erfolgreich."
  Debug shExecInfo\hProcess
  Debug shExecInfo\hInstApp ; Instanzhandle der Anwendung oder Fehlercode
Else
  Debug "ShellExecuteEx war NICHT erfolgreich."
  Select shExecInfo\hInstApp
    Case #SE_ERR_ACCESSDENIED
      Debug "Zugriff verweigert"
    Case #SE_ERR_FNF
      Debug "Datei nicht gefunden"
    Case #SE_ERR_NOASSOC
      Debug "Datei ist mit keinem Programm verknüpft" 
    Default
      Debug "ShellExecuteEx-Fehler : "+Str(shExecInfo\hInstApp)
  EndSelect
EndIf

Re: ShellExecuteEx - gelöst

Verfasst: 28.09.2009 17:17
von Falko
Im Anfängerforum wäre es peinlich, aber bitte API-Sachen trotzdem hierher posten 8)

PS: Ich habe es mal hierher verschoben.

Gruß Falko

Re: ShellExecuteEx - gelöst

Verfasst: 28.09.2009 18:09
von hjbremer
sehr schön, aber was bedeutet der Trick ?

und was kann man damit machen, was RunProgramm nicht kann ?

Re: ShellExecuteEx - gelöst

Verfasst: 28.09.2009 18:33
von ts-soft
hjbremer hat geschrieben:sehr schön, aber was bedeutet der Trick ?

und was kann man damit machen, was RunProgramm nicht kann ?
Man kann den Verb ändern und Programm z.B. als Admin starten.


Aber warum ShellExecuteEx und nicht ShellExecute? Ist doch einfacher,
als alle Paras in einer Strukture zu übergeben.

Re: ShellExecuteEx - gelöst

Verfasst: 29.09.2009 09:29
von uweb
Wie gesagt: Ich wollte eigentlich nur schnell etwas ausprobieren.
Es ging eben darum ob sich durch ShellExecuteEx gegenüber ShellExecute bei meinem Problem (das sich mittlerweile erledigt hat) irgendwelche Probleme ergeben.
Dabei bin ich übrigens auf eine gute deutschsprachige Adresse mit api-infos gestoßen : http://www.vbarchiv.net/api/api_shellexecuteex.html