RunShell / ShellExecute / BAT / CMD / Total Command

Sonstiges (nicht kategorisierbar)

Moderator: Moderatoren

Antworten
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12903
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 44 Mal

RunShell / ShellExecute / BAT / CMD / Total Command

Beitrag von AUGE_OHR »

hi,

wenn ich unter Win7 und höher

Code: Alles auswählen

RunShell("","Regedit.EXE",.T., .F.)
aufrufe bekomme ich, auch als Administrator, eine Fehlermeldung (Absturz) wegen "fehlender Rechte". :banghead:

mit diesem Code

Code: Alles auswählen

   lSuccess := DllCall( "SHELL32.DLL"  , DLL_STDCALL, ;
            "ShellExecuteA", AppDesktop():GetHWND(), "open",0, "c:\WINDOWS\regedit.exe",;
            0, CurDir(), SW_NORMAL )
öffnet er (jedes mal :( ) die Dialogbox zur Eingabe des Administrator Passwort.

wenn ich nun ein Manifest mit dem Abschnitt

Code: Alles auswählen

  <!-- Identify the application security requirements. -->
  <trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
    <security>
      <requestedPrivileges>
        <requestedExecutionLevel
          level="requireAdministrator"
          uiAccess="false"/>
        </requestedPrivileges>
       </security>
  </trustInfo>
verwende dann fragt er nur am Anfang ein mal nach dem Passwort.

Ich kann aber als User in der CMD Box "Regedit.EXE" eingeben ohne das er Administrator Rechte verlangt ... was ist der Unterschied :?:

---

leider funktioniert

Code: Alles auswählen

RUNDLL32 SHELL32.DLL,Control_RunDLL hotplug.dll
nicht "richtig" unter Windows 8.1/10.
man bekommt zwar die Dialogbox und kann auch alles mögliche "auswerfen" aber kein USB-Drive / Stick :banghead:

ich habe nun eine Xbase++ App welches mir ein USB Laufwerk "auswerfen" soll ... was es auch tut aber
XP/Win7: Ballontip, Logfile, TONE und kein XppFatal.LOG.
Win8.1/10 : ok (ohne MsgBox) wenn aus Explorer, TC oder CMD mit LBDRIVE.EXE gestartet.

wenn aus CMD/BAT oder dem Total Commander ( Icon Taskbar )
Logfile, TONE und stürzt dann ab mit XppFatal.LOG :shock:

Code: Alles auswählen

   IF PCOUNT() > 1
      GetLogFile()
   ENDIF
   TONE(1234)
   QUIT // <- hier stürzt er ab mit XppFatal.LOG ???
RETURN
zugegeben wird der Fehler wohl schon vorher stattgefunden haben ( falsche Structure ) und wirkt sich hier erst aus wegen ... :?:
Dateianhänge
LBDRIVE.ZIP
v1.9.355
(53.84 KiB) 301-mal heruntergeladen
gruss by OHR
Jimmy
Antworten