| |  | Online-Kurs: Grundlagen des 3D-Druck-Designs für Industrieingenieure , ein Kurs
|
Autor
|
Thema: Zeile von VB umschreiben?! (1524 mal gelesen)
|
Feyza Mitglied
  
 Beiträge: 605 Registriert: 12.01.2004 AutoCAD Mechanical 2014 / Windows Win7 / HP-UX / Oracle 10 VB6 / Visual Studio:NET2005 / .NET 2010 - Vb.net / Windows Server 2012, ASP.net
|
erstellt am: 04. Mai. 2004 17:50 <-- editieren / zitieren --> Unities abgeben:         
Hallo, Private Sub cmdÖffnen_Click() Dim dummy lblFehler.Caption = "Öffne " & filDateiAuswahl.FileName dummy = Shell("C:\Programme\MDT6\acad.exe " & filDateiAuswahl.Path & "\" & filDateiAuswahl.FileName, vbNormalFocus) End Sub Wie kann man diese Zeile umschreiben, damit er zuerst nachprüft, ob diese Anwendung schon offen ist, und wenn ja, soll er so machen, wie bei einem normelen Windows Explorer. Wenn man da eine Datei Doppelklickt, geht die Datei bei der offenen Anwendung auf. Danke Feyza Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
pablo Mitglied Techniker
 
 Beiträge: 453 Registriert: 23.01.2002
|
erstellt am: 05. Mai. 2004 07:19 <-- editieren / zitieren --> Unities abgeben:          Nur für Feyza
|
Feyza Mitglied
  
 Beiträge: 605 Registriert: 12.01.2004 AutoCAD Mechanical 2014 / Windows Win7 / HP-UX / Oracle 10 VB6 / Visual Studio:NET2005 / .NET 2010 - Vb.net / Windows Server 2012, ASP.net
|
erstellt am: 05. Mai. 2004 08:20 <-- editieren / zitieren --> Unities abgeben:         
Hallo Pablo, dies habe ich im Internet gefunden, nur irgendiwe erkennt mein Programm das ShellExecute nicht. Dim ret As Long 'To Accept Return Value ret = ShellExecute(Me.hwnd, "Open", gotos, "", App.Path, 1) 'The important part Bis dann Feyza
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
StefanBerlitz Ehrenmitglied V.I.P. h.c. IT Admin (CAx)

 Beiträge: 8756 Registriert: 02.03.2000 SunZu sagt: Analysiere die Vorteile, die du aus meinem Ratschlag ziehst. Dann gliedere deine Kräfte entsprechend und mache dir außergewöhnliche Taktiken zunutze.
|
erstellt am: 05. Mai. 2004 09:36 <-- editieren / zitieren --> Unities abgeben:          Nur für Feyza
Hallo Feyza, die ShellExecute ist eine Windows API (wie pablo geschrieben hat) und muss vorher im Codeteil deklariert werden:
Code:
Private 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
Ein komplettes Beispiel zum Öffnen via ShelklExecute findest du z.B. unter http://www.activevb.de/tipps/vb6tipps/tipp0416.html Ciao, Stefan ------------------ Inoffizielle deutsche SolidWorks Hilfeseite http://solidworks.cad.de KLAMM? Was ist KLAMM? [Diese Nachricht wurde von StefanBerlitz am 05. Mai. 2004 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Feyza Mitglied
  
 Beiträge: 605 Registriert: 12.01.2004 AutoCAD Mechanical 2014 / Windows Win7 / HP-UX / Oracle 10 VB6 / Visual Studio:NET2005 / .NET 2010 - Vb.net / Windows Server 2012, ASP.net
|
erstellt am: 05. Mai. 2004 17:29 <-- editieren / zitieren --> Unities abgeben:         
Hallo, Private Declare Function ShellExecute Lib "shell32.dll" Alias _ "ShellExecute" (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 Sub cmdÖffnen_Click() Dim dummy lblFehler.Caption = "Öffne " & filDateiAuswahl.FileName dummy = ShellExecute("C:\Programme\MDT6\acad.exe " & filDateiAuswahl.Path & "\" & filDateiAuswahl.FileName, vbNormalFocus) End Sub Hier bringt er mir den Fehler: Shellexecute ist nicht definiert. So geht es ja auch nicht: Private ...... nimmt er nicht 2 x bei einer Prozedur an. Private Sub cmdÖffnen_Click()
Private Declare Function ShellExecute Lib "shell32.dll" Alias _ "ShellExecute" (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 Dim dummy lblFehler.Caption = "Öffne " & filDateiAuswahl.FileName dummy = ShellExecute("C:\Programme\MDT6\acad.exe " & filDateiAuswahl.Path & "\" & filDateiAuswahl.FileName, vbNormalFocus) End Sub Kann man mir bitte noch ein kleinen Tip geben?! Danke Feyza Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
pablo Mitglied Techniker
 
 Beiträge: 453 Registriert: 23.01.2002
|
erstellt am: 06. Mai. 2004 08:54 <-- editieren / zitieren --> Unities abgeben:          Nur für Feyza
Hallo Feyza, du musst die Parameter korrekt übergeben. ret = ShellExecute(1, 2, 3, 4, 5, 6) 1= Windowshandle: me.hwnd 2= Operation: "Open" 3= Filename: filDateiAuswahl.Path & "\" & filDateiAuswahl.FileName 4,5 = vernachlässigbar: "", "" 6: 1 Das ganze ist in msdn, activevb.de usw erschöpfend erklärt, wenn du eine exe statt der hwnd übergibst kann es nicht funktionieren. pablo
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Feyza Mitglied
  
 Beiträge: 605 Registriert: 12.01.2004 AutoCAD Mechanical 2014 / Windows Win7 / HP-UX / Oracle 10 VB6 / Visual Studio:NET2005 / .NET 2010 - Vb.net / Windows Server 2012, ASP.net
|
erstellt am: 07. Mai. 2004 16:18 <-- editieren / zitieren --> Unities abgeben:         
Hallo, entschuldigt, aber irgendwie habe ich es immernoch nicht hinbekommen. Er bricht bei der Zeile, wo die ShellExecute ist, wieder ab. Private Declare Function ShellExecute Lib "shell32.dll" _ (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 Sub cmdÖffnen_Click() Dim dummy As Long lblFehler.Caption = "Öffne " & filDateiAuswahl.FileName dummy = ShellExecute(Me.hwnd, "Open", filDateiAuswahl.Path & "\" & filDateiAuswahl.FileName, "", "", 1) End Sub - - - - - - - - - - - - - - - - - - - - - - - - - Es kommt eine Microsoft Visual Basic Meldung: Laufzeitfehler '453': DLL-Einsprungpunkt ShellExecute in shell32.dll nicht gefunden - - - - - - - - - - - - - - - - - - - - - - - - -
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
pablo Mitglied Techniker
 
 Beiträge: 453 Registriert: 23.01.2002
|
erstellt am: 07. Mai. 2004 16:51 <-- editieren / zitieren --> Unities abgeben:          Nur für Feyza
Hallo feyza, - du hast das Alias "ShellExecuteA" weggelassen, das mag er nicht. - der Pfad einer Filelistbox ist bei Laufwerken D:\, bei Ordnern D:\Ordner, wenn deine Datei z.B. direkt in D:\ liegt, hast du einen Backslash zuviel. dim s as string if right(filDateiAuswahl.Path,1)= "\" then s= filDateiAuswahl.Path & filDateiAuswahl.FileName else s=filDateiAuswahl.Path & "\" & filDateiAuswahl.FileName end if pablo Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Feyza Mitglied
  
 Beiträge: 605 Registriert: 12.01.2004 AutoCAD Mechanical 2014 / Windows Win7 / HP-UX / Oracle 10 VB6 / Visual Studio:NET2005 / .NET 2010 - Vb.net / Windows Server 2012, ASP.net
|
erstellt am: 10. Mai. 2004 17:12 <-- editieren / zitieren --> Unities abgeben:         
|
| Anzeige.:
Anzeige: (Infos zum Werbeplatz >>)
 |