IsMethod() sagt .F. aber trotzdem funktioniert es ?

Nutzung, Komponenten, .NET

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

IsMethod() sagt .F. aber trotzdem funktioniert es ?

Beitrag von AUGE_OHR »

der folgende Code wirft eine CD / DVD (erfolgreich) aus.

das passiert indem ich die Method "invokeverb" aufrufe ... also muss es wohl die Method geben.
nun habe ich die Abfrage IsMethod() eingebaut aber die gibt immer .F. zurück ... aber die Schublade öffnet doch :roll:
was ist da los ? jemand eine Idee ?

Code: Alles auswählen

#include "Shfolder.ch" // ***
#include "COMMON.ch"
#PRAGMA LIBRARY( "ASCOM10.LIB" )

PROCEDURE MAIN(strDrive)
LOCAL oShell
LOCAL oFolder
LOCAL oDrive
   DEFAULT strDrive TO "W:\"      // CD-ROM

   oShell   := CreateObject("Shell.Application")
   oFolder  := oShell:NameSpace(CSIDL_DRIVES)    // ssfDRIVES = 0x11
   IF NIL <> oFolder
      oDrive := oFolder:callMethod("ParseName",strDrive)
      IF NIL <> oDrive
         // kein TONE() ... immer .F. ???
         IF IsMethod(oDrive,"invokeverb")
            TONE(1234)
         ENDIF
         IF IsMethod(oDrive,"InvokeVerb")
            TONE(1234)
         ENDIF
         IF IsMethod(oDrive,"InvokeVerbEx")
            TONE(1234)
         ENDIF

         // aber es geht doch ...
*        oDrive:callMethod("invokeverb","A&uswerfen")
         oDrive:invokeverb("A&uswerfen")
      ENDIF
   ENDIF
RETURN
*** https://msdn.microsoft.com/en-us/librar ... 85%29.aspx
gruss by OHR
Jimmy
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

Re: IsMethod() sagt .F. aber trotzdem funktioniert es ?

Beitrag von AUGE_OHR »

ich wundere mich das unter Windows 7 nichts passiert ... :-k
W7W.jpg
W7W.jpg (36.44 KiB) 4651 mal betrachtet
bei Auswerfen ist das W unterstrichen und nicht das U wie bei XP ...

Code: Alles auswählen

   IF OnOsVersion < 5
      oDrive:invokeverb("A&uswerfen")
   ELSE
      oDrive:invokeverb("Aus&werfen")
   ENDIF
gruss by OHR
Jimmy
Antworten