GRUNDSÄTZLICH!!! <- yes, mit drei Ausrufezeichen.
...würde ich davon abraten,
ein programm sich einfach mit irgendeinem format assoziieren zu lassen,
oder zumindest einen fetten "soll ich das tun"-requester einbaun,
solange es sich nicht um ein eigenes format handelt,
das ausschließlich von deinem programm benutzt wird.
ein programm, dass sich ohne zu fragen mit BMP assoziieren würde,
würde bei mir sofort wieder runterfliegen, und das auch nur,
weil es nicht schmerzempfindlich ist,
sonst würde ich es eine woche lang langsam zu tode quälen.
Öffnen
-
- Beiträge: 17389
- Registriert: 10.11.2004 03:22
- Captn. Jinguji
- Beiträge: 397
- Registriert: 07.06.2005 19:47
- Computerausstattung: PB 4.73x64, i7, WIN 10x64, ATI NVidia RTX 2070
- Wohnort: Witten
Kann sein, aber es muss da noch was anderes geben. Habe ich auch bei einem meiner Programme: auf OS Ebene kann ich Mediadateien anclicken, und der VLC spielt sie automagisch ab.Kiffi hat geschrieben:@Marvin,
gibt Reg_CreateKey() nicht auch ein Ergebnis zurück, aus dem man ermitteln
kann, ob das Anlegen des Schlüssels geklappt hat (ich nutze die pbi nicht)?
Wenn ja, dann solltest Du das Ergebnis entsprechend auswerten.
Grüße ... Kiffi
Einige dieser Formate kann ich aus PB mit
starten (gaga.avi ist natürlich nur EIN Beispiel), für andere muss ich einRunProgram("gaga.avi")
Code: Alles auswählen
RunProgram(vlc, AbsFileName, wdir)
Ist das Kunst hier, oder kann das weg ?
- remi_meier
- Beiträge: 1078
- Registriert: 29.08.2004 20:11
- Wohnort: Schweiz
- ts-soft
- Beiträge: 22292
- Registriert: 08.09.2004 00:57
- Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel - Wohnort: Berlin
Noch eine Kurzerklärung warum ShellExecute geht und RunProgram
manchmal nicht:
RunProgram nutzt in diesem Fall auch ShellExecute, aber immer mit "open"
als 2.ten parameter. Das funktioniert leider nicht mit allen Dateien,
wohingegen eine 0 als 2.ter parameter immer geht.
Warum PB dann "open" verwendet ist mir leider auch nicht bekannt.
manchmal nicht:
RunProgram nutzt in diesem Fall auch ShellExecute, aber immer mit "open"
als 2.ten parameter. Das funktioniert leider nicht mit allen Dateien,
wohingegen eine 0 als 2.ter parameter immer geht.
Warum PB dann "open" verwendet ist mir leider auch nicht bekannt.
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

- remi_meier
- Beiträge: 1078
- Registriert: 29.08.2004 20:11
- Wohnort: Schweiz
So wie ich das verstehe:
Wenn 0 übergeben wird, wird der/die/das "default-verb" ausgeführt. Dieses
kann man wohl in der Registry einstellen für jeden Dateityp. Zur Verfügung
stehen:
Parameter 0 dazu führen, dass gedruckt würde. Um das zu verhindern
wurde ev. "open" benutzt, welches laut Dokumentation das assoziierte
Programm aufrufen sollte.
Wenn ich einen Rechtsklick auf meine mit jaPBe zu öffnenden Files mache,
steht da "Bearbeiten", also default-Verb = "edit". Deshalb wird "open"
hier das falsche machen, da dort anscheinend die IDE registriert ist.
Edit:
Bsp:
Wenn 0 übergeben wird, wird der/die/das "default-verb" ausgeführt. Dieses
kann man wohl in der Registry einstellen für jeden Dateityp. Zur Verfügung
stehen:
Wenn nun also "print" als Standard-Verb eingestellt wäre, würde deredit
explore
find
open
Parameter 0 dazu führen, dass gedruckt würde. Um das zu verhindern
wurde ev. "open" benutzt, welches laut Dokumentation das assoziierte
Programm aufrufen sollte.
Wenn ich einen Rechtsklick auf meine mit jaPBe zu öffnenden Files mache,
steht da "Bearbeiten", also default-Verb = "edit". Deshalb wird "open"
hier das falsche machen, da dort anscheinend die IDE registriert ist.
Edit:
Bsp:
Code: Alles auswählen
ShellExecute_(0,"edit", "C:\256.pb",0,0,#SW_SHOW) ;öffnet jaPBe
ShellExecute_(0,0, "C:\256.pb",0,0,#SW_SHOW); jaPBe
ShellExecute_(0,"open", "C:\256.pb",0,0,#SW_SHOW);IDE