| |
VB & Windows APIRe: 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 | |
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? | |
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 | |
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 | |
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 | |
| 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 |
|
|
vb@rchiv CD Vol.6 vb@rchiv Vol.6
Geballtes Wissen aus mehr als 8 Jahren vb@rchiv!
Online-Update-Funktion Entwickler-Vollversionen u.v.m.Jetzt zugreifen Tipp des Monats Neu! sevCoolbar 3.0
Professionelle Toolbars im modernen Design!
Mit sevCoolbar erstellen Sie in wenigen Minuten ansprechende und moderne Toolbars und passen diese optimal an das Layout Ihrer Anwendung an (inkl. große Symbolbibliothek) - für VB und MS-Access Weitere Infos
|
|
|
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
|
|