| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
Autor
|
Thema: ShellExecute (700 mal gelesen)
|
Theo37 Mitglied Techniker
Beiträge: 423 Registriert: 08.10.2008 ACAD 2019 WIN 7 64bit Intel Xenon CPU E5-1620 3.60GHz 16GB RAM
|
erstellt am: 14. Jul. 2010 14:46 <-- editieren / zitieren --> Unities abgeben:
Hallo an Alle, kann mir das da "unten" Jemand von VBA nach VB.NET übersetzen. Ich finde im Internet zwar viele Beispiele aber keines speziel für VB.NET Danke, Theo Option Explicit Dim thisway As String Dim lSuccess As Long Private Declare Function ShellExecute _ Lib "shell32.dll" Alias "ShellExecuteA" ( _ ByVal hWnd As Long, _ ByVal Operation As String, _ ByVal FileName As String, _ Optional ByVal Parameters As String, _ Optional ByVal Directory As String, _ Optional ByVal WindowStyle As Long = vbNormalFocus _ ) As Long Public Sub Window() thisway = ThisDrawing.Path thisway = thisway + "\" lSuccess = ShellExecute(0, "Open", thisway) End Sub Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Ex-Mitglied
|
erstellt am: 14. Jul. 2010 14:52 <-- editieren / zitieren -->
Hi, Ich verstehe nicht: mit der Zeile thisway = ThisDrawing.Path wird der Pfad Deiner aktuell geöffneten Zeichnung an die Variable übergeben, und mit ShellExecute(0, "Open", thisway) öffnest Du die Zeichnung, die aber schon geöffnet ist. Was also ist die Bedeutung dessen? - alfred -
------------------ www.hollaus.at |
Theo37 Mitglied Techniker
Beiträge: 423 Registriert: 08.10.2008
|
erstellt am: 14. Jul. 2010 15:18 <-- editieren / zitieren --> Unities abgeben:
Hallo Alfred, ich öffne nur ein Windows-Fenster mit dem Pfad in dem die aktuelle Auto-CAD Datei ist. Das ist notwendig weil die Ordnerstruktur bei uns leider sehr kompliziert ist. Aber Egal. Leider funktioniert es auf VBA aber nicht auf VB.NET. Kannst Du da einige Verbesserungen anbringen. Danke Theo Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Ex-Mitglied
|
erstellt am: 14. Jul. 2010 18:06 <-- editieren / zitieren -->
Hi, sorry, da hab ich wohl nicht genau gelesen. Dafür hier (ohne Fehlerhandling): Code: Dim tAcadDoc As ApplicationServices.Document = ApplicationServices.Application.DocumentManager.MdiActiveDocument Dim tPath As String = tAcadDoc.Database.Filename tPath = Left(tPath, InStrRev(tPath, "\")) Dim tRes As Integer = Shell("Explorer /root," & tPath, AppWinStyle.NormalFocus, False, 100) Debug.Print("Prozessnummer: " & tRes.ToString)
- alfred - ------------------ www.hollaus.at |
oscarr Mitglied CAD-Manager
Beiträge: 198 Registriert: 02.10.2007 ACA 2012 - English Win 7/x64
|
erstellt am: 14. Jul. 2010 18:25 <-- editieren / zitieren --> Unities abgeben: Nur für Theo37
Oder auch so: Code: <CommandMethod("Openthisway")> _ Public Sub Openthisway() Dim myDWG As Document = Application.DocumentManager.MdiActiveDocument Dim thisway As String = myDWG.Name thisway = thisway.Remove(thisway.LastIndexOf("\") + 1) If My.Computer.FileSystem.DirectoryExists(thisway) Then System.Diagnostics.Process.Start(thisway) End If End Sub
Schönen Feierabend Holger Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Theo37 Mitglied Techniker
Beiträge: 423 Registriert: 08.10.2008
|
erstellt am: 16. Jul. 2010 13:17 <-- editieren / zitieren --> Unities abgeben:
|