Öffnen

Anfängerfragen zum Programmieren mit PureBasic.
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

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.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
Captn. Jinguji
Beiträge: 397
Registriert: 07.06.2005 19:47
Computerausstattung: PB 4.73x64, i7, WIN 10x64, ATI NVidia RTX 2070
Wohnort: Witten

Beitrag von Captn. Jinguji »

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
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.

Einige dieser Formate kann ich aus PB mit
RunProgram("gaga.avi")
starten (gaga.avi ist natürlich nur EIN Beispiel), für andere muss ich ein

Code: Alles auswählen

RunProgram(vlc, AbsFileName, wdir)
basteln, obwohl alle per Mausclick direkt startbar sind.
Ist das Kunst hier, oder kann das weg ?
Benutzeravatar
remi_meier
Beiträge: 1078
Registriert: 29.08.2004 20:11
Wohnort: Schweiz

Beitrag von remi_meier »

@Captn.:
ShellExecute_(0,0, File,0,0,#SW_SHOW)
Benutzeravatar
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

Beitrag von ts-soft »

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.
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.
Bild
Benutzeravatar
remi_meier
Beiträge: 1078
Registriert: 29.08.2004 20:11
Wohnort: Schweiz

Beitrag von remi_meier »

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:
edit
explore
find
open
print
Wenn nun also "print" als Standard-Verb eingestellt wäre, würde der
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
a14xerus
Beiträge: 1440
Registriert: 14.12.2005 15:51
Wohnort: Aachen

Beitrag von a14xerus »

das problem liegt an XP
es gibt so viele verschiedene schlüssel die das verwalten, da geht immer einiges durcheinander, die icons stimmen bei mir schon nichtmehr, obwohl ich selber an der registry noch garnihct rumgepfuscht habe :freak:
Antworten