PureFileMaster ein TotalCMD-Clone Released! (Version 3)

Anwendungen, Tools, Userlibs und anderes nützliches.
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 »

Hier mal ein kurzes Snippet, damit meine commandleiste endlich kommt :wink:

Code: Alles auswählen

If OpenWindow(0, #PB_Ignore, #PB_Ignore,  640, 27, "")
  AddKeyboardShortcut(0, #PB_Shortcut_Return, 0)
  CreateGadgetList(WindowID(0))
  ComboBoxGadget(0, 3, 3, 634, 100, #PB_ComboBox_Editable)
  
  Repeat
    Select WaitWindowEvent()
      Case #PB_Event_CloseWindow
        Break
      Case #PB_Event_Menu
        Select EventMenu()
          Case 0
            If GetActiveGadget() = 0
              ;SetCurrentDirectory(bla)
              AddGadgetItem(0, -1, GetGadgetText(0))
              WinExec_(GetGadgetText(0), #SW_SHOWNORMAL)
            EndIf
        EndSelect
    EndSelect
  ForEver
EndIf
Viel fehlt nicht :mrgreen:

Gruß
Thomas
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
al90
Beiträge: 1101
Registriert: 06.01.2005 23:15
Kontaktdaten:

Beitrag von al90 »

ts-soft hat geschrieben:Hier mal ein kurzes Snippet, damit meine commandleiste endlich kommt :wink:
Hatte ich sogar schonmal drinn. Sah aber gräßlich aus, da habe ich sie wieder
rausgenommen und durch den Menü-Entry ersetzt. :)

Aber trotzdem ein Interessanter vorschlag. Frage; Wieso benutzt du eigentlich WinExec_() ? Was ist eigentlich daran anders als an RunProgram() ?
Ich meine weil "Öffnen mit..." erscheint damit ebenfalls nicht. Oder hat es andere vorzüge ?
Ich glaub ich muss mich mal endlich ein WinAPI-Buch zulegen. :mrgreen:
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 »

Ich kann "notepad" eintippen, oder "notepad c:\windows\mylog.log"
Du brauchst nichts zu parsen.
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
al90
Beiträge: 1101
Registriert: 06.01.2005 23:15
Kontaktdaten:

Beitrag von al90 »

Ja das ist mir schon klar. Braucht man bei RunProgram ja auch nicht.
Was ich aber meinte ist das wenn z.b. eine Datei mit dem Namen MyFile.xyz
geöffnet wird, dann erscheint kein Öffnen mit... , Dateityp .XYZ hat keine zuordnung...
oder blablabla was weis ich was da nochmal angezeigt wird.
Ich dachte immer es wäre über API machbar.
Übrigens ist mir nochwas aufgefallen: Wenn ich ein PB-Source öffne, dann
startet Windows immer die original IDE statt jaPBe. Unter Windows selbst
oder TC tritt dieses problem nicht auf. Woran könnte das liegen ?
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 »

PB nutzt ShellExecute mit "open" parameter, Du wahrscheinlich mit 0. jaPBe
ist ja nur als Default eingetragen, aber nicht "open", weil dies ja den PB
Eintrag überschreiben würde.

Zu WinExec:
Bei RunProgramm kannste das Programm, evtl. mit Pfad und Parameter
nicht in einer Zeile schreiben, sind dann mindestens 3 Parameter.
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
al90
Beiträge: 1101
Registriert: 06.01.2005 23:15
Kontaktdaten:

Beitrag von al90 »

Hab das ganze grade nochmal genauer getestet.

Folgendes:

PB4.02 befindet sich in C:\Programme\PureBasic\
PB3.94 befindet sich in C:\Programme\PureBasic394\

Doppelklick auf Sources (unter PFM) öffnet die 3.94 IDE
Doppelklick auf Sources (unter TC) öffnet jaPBe wie gewollt.

Benenne ich jetzt den Ordner von PB394 um, dann kommt unter PFM
die meldung "Öffnen mit..." Nun hacke ich die CheckBox mit
inhalt "Datei immer damit öffnen" an. Klappt soweit gut. Allerdings
kommt diese frage jetzt immer wenn ich ein PB-Source Doppelklicke.
Also irgendwo spinnt da mein Windows. Hab den 3.94 Ordner wieder
zurück umbenannt. Jetzt startet wieder immer nur die 3.94 IDE. :?
Ich meine das ganze dürfte doch normal nicht passieren, oder ?
Ein einmaliges anhacken der Checkbox müsste IMHO reichen. :?:
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 »

Du darfst nicht RunProgram nutzen, sondern

Code: Alles auswählen

ShellExecute_(0, 0, "...bla.pb", 0, 0, #SW_SHOWNORMAL)
PB nutzt für RunProgram als 2ten Parameter nicht 0 sonder "open", das geht
mit jaPBe nicht, weil jaPBe nicht als open registriert ist, sonder als edit aber
Default :D
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
al90
Beiträge: 1101
Registriert: 06.01.2005 23:15
Kontaktdaten:

Beitrag von al90 »

Ok werde mir das mit Exec mal genauer anschauen. Bin immer davon ausgegangen
das bei 'Checkbox = aktiv' auch immer komplett von Windows registriert wird.
Naja man lernt nie aus. Kurriositätenkabbinet. :freak: :lol:
Benutzeravatar
al90
Beiträge: 1101
Registriert: 06.01.2005 23:15
Kontaktdaten:

Beitrag von al90 »

Hallo Leute,

Ich bin sauer, verflucht sauer sogar. :angry:

Folgendes:

Derzeit arbeite ich an der FTP integrierung. Soweit klappt auch alles bestens.
Ich kann in Dirs rumklicken, UnterDirs aufrufen, oder bspw. bis zum Root
zurückkehren. FtpRename & FtpCreateDirectory ist bereits voll einsatzfähig.

Allerdings gibt es ein DICKES PROBLEM.; Ich kann nicht in neu angelegte
Verzeichnisse klicken.
Dabei versagt immer die FtpFindFirstFile_() funktion und gibt immer #False zurück. :evil:
Bei allen anderen Dirs die schon vorhanden waren klappt alles Fehlerfrei. Ich bin deswegen
schon total angenervt und spiele schon mit dem gedanken aufzugeben und auf eine FTP option
zu verzichten. :? Ich komme eben einfach nicht weiter und habe deshalb sogar schon
NortonAntivirus durch Avira wieder ersetzt, da ich zunächst glaubte es läge daran.
Aber Fehlanzeige. Es will einfach nicht klappen. Ich bin mit meinem lataein am ende. >_<

Jetzt war ich schon so weit und muss es warscheinlich aufgeben. Sehr serh schade. :cry:

Hier mal schnell die routine zum erstellen von FTP-Dirs.

Code: Alles auswählen

Procedure.l CreateDirectoryFTP(verz$)
  ProcedureReturn FtpCreateDirectory_(hConnect,@verz$)
EndProcedure
FTP Öffne ich so:

Code: Alles auswählen

      hInternet=InternetOpen_("FTP",1,"","",0)
      hConnect=InternetConnect_(hInternet,Servername$,port,Username$,Password$,1,0,0) 
Ich meine was kann man daran viel falsch machen ? In neue Dirs lässt sich einfach
nicht reinklicken. :freak:

Hat evtl. jemand ne idee woran es liegen könnte ? Wäre wirklich sehr sehr schade
wenn ich es jetzt "Auf ewigem Eis" legen müsste.

BTW:

hInternet.l & hConnect habe ich übrigens Globalisiert. Nur für den fall das
Ihr euch wundert das es in der proc nicht angegeben wurde. Ich könnte es
auch Sharen, aber ich glaube kaum daß das viel helfen würde.

Ach ja und nochwas.: Nachdem Fehler (Rückgabe = #False) und ausloggen
bekomme ich erstmal für eine weile überhaupt kein connect mehr. Meistens
erst dann wieder wenn ich die komplette Inet-verbindung trenne und dann
wieder aufnehme.

Wie ich schon sagte, Kurriositätenkabbinet. :freak:
Benutzeravatar
Kiffi
Beiträge: 10711
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Beitrag von Kiffi »

Hallo al90,

so aus dem hohlen Kopft heraus würde ich 2 Dinge checken:

* Probier mal mit einem normalen FTP-Client, ob Du dort Ordner anlegen
kannst und direkt danach reinwechseln kannst. Vielleicht hat Dein FTP-Server
eine 'Macke'?

* Überprüfe, ob der aus Deinem Programm neu erstellte Ordner auch das
entsprechende Attribute 'directory' hat und Du die entsprechenden Rechte
hast, ihn auch zu öffnen. Meines Erachtens ist es durchaus möglich, einen
Ordner zu erstellen ('write'), diesen aber nicht zu öffnen ('read').

Grüße ... Kiffi
a²+b²=mc²
Antworten