| |
|
|
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 ▲ |
|
|
|
|
RICOSCH | Programm mit Windows "Autostart" starten > Einträge abfragen > Programm beenden lassen. macht nur Sinn wenn der Rechner auch täglich neu gestartet wird ;)
aber da gibts doch Windows -Kalender ;)
...und Task "Aufgabenplaner" ;) |
|
|
| |
|
|
|
Bamboo | Mein Programm hat nichts mit dem Windows-Kalender oder dem Aufgabenplaner zu tun. Es geht mir um einen Code, mit dem ich aus den "Programm-Einstellungen" in meinem Programm einen Autostart-Text generieren kann. |
|
|
| Manche Menschen werden deshalb schlecht, weil es ihnen zu gut geht. | 24.07.2016 ▲ |
|
|
|
|
Jörg Sellmeyer | U/nter DDEExecute findest du ein Beispiel, wie man eine Programmgruppe erzeugt und dort einen Link anlegt. Das ist schon etwas älter, sollte aber noch funktionieren. Ansonsten kannst du in die Registry unter "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run" einen Eintrag erzeugen (WriteIni HKEY_2,...) und dort dein Programm eintragen. |
|
|
| |
|
|
|
Bamboo | Zum besseren Verständnis zeige ich hier den Editor aus meinem Tool. Da wirden für den Geburtstag und 2 Termineinträge Daten gespeichert. Das Programm soll sich aber nur dann melden, wenn Datum und Eintrag übereinstimmen. Beim Geburtstag natürlich nur die ersten 5 Zeichen, bei den Terminen der komplette Vergleich mit date$(0) |
| 61 kB | | Bezeichnung: | Insert-Demo | | Version: | Beta | | Kurzbeschreibung: | Das ist der Editor | | Hochgeladen: | 24.07.2016 | | Ladeanzahl: | | | | Herunterladen |
|
|
| |
|
|
|
Bamboo | So sieht der vorhandene Code aus:
'######################################################
IF CLICKED(start_on&)
Writeini "HKEY_1","Software\\Microsoft\\Windows\\CurrentVersion\\Run",\
programm_art$=CHR$(34)+controll$+CHR$(34)
ASSIGN #2,auto_datei$
REWRITE #2
PRINT #2,"AKTIV"
CLOSE #2
EnableWindow start_on&,0
EnableWindow start_off&,1
ENDIF
'-----------------------------------------------------
IF CLICKED(start_off&)
DELETEKEY "Software\\Microsoft\\Windows\\CurrentVersion\\Run",programm_art$
ASSIGN #2,auto_datei$
REWRITE #2
PRINT #2,"NICHT AKTIV"
CLOSE #2
EnableWindow start_on&,1
EnableWindow start_off&,0
ENDIF
'######################################################
PROC DELETEKEY
Parameters RegPfad$, Eintrag$
Declare Handle%
External("ADVAPI32", "RegCreateKeyExA", $80000001, Addr(RegPfad$), 0, 0, 0, $20006, 0, Addr(Handle%), 0)
External("ADVAPI32", "RegDeleteValueA", Handle%, Addr(Eintrag$))
External("ADVAPI32", "RegCloseKey", Handle%)
ENDPROC
'######################################################
Habe dazu eine EXE-Datei geschrieben, die auch im Programmverzeichnis steht und die relevanten Daten bei PC-Start kontrolliert. Funktioniert aber leider nicht. Es kommt die Fehlermeldung 104 - also sucht das Programm eine Datei. Ich vermute, dass die hier verwendete Listview.dll von Frank Abbing die Sache ausbremst. Hat da jemand Erfahrung mit ? Danke für Rückantwort |
|
|
| Manche Menschen werden deshalb schlecht, weil es ihnen zu gut geht. | 24.07.2016 ▲ |
|
|
|
|
Jörg Sellmeyer | Das hier geht so schonmal nicht:
Writeini "HKEY_1","Software\\Microsoft\\Windows\\CurrentVersion\\Run",\
programm_art$=CHR$(34)+controll$+CHR$(34)
Writeini "HKEY_1","Software\\Microsoft\\Windows\\CurrentVersion\\Run",\
programm_art$ + "=" + CHR$(34)+controll$+CHR$(34)
Vielleicht solltest du dir erstmal die Basisroutinen für das Schreiben und Lesen in der Registry erstellen und danach diese in dein Programm einfügen. Dann kannst du besser aussortieren, wo da die Fehler liegen. |
|
|
| Windows XP SP2 XProfan X4... und hier mal was ganz anderes als Profan ... | 24.07.2016 ▲ |
|
|
|
|
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. |
|
|
| |
|
|