| |
|
|
- Seite 1 - |
|
Bamboo | Mein Programm speichert Geburtstage und zwei Termineinträge. Nun hätte ich gerne, dass das Programm automatisch startet, wenn ein datumsgleicher Eintrag vorliegt. Geschrieben in XProfan Danke im Voraus für Antwort und Hilfe |
|
|
| Manche Menschen werden deshalb schlecht, weil es ihnen zu gut geht. | 24.07.2016 ▲ |
|
|
|
|
| |
|
- Seite 1 - |
|
Bamboo | Jörg Deine Code, mit "=" erweitert, erzeugt eine Fehlermeldung. "Zuwenig Parameter..." Mein Code schreibt richtig in die Registry (CCleaner unter "Autostart" nachgesehen), aber dann hakt es. Der Start des eigentlichen Programmes bricht mit der Fehlermeldung 104 ab ??? |
|
|
| |
|
|
|
Jörg Sellmeyer | Ah - ok. Da hab ich mich vertan.
Wie genau soll denn der Startaufruf deines Programmes aussehen? Das geht aus deinem Codeauszug nicht hervor und mit den Informationen kann man bisher nur raten. |
|
|
| |
|
|
|
Bamboo | Jötg An sich ganz einfach und bis zum Absturz klappt das ja auch. Code-Kurzform: Assign #1,datei$ RESET #1 WHILENOT EOF(#1) INPUT #1,txt$ IF LEFT$(date$(0),5) = txt$ RUN programm$ ENDIF ENDWHILE CLOSE #1 END Im Hauptprogramm wird dann eine Gridbox mit den vorhanenen Tagesdaten geöffnet. Das funktioniert auch, wenn ich das Programm mit Doppelklick starte. Bei RUN programm$ Absturz Hab mit beiden Alternativen GETDIR$("@") oder $PROGDIR versucht. Immer das gleiche Ergebnis - Fehler 104 Mein Verdacht ist die Listview.dll |
|
|
| Manche Menschen werden deshalb schlecht, weil es ihnen zu gut geht. | 24.07.2016 ▲ |
|
|
|
|
Michael W. | "Dateikennung fehlt" oder "Datei nicht zum Lesen geöffnet"
GETDIR$("@") -- sollte in neuen Betriebssystemen nicht genutzt werden
Und das was Du da geschrieben hast, wird das denn im Programm- verzeichnis gespeichert (auf das man evtl. keine Rechte hat)?
Oder im Datenverzeichnis (unter $AppDataDir) |
|
|
| |
|
|
|
Bamboo | Michael Die Declaration datei$ ist im Hauptprogramm und ruft die CSV-Datei mit den Einträgen auf. Sie ist im Unterverzeichnis INS_DATEN vorhanden und alle Pfade sind richtig angegeben. Es ist mir ein Rätsel, warum das eigentliche Programm mit Doppelklick startet, aber mit RUN programm$ nicht. |
|
|
| |
|
|
| |
|
- Seite 2 - |
|
|
Michael W. | Wir wissen weder was in "programm$" noch was in "control$" genau steht. Deshalb können wir hier nur Rätsel raten.
run - ruft windowsprogramme auf
weiter gibts noch
%ExitCode, GetExitCode, Shell, ShellExec, WinExec, WinExecWait
Unter X2 gibts $AppDataDir noch nicht, da kann dies helfen
|
|
|
| System: Windows 8/10, XProfan X4 Programmieren, das spannendste Detektivspiel der Welt. | 24.07.2016 ▲ |
|
|
|
|
Jörg Sellmeyer | Mit run kann natürlich auch ein Profanprogramm auggerufen werden. Du wirst aber schon genauere Angaben machen müssen, wie Michael schon geschrieben hat. Ich seh auch in deinem Code keinen Aufruf der Listview.dll. Also ebenfalls nur Kaffeesatzleserei von unserer Seite. |
|
|
| Windows XP SP2 XProfan X4... und hier mal was ganz anderes als Profan ... | 24.07.2016 ▲ |
|
|
|
|
Bamboo | Jörg Sellmeyer (24.07.2016)
Mit run kann natürlich auch ein Profanprogramm auggerufen werden. Du wirst aber schon genauere Angaben machen müssen, wie Michael schon geschrieben hat. Ich seh auch in deinem Code keinen Aufruf der Listview.dll. Also ebenfalls nur Kaffeesatzleserei von unserer Seite.
Das ist richtig. Mit RUN rufe ich ja das eigentliche Programm auf und da wird ja dann auch die Listview.dll declariert. Ich kann ja schlecht ca. 9.000 Zeilen Code hier posten. Muss also weiter "wurschteln" - denke mal, dass ich irgendwann den Fehler gefunden habe. Werde mich dann melden. ...bis denne |
|
|
| |
|
|
|
RICOSCH | könnte das das problem sein ??
kanns jetzt nich auf der schnelle prüfen
WHILENOT EOF(#1) INPUT #1,txt$ IF LEFT$(date$(0),5) = txt$ RUN programm$ ENDIF ENDWHILE CLOSE #1 END
mit run beendest du ja das eigene Programm , ein winexec mit anschließendem end in deinem Programm wäre wohl besser. oder du beendest erst die schleife z,b
check% = 0 WHILENOT EOF(#1) INPUT #1,txt$ IF LEFT$(date$(0),5) = txt$ ((RUN programm$)) check% = 1 ENDIF ENDWHILE CLOSE #1 case check% = 1:RUN programm$ END
glaube sowas auch schon gehabt zu haben, das ein RUN aus der Schleife probleme macht.
mal bitte testen und gegebenfalls mich berichtigen wenn ich daneben liege. |
|
|
| |
|
|
|
Bamboo | Danke für den Tipp Werde mich heute mittag damit beschäftigen und dann Bescheid geben. Unmöglich ist das nicht. Wirklich interessanter Vorschlag ! |
|
|
| |
|
|
|
Bamboo |
RICOSCH Dein Tipp hat schon mal geholfen. Jetzt klappt der Start. Man muss also erst WHILE durchlaufen lassen und wenn dann Check% auf 1 steht, funktioniert die Sache ! Aber wie das so ist, gleich eine neue Frage an die Experten: Mein Tool arbeitet mit einer XProfan-Gridbox. Die ist normal über die 1. Spalte sortiert. Meine Grid hat 31 Spalten und die sollen alle sortierbar sein. Das geht auch über SortList "|",x%,1 - Leider müssen dafür Extra-Buttons angelegt werden. Im Moment habe ich das so wie im anhängenden Bild gelöst (es fehlen noch ein paar Buttons) Wenn mir jetzt jemand veraten kann, wie ich die Spaltenköpfe zu Buttons umgestalten und dann noch auf diese zugreifen kann, schließe ich den- oder diejenige in mein Abendgebet ein. ...und Nein, ich will nicht mit der Listview.dll von Frank Abbing arbeiten. |
|
|
| |
|
|
|
Thomas Freier | In der plv_pcu müßte ein Sortierbeispiel sein: [...]
' Autor: Thomas R.
'
' HitSortsLV(lvHdl&) Sortiert den Inhalt eines Listviews
' lvHdl& = Handle des Listviews
$U plv.pcu = plv.
' Funktion
Def ZufallsText(0) chr$(rnd(26)+65)+chr$(rnd(26)+65)+chr$(rnd(26)+65)
Def ZufallsZahl(0) chr$(rnd(10)+48)+chr$(rnd(10)+48)+chr$(rnd(10)+48)
Proc ZufallsZahlText
Declare ZZ_Erg$,ZZ_ZWErg$
WhileLoop 1,3,1
If (rnd(2 + 1) - 1)
ZZ_ZWErg$ = chr$(rnd(26) + 65)
' Case (ZZ_ZWErg$ = "0"): ZZ_ZWErg$ = Chr$(160)
ZZ_Erg$ = (ZZ_Erg$ + ZZ_ZWErg$)
Else
ZZ_Erg$ = (ZZ_Erg$ + chr$(rnd(10) + 48))
EndIf
EndWhile
Return ZZ_Erg$
EndProc
Declare lv&
Cls
lv& = plv.CreateListView(%hwnd,"",10,10,500,350,RGB(0,0,0),RGB(255,255,255),RGB(255,255,255),0,0,0,0)
plv.SetHeader(lv&,3,"150|150|150","Spalte 1|Spalte 2|Spalte 3")
WhileLoop 0,100
plv.SetRow(lv&, &loop,(ZufallsZahlText() + "|" + ZufallsZahlText() + "|" + ZufallsZahlText()),-1,0)
EndWhile
'WhileLoop 0,200,2
' plv.SetRow(lv&,&loop,(ZufallsZahl() + "|" + ZufallsZahl() + "|" + ZufallsZahl()),-1,0)
' plv.SetRow(lv&,(&loop + 1),(ZufallsText() + "|" + ZufallsText() + "|" + ZufallsText()),-1,0)
'EndWhile
'WaitInput
'plv.SetHeader(LV&,2,"200|70","Datei|Größe","0|1")
'print "OK"
'plv.ReSetItem(LV&,2,"DatNamX.exe",-1,2)
WhileNot %key = 2
WaitInput
plv.HitSortsLV(lv&)
EndWhile
End
|
|
|
| |
|
|