Moin. Ich möchte über schaltflächen ein paar programme starten. leider ist mir das bei 5 von 20 nicht direkt gelungen so dass ich hier mit einer verknüpfung arbeiten musste. Das soll sich nun ändern:smile:
Ich möchte über schaltflächen ein paar programme
starten. leider ist mir das bei 5 von 20 nicht direkt gelungen
so dass ich hier mit einer verknüpfung arbeiten musste. Das
soll sich nun ändern:smile:
Auszuführen in C:\Programme\Nokia\Nokia Managers\AXC
Wie man Shell verwendet und Parameter übergibt, scheinst Du ja zu wissen. Mit Leerzeichen im Pfad macht das Probleme, weil alles nach dem Leerzeichen als Parameter interpretiert wird.
Abhilfe schafft ein einzelnes CHR(34) vor dem String.
Handle = Shell (Chr(34) & „Pfad mit Leerzeichen Parameter“)
Wie kann ich sowas direkt aus VB starten ?
Problem nr 2 :
C:\DCStandalone\client\dc.vbs
Auszuführen in C:\DCStandalone\client
da kann ich nicht helfen. win32keyword habe ich noch nie
gehört.
Hallo Rainer,
scheint eine (selbstgeschriebene?) Funktion zu sein die die API Shellexecute benutzt um lnk-Dateien zu starten.
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
Public Function Win32Keyword(ByVal URL As String) As Long
ShellExecute 0&, vbNullString, URL, vbNullString, vbNullString, vbNormalFocus
End Function
Sub Main()
Win32Keyword („c:\Microsoft Word.lnk“)
End Sub
scheint eine (selbstgeschriebene?) Funktion zu sein die die
API Shellexecute benutzt um lnk-Dateien zu starten.
aha, OK. Der Sinn erschließt sich mir allerdings nicht, da
kann ich doch auch gleich selbst Shellexecute nehmen.
Hallo Rainer,
ich habe mal für das Archiv den Betreff geändert, vielleicht freut das ja mal einen/eine.
Und ja, Sinn des Ganzen habe ich auch nicht verstanden, war mir aber nicht sicher ob ich da was übersehen habe was vielleicht Sinn macht um ShellExecute nicht direkt zu benutzen.
AHa, Ok … hmpf
Ich kann also mit Shellexecute auch ein *.lnk öffnen… Da frage ich micht warum ich immer das win32keyword verwende … wahrscheinlich weil ich es nicht besser wusste…
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
Ich kann also mit Shellexecute auch ein *.lnk öffnen…
ich habe das noch nie versucht, nie gebraucht.
Da frage ich micht warum ich immer das win32keyword verwende …
Das verwendet ja auch nur Shellexecute, aber mit voreingestellten Parametern. Mit Shellexecute bist Du felxibler. Testen kann ich aber vor nächste Woche nichts, deshalb kein Code von mir. Ich sitze immer noch am iMac.
In den FAQ findest Du den Link zu API Guide. Ich kopiere meist auch nur von da und ändere etwas.
ich habe WinXP und VB5.0, schicke mir den Code wenn ich was
testen soll in VB.
was ich in der Deklaration von Shellexecute nicht aus dem Kopf weiß, ist der sinn von … ByVal lpOperation As String …
Die Funktion übergibt da nur einen leeren String. Was man damit mehr anfangen kann, wenn man Shellexecute direkt verwendet, weiß ich im Moment nicht. Der Rest ist klar, eine Variable für das zu startende Programm, eine für Parameter, also die zu übergenebde Datei, einer für den Pfad zum Programm, einer für die angabe, wie das Programm geöffnet werden soll, also mit oder ohne Focus, minimiert, normal oder maximiert.
Wozu man ein Handle angeben kann ist mir auch nicht klar. Vermutlich, falls das Programm schon läuft, um es nicht noch einmal zu starten sondern nur Parameter zu übergeben. Das ist aber nur geraten, wäre so etwas, was ich ausprobieren würde.
Es gab einen ganz einfachen weg aus einem Dateipfad nur den Pfad ohne datei anzeigen zu lassen… ich finde es aber gerade nicht…
also aus C:\Temp\Töömp\test.exe
würde ich gern den pfad haben…
Es gab einen ganz einfachen weg aus einem Dateipfad nur den
Pfad ohne datei anzeigen zu lassen… ich finde es aber gerade
nicht…
also aus C:\Temp\Töömp\test.exe
würde ich gern den pfad haben…
hallo Joe,
vielleicht so:
Sub tt()
Const PfadDatei As String = „C:\test\killall.exe“
MsgBox Left(PfadDatei, InStrRev(PfadDatei, „“) - 1)
End Sub
Und, du fragst hier häufig nach, was ja dein gutes Recht ist, ich blicke da aber nicht durch was du da so alles „Basteln“ willst.
Irgendwie sind das immer verschiedene Dinge wo man ohne ezug nicht dahintersteigt was du da vorhast.
Wenn es es sich also bei dir nicht um 20 Projekte handelt sondern nur um nur zwei größere, dann beschreib die mal, also die Ziele, Absichten, vielleicht kann dir da Rainer besser, also gezielter helfen.
ich habe WinXP und VB5.0, schicke mir den Code wenn ich was
testen soll in VB.
was ich in der Deklaration von Shellexecute nicht aus dem Kopf
weiß, ist der sinn von … ByVal lpOperation As String …
Das besagt schon die Variable. Dort kannst du angeben, welche Operation ausgeführt werden soll!
Mal auf die schnelle aus der MSDN kopiert
edit
Launches an editor and opens the document for editing. If lpFile is not a document file, the function will fail.
explore
Explores a folder specified by lpFile.
find
Initiates a search beginning in the directory specified by lpDirectory.
open
Opens the item specified by the lpFile parameter. The item can be a file or folder.
print
Prints the file specified by lpFile. If lpFile is not a document file, the function fails.
NULL
In systems prior to Windows 2000, the default verb is used if it is valid and available in the registry. If not, the "open" verb is used.
In Windows 2000 and later, the default verb is used if available. If not, the "open" verb is used. If neither verb is available, the system uses the first verb listed in the registry.
Die Funktion übergibt da nur einen leeren String.
Dann wird automatisch die Operation „Open“ ausgeführt
Ich hatte hier glaube mal eine Funktion „LanchDocument“ geposet( mit netten Spielereien etc.). Dort wurde alles automatisch gemacht. Hast du sie nicht mit in die FAQ übernommen?
was ich in der Deklaration von Shellexecute nicht aus dem Kopf
weiß, ist der sinn von … ByVal lpOperation As String …
Das besagt schon die Variable. Dort kannst du angeben, welche
Operation ausgeführt werden soll!
OK …
Ahhh, OK, klar.
Die Funktion übergibt da nur einen leeren String.
Dann wird automatisch die Operation „Open“ ausgeführt
Ich hatte hier glaube mal eine Funktion „LanchDocument“
geposet( mit netten Spielereien etc.). Dort wurde alles
automatisch gemacht. Hast du sie nicht mit in die FAQ
übernommen?
Das habe ich bestimmt, aber wieder vergessen.
Was man nicht verwendet verschwindet wieder aus dem Gedächtnis. Ohne übung geht’s nicht.
Ahoi,
es handelt sich um genau zu sein um 1 Projekt. Ein Tool was mir und meinen Kollegen die arbeit erleichtern soll und in einer älteren Version das auch schon tut.
Es ist eine Form mit mehreren Schaltflächen die erstmal nur programme starten … Das soll den Desktop etwas aufräumen. Dazu gibt es mehrere Suchfunktionen die Daten aus Exportieren Listen, also aus verschiedenen Datenbanken grafisch sinvoll darstellen. Diese funktionen sind alle soweit schon da, aber es gibt noch die eine oder andere Sache die Optimiert werden kann, fehler abfangen, Suchen Optimieren … und und. die frage hier bezieht sich auf die Schaltflächen die nun auch frei konfiguriert werden können. Allerding habe ich das problem das wenn jemand einen Dateipfad über File1, Dir1 (Objekte oder Funktionen ?) auswählt die PArameter noch nicht berücksichtig sind. Diese werde ich nun aber über ein einfach TExtfeld mit in das Shellexecute mit einbinden.
Ich stehe wie immer tief in eurer schuld
Sollte jemand lange weile haben such ich noch einen weg einen Gateway eintrag über WMI zu löschen.