vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Zippen wie die Profis!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB & Windows API
Re: erneut shell execute 
Autor: didididi
Datum: 02.02.10 10:41

Hallo Namensvetter --------erstmals danke, dass du auf mein Problem eingehst.
Ja ich benutze Vista und das mit den Rechten hört sich plausibel an.
Ich kam nicht darauf weil ich den schellexecute Befehl zunächst aus Access (VBA) selbst auf eine andere DB ausprobiert hatte und das funktioniert hat. Jetzt aus einer .exe heraus eben nicht.
Ich werde mal schauen ob ich das über die Rechte irgendwie hinbekomme.

Grüsse Didi
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

erneut shell execute 
Autor: didididi
Datum: 01.02.10 15:41

ich habe mit visual basic ein kleines programm geschrieben welches mir eine Access-DB öffnen soll.
Bin ein wenig verzeweifelt, da shellexecute keine fehlermeldung ausgibt und der rückgabe wert imense Werte annimmt. (Milliardenbereich und grösser)
Ich übergebe der sub einen Pfad für die accdb-Datei oder ich codiere den pfad gleich mit aber das gleiche ergebnis. Das ganze unter vista

Hier mein Code:
Public Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" ( _
      ByVal hwnd As Long, _
      ByVal lpOperation As String, _
      ByVal lpFile As String, _
      ByVal lpParameters As String, _
      ByVal lpDirectory As String, _
      ByVal nShowCmd As Long) As Long
 
    Private Const SW_HIDE = 0
    Private Const SW_MAXIMIZE = 3
    Private Const SW_MINIMIZE = 6
    Private Const SW_NORMAL = 1
    Private Const SW_SHOW = 5
    Private Const SW_RESTORE = 9
    Private Const SW_SHOWMAXIMIZED = 3
    Private Const SW_SHOWMINIMIZED = 2
    Private Const SW_SHOWMINNOACTIVE = 7
    Private Const SW_SHOWNA = 8
    Private Const SW_SHOWNOACTIVATE = 4
    Private Const SW_SHOWNORMAL = 1
 
    Private Const ERROR_BAD_FORMAT = 11&
    Private Const SE_ERR_ACCESSDENIED = 5
    Private Const SE_ERR_ASSOCINCOMPLETE = 27
    Private Const SE_ERR_DDEBUSY = 30
    Private Const SE_ERR_DDEFAIL = 29
    Private Const SE_ERR_DDETIMEOUT = 28
    Private Const SE_ERR_DLLNOTFOUND = 32
    Private Const SE_ERR_FNF = 2
    Private Const SE_ERR_NOASSOC = 31
    Private Const SE_ERR_OOM = 8
    Private Const SE_ERR_PNF = 3
    Private Const SE_ERR_SHARE = 26
 
 
 
    Private Sub startt(ByVal da As String)
        Dim Retval As Long
 
        Retval = ShellExecute(0, "open", "c:\Bug.txt", "", "", SW_SHOWMAXIMIZED)
 
 
 
        Select Case Retval
            Case SE_ERR_NOASSOC
                MsgBox("Datei ist nicht Assizoiert", vbInformation, "Fehler")
                Exit Sub
            Case SE_ERR_PNF
                MsgBox("Pfad wurde nicht gefunden", vbInformation, "Fehler")
                Exit Sub
            Case SE_ERR_FNF
                MsgBox("Datei wurde nicht gefunden", vbInformation, "Fehler")
                Exit Sub
            Case 8, 26, 32, 28, 29, 30, 27, 5, 11 ' alle anderen Fehler
                Exit Sub
        End Select
 
    End Sub
???? Was ist da los?
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: erneut shell execute 
Autor: ModeratorDieter (Moderator)
Datum: 01.02.10 17:57

Bug.txt ist aber doch keine Access-DB ???

_________________________
Professionelle Entwicklerkomponenten
www.tools4vb.de

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: erneut shell execute 
Autor: didididi
Datum: 02.02.10 09:45

..ja klar, sorry, ich hab zwischenzeitlich mit anderen Dateien experimentiert um zu schauen ob es an Access liegt oder so... aber ich habe das gleiche Problem auch mit anderen Dateien..siehe Bug.txt
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: erneut shell execute 
Autor: ModeratorDieter (Moderator)
Datum: 02.02.10 09:47

Kann es sein, dass du Vista oder Windows 7 benutzt?
Wenn ja, kann das an fehlenden Rechten liegen.

_________________________
Professionelle Entwicklerkomponenten
www.tools4vb.de

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: erneut shell execute 
Autor: Ralf Schlegel
Datum: 02.02.10 11:32

Hallo,

ob und was bei einer übergebenen Datei gestartet wird hängt von der Registrierung der Dateiextension ab. Da gibt es schon mal ein Durcheinander, wenn verschiedene Programme eine Endung auf sich beziehen. Ausserdem gibt es noch einen Unterschied zwischen "open" und "edit":
So kann die Anwendung "A" z.B. zum Öffnen (open) eines Bildes registriert sein, die Anwendung "B" hingegen zum Bearbeiten (edit).
Am Besten läßt Du das Verb weg und überläßt dem System die Wahl:

Retval = ShellExecute(0, vbNullString, "c:\Bug.txt", vbNullString, vbNullString, SW_SHOWMAXIMIZED)

Beim Aufruf einer Datei wird dann entweder "open" oder "edit" ausgeführt, je nachdem, was als Default-Verb in der Registry steht.

Wenn es also nicht die "Rechte" sind, könnte das Problem auch an dieser Stelle liegen...

Gruß Ralf
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: erneut shell execute 
Autor: didididi
Datum: 02.02.10 12:41

Lieber Ralf vielen Dank für Deine Hinweise, werde ich heute abend probieren und berichten wie es lief.

Danke,

Didi
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2024 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel