Allgemeine Fragen zur PROFAN Programmierung

Views (Heute): 252022 (13458)

| Suchen
Seiten: 1 2 | Zurück zur Übersicht

Autor | Thema: Lauffähiges Beispiel für .......
Florian May
| Datum:07.10.02 17:39 |
ich habe mich nun nochmal daran gewagt, einen quelltext zu coden der eine für mich große erweiterung für mein projekt darstelle würde, wenn er geht :) und zwar: ich habe eine exe datei, der verschiedenene datei wie txt, bmp, avi usw angehängt sind. um nun auf diese datei zugreifen zu können, muss ich sie beim programmstart auf die festplatte schreiben. daher kopiere ich sie ins gleiche verzeichnis wie die exe, sobald jemand die exe startet. nachdem nun die exe wieder beendet wird, egal auf welchen weg, sollen alle vorher auf die platte geschriebenen dateien auch wieder gelöscht werden......... das problem lag hier beim eigentlichen beenden. beendete der bentuzer das programm über strg+alt+entf, so wurden die dateien ja nicht gelöscht. jetzt habe ich eine hoffentlich lauffähiges beispiel dafür, das es doch geht, auf jeden fall auf meinen pc :) ich würde mich wahnsinng freuen, wenn nur ein paar dieses wenige kb grosse prc datei mal testen würdet. ist es ein erfolg, kann ich endlich wieder ein altes projeklt aufnehmen, das bisher in der 3dgs community großen anklang gefunden hat aber leider nicht weiter entwickelt werden konnte, da kleinere probleme den weg versperrten. hier die datei: http://mitglied.lycos.de/cnesm/test.zip eine kleine anleitung findet ihr im programm selber. bisher werden folgende personen im programm erwähntfalls es jemals fertig gestellt wird, die mir bei der entwicklung schon sehr oft geholfen haben und mir mit rat und tat zur seite gestanden haben: Jörg Sellmeyer Gerd Telzerow Frank Abbing Thorsten Sven Schmidts Rolf Koch Uwe ''Pascal'' Niemeier und natürlich noch: Roland G. Hülsmann :) mfg florian may
Hans-Jürgen Trog
| Datum:07.10.02 18:00 (sumatra@dhjt.de) |
Hallo Florian, habe sie runtergeladen, entpackt und die PRC zur EXE gelinkt und gestartet. Ergebnis: nichts. Kein Programm, nichts zu sehen. unter Win Me. Gruß Hans-Jürgen
Florian May
| Datum:07.10.02 18:13 |
wie? kein programm........sch*** ok machen wir es so: Declare Hauptfenster% Declare Ende%,Dll% Hauptfenster%=@CreateWindow(%HWnd,"test",0,0,0,0) SetWindowPos Hauptfenster%=0,0-%Maxx,%Maxy;-1 @CreateText(Hauptfenster%,"BEISPIE: Programmdateien nach Gebrauch bzw. Beenden des Programmes löschen.",10,10,%maxx,30) @CreateText(Hauptfenster%,"- Zuerst sollten Sie eine Datei namens ''Demo.txt'' in diesen Verzeichnis anlegen",10,30,%maxx,30) @CreateText(Hauptfenster%,"- Starten Sie dann das Programm und beenden Sie es über alle Ihnen bekannten Möglichkeiten [z.b. strg+alt+entf oder alt+f4 usw.]",10,45,%maxx,30) @CreateText(Hauptfenster%,"- Schauen Sie bitte nach jedem beenden des programmes nach, ob die Datei ''Demo.txt'' auch wirklich gelöscht wurde",10,60,%maxx,30) @CreateText(Hauptfenster%,"- Die Datei müsste eigentlich immer nach dem beenden des programmes automatisch gelöscht werden",10,75,%maxx,30) LOOP: Let ende%=0 Whilenot ende% WaitInput If @Equ(%Key,2) GOTO "EXITPROGRAM" EndIf CONTINUE Endwhile EXITPROGRAM: @createtext(Hauptfenster%,"Das Programm wird beendet, bitte haben Sie etwas Geduld.....",10,120,%maxx,100) EnableWindow Hauptfenster%,0 ASSIGN #1,"demo.txt" ERASE #1 'LEEREN @Add$(String$(TmpPath#,0),"rebdeneuz"),1,1 'Temp Ordner vor Benutzung leeren SLEEP 2000 EnableWindow Hauptfenster%,1 End ich vertraue euch da 100% :) dankehans jürgen hoffe du testet es nochmal.....
Hans-Jürgen Trog
| Datum:07.10.02 18:25 (sumatra@dhjt.de) |
so, das hat problemlos geklappt! :-) Viel Spaß weiter Hans-Jürgen
Florian May
| Datum:07.10.02 18:27 |
> so, das hat problemlos geklappt! :-) in der hinsicht, das die datei immer gelöscht wird oder das du nun das programm testen konntest?
Jörg Sellmeyer
| Datum:07.10.02 18:47 (joerse@gmx.de) |
Hallo Florian, Das funktioniert soweit ganz gut. Allerdings habe ich mir mal den Spass gemacht meinen Rechner einfach auszuschalten und siehe da... die Datei war noch vorhanden. Dagegen kann man natürlich mit Einträgen im Schlüssel RunOnce in der Registry vorgehen (beim Windowsstart ein Programm aufrufen das die Datei löscht). Allerdings stellt sich die Frage, ob sich der Aufwand wirklich lohnt. Ich bin mir sicher, dass jede Datei die auf dem Computer existiert auch untersucht und manipuliert werden kann. Wenn es ein schlechtes Programm ist, ist es egal, weil sich eh keine Sau dafür interessieren wird. Wenn es ein gutes Programm ist - was soll's. Lieber noch einen guten Leveleditor dazulegen und Kult daraus machen. Außerdem soltest Du die GoTo - Befehle vermeiden. Lies mal was in der Profanhilfe dazu steht. Ganz abgesehen davon ist der Befehl Continue in diesem Fall vollkommen überflüssig, da das EndWhile das Gleiche (und schneller) erledigt. Folgender Code dürfte auch in Profan 8 noch seine Gültigkeit behalten: Proc EXITPROGRAM ...Code... EndProc Let ende%=0 Whilenot ende% WaitInput If @Equ(%Key,2) EXITPROGRAM EndIf Endwhile Und um sicherzustellen, dass Deine Programme auch auf ME, XP, USW laufen, solltest Du die Fensterhandles immer in LongInt-Variablen speichern: Hauptfenster&=Create... Schönen Gruß Jörg
Hans-Jürgen Trog
| Datum:07.10.02 18:51 (sumatra@dhjt.de) |
wurde gelöscht. Bei mir war sie auch nach Neustart weg. Gruß Hans-Jürgen
Rolf Koch
| Datum:07.10.02 19:09 (webmaster@rokosoft.de) |
Hi, bei mir alles in Ordnung: Über X beendet und über Strg,Alt und Entf. - Demo.txt ist gelöscht! Die Sache wäre halt die, wenn der Rechner hoffnungslos mal abstürtzt. Wie wäre die Sache, falls es Deine Struktur erlaubt, am Anfang des Programms zusätzlich auf die Existenz der Dateien abzufragen und ggf. dann zu löschen? So mach ich das immer. Rolf
Florian May
| Datum:07.10.02 19:53 |
super, wohl der erste code der mal sofort geht :) das mit dem neustart ist so: ich werde zu jedem starten des programmes das programm selber ins autostart schreiben............ dann werde ich es einfach wie schon jörg meinte mit der registry machen. zu beginn schreibe ich einen schlüssel mit den inhalt 0, wennn nun die dateien nacher erfolgreich gelöscht wurden, überschreibe ich ihn mit 1 startet nun jemand den pc neu, wird autotmatisch das programm durch den eintrag ins autostart gestaret, doch was ich nun mache ist etwas anders, ist der eintrag 0, wurde der pc also neu gestartet, so werden nur die dateien gelöscht nicht aber das programm gestaret, ist der schlüssel hingegen 1 so wird das programm auch gestartet. ich danke euch für das testen ud hoffe das auch weiterhin leute das ding auf herz udn nieren testen....... gibt es sonst noch dinge die ihr verbessern würdet ? mfg ich danke euch !!!!!!!!!!!!!!
Martin Pohl
| Datum:07.10.02 20:41 (martin_pohl@msn.com) |
Florian, warum machst du BMP, AVI usw. nicht in eine DLL? Das geht doch viel einfacher und du brauchst sie nicht unbedingt zu schreiben und später zu löschen.
Florian May
| Datum:07.10.02 21:35 |
gute idee, wenn die files für mein Programm wären, doch der zugriff geschieht durch ein profan unabhängiges programm und daher müssen die files immer im verzeichnis liegen.das laden von avis usw. mit einen profan programm sollte kein rpoblem darstellen, sofern die files nicht gearde so extrem gross sind, doch hier ist leider ein fremdes programm... meines wissen ist es doch auch nicht möglich eine avi direkt aus einer dll zu starten oder? nur wenn sie glaube ich 16 fabren und hat in einen gewissen format gespeichert wurde.......
Florian May
| Datum:07.10.02 22:36 |
bin gerade dabie das ganze mal für das Hauptfnster umzu auen, den somit wäre es für mich günstiger doch, so wie es scheint, reagiert das ganze nicht so wie ich will, was mache ich denn nun wieder falsch?
Jörg Sellmeyer
| Datum:07.10.02 23:24 (joerse@gmx.de) |
Hallo Florian, Probier's mal damit:
    Proc EXITPROGRAM
      @createtext(%hwnd,"Das Programm wird beendet, bitte haben Sie etwas Geduld.....",10,120,%maxx,100)
      EnableWindow %hwnd,0
      ASSIGN #1,"demo.txt"
      ERASE #1
      'LEEREN @Add$(String$(TmpPath#,0),"rebdeneuz"),1,1 'Temp Ordner vor Benutzung leeren
      SLEEP 2000
      EnableWindow %hwnd,1
    EndProc

    Declare Ende%,Dll%
    UserMessages 16
    WindowStyle $298
    Window 0,0-100,100
    'Hauptfenster%=@CreateWindow(%HWnd,"test",0,0,0,0)
    'SetWindowPos Hauptfenster%=0,0-%Maxx,%Maxy;-1
    ShowMax
    @CreateText(%hwnd,"BEISPIE: Programmdateien nach Gebrauch bzw. Beenden des Programmes löschen.",10,10,%maxx,30)
    @CreateText(%hwnd,"- Zuerst sollten Sie eine Datei namens ''Demo.txt'' in diesen Verzeichnis anlegen",10,30,%maxx,30)
    @CreateText(%hwnd,"- Starten Sie dann das Programm und beenden Sie es über alle Ihnen bekannten Möglichkeiten [z.b. strg+alt+entf oder alt+f4 usw.]",10,45,%maxx,30)
    @CreateText(%hwnd,"- Schauen Sie bitte nach jedem beenden des programmes nach, ob die Datei ''Demo.txt'' auch wirklich gelöscht wurde",10,60,%maxx,30)
    @CreateText(%hwnd,"- Die Datei müsste eigentlich immer nach dem beenden des programmes automatisch gelöscht werden",10,75,%maxx,30)

    Let ende%=0
    Whilenot ende%
      WaitInput
      If @Equ(%Key,2)
        EXITPROGRAM
    		ende%=1
      ElseIf %umessage = 16
        EXITPROGRAM
    		ende%=1
      EndIf
    Endwhile
Gruß Jörg
Horst Horn
| Datum:08.10.02 03:43 (info@web-treffpunkt.de) |
an alle frage nur so: (ich will nicht hetzen)...aber seit ihr jetzt grade dabei, das rad neu zu erfinden ? gruss an alle horst
Florian May
| Datum:08.10.02 09:47 |
wer hat gesagt das wir ein rad neu erfinden...... wenn überhaupt dann erfinden wir bereits das auto :)
Jörg Sellmeyer
| Datum:08.10.02 10:32 (joerse@gmx.de) |
Hallo Horst, >)...aber seit ihr jetzt grade dabei, das rad neu zu erfinden ? Das verstehe ich nicht. Was ich von Florians Ansatz halte habe ich schon weiter oben geschrieben. Aber hier geht es meines Wissens nicht darum andere Programme zu beurteilen, sondern dem Programmierer bei Problemen weiterzuhelfen. Gruß Jörg
Horst Horn
| Datum:08.10.02 13:32 (info@web-treffpunkt.de) |
....nun ja keine Sau dafür interessieren wird. Wenn es ein gutes Programm ist - was soll's. Lieber noch einen guten Leveleditor dazulegen es gibt keine "guten" Programme in der WINDOWS-Welt und Schweine ... ? :o)
Florian May
| Datum:08.10.02 16:21 |
ok, dann sag mir bitte was ich entwickel? wenn du schon äußerungegn machst würde ich auch gerne deine begründugn wissen....... das ich kein profi bin, weis ich selber, das meine idee nicht immer anklang finden weiss ich auch, aber ich programmiere auch aus leidenschaft und nicht weil es mir darum geht geld damit zu verdienen...........
Thorsten
| Datum:09.10.02 12:10 (galaxy@mrk-soft.de) |
>das ich kein profi bin, weis ich selber, das meine idee nicht >immer anklang finden weiss ich auch, aber ich programmiere >auch aus leidenschaft und nicht weil es mir darum geht geld >damit zu verdienen........... Hi Flory, Wenn du wirklich "Euros" verdienen willtst, dann konzentriere dich einfach auf das Wesentliche, und verkaufe deine Ideee als Umsetzung im Programm. Zum anderem Farg ich mich, schreibst du selber oder nutzt du nur andere Programme, packst die Zusammen und startest dann das eine und andere an, dann wieder löschen ... !!!! Nur das mit dem Programm beenden-Abfragen,Temp Files usw. bringt einfach nichts. Zum einem immer noch: Wenn du glaubst, ein Programm wirklich 100 % Sicher gegen "spionage" zu machen, dann ist das einfach verlorene Zeit. Glaub mir, innerhalb von maximal 10 Min. läst sich fast jedes Programm durchschauen. Dazu wird nur der "Windows Commander", ein Hex Editor (Ultra Edit) und "Ultra Task" benötigt. Bilder usw. in einer DLL auszulagern, ist ein guter ansatz, mit einem Resourcen Editor jedoch sehr leicht wieder zurückzuhohlen. Wenn schon unbedingt, dann: Ein bisher noch recht sicherer Schutz ist, alle Ext. Teile wie Bilder und Sounds (Wav Files) alle verschlüsselt in eine Datei zu hinterlegen. Das Hauptprogramm kann dann direkt aus dieser Datei die Daten hohlen, entschlüsseln und anzeigen, Bilder z.b mit ProSpeed, Wav Files lassen sich recht einfach direkt aus dem Speicher abspielen. Also bitte, glaub einfach, das JEDES Programm immer "zwangs" beendet werden kann, da kanste noch so viel Tricksen. Anfänger lassen sich so vieleicht noch beeindrucken, der Profi lächelt nur darüber und denkt sich sein Teil.
Florian May
| Datum:09.10.02 12:50 |
< Hi Flory, < Wenn du wirklich "Euros" verdienen willtst, dann konzentriere < dich einfach auf das Wesentliche, und verkaufe deine Ideee < als Umsetzung im Programm. < Zum anderem Farg ich mich, schreibst du selber oder nutzt du < nur andere Programme, packst die Zusammen und startest dann < das eine und andere an, dann wieder löschen ... !!!! zum einen möchte ich keine "Euros" verdienen, wie ich auch schon oben erwähnte, zum anderen packe ich kein programme zusammen, sonder baue ein zusatzprogramm für eine 3d engine........... mein programm greift nicht in die engine ein sondern erweiter die fetaures dieser....... mein programm fasst alle dateien des spiels [60 Dateien] zu einer exe zusammen, verschlüsselt und packt sie. das hat den vorteil, das zum einen das programmpaket schrumpft, zum anderen aber auch die größe der gesamten dateien sich verringert [Beispiel: 60 Dateien mit einer Gesamtgröße von 3,51 mb werden zu 1 Datei mit 1,25 MB] Weiterhin hat die verschlüsselung den vorteil, das sie nicht vorher entschlüsselt werden musss ondern einfach eine art schalter genutzt wird, der beim zugriff sich öftnet und nachdem zugriff auch sofort wieder schließt, das hat den vorteil, das die dateien auch nach einen neustart in keinsterweise unschaubar sind. den zugriff habe ich schon kit einein hex-editoren, ressorucen werkzeugen, filecompilern und dos programm versucht. oft war es so das die programme durch ausnahmefehlern abgestürzt sind. nur ein programm hat es geschafft eine einzige datei herauszufilter, doch diese war nacher nur unvollständig und somit nicht einsetzbar........... das problem lag bisher an dem beenden des programmes über den taskmanager........... es wäre zwar keine schwierigkeite die dateien mittels speicher verfügbar zu machen und der engine mittels sdk zu sagen wo sie sind, doch leider habe ich die entsprechenden erfahrungen in profan/cpp nicht........ -------------------------------------------------------------- themawecksel: ich habe wieder mal prffellow auf meine pc installiert und dabei einen interessanten quelltext gefunden: ............. If Neq(result&,%desktop) ' nur Fenster mit Stilbit WS_VISIBLE kommen in Frage If Neq(IsWindowVisible(result&),0) ' Taskbar und Desktop selbst sollen nicht erscheinen GetClassName(result&,cname#,64) Let cn$=Upper$(String$(cname#,0)) If Equ(Instr(cn$,Excluded_Classnames$),0) ' Nur Fenster ohne Elternfenster werden angezeigt .............. dabei bitte ich vorallen auf die kommentare des autors zu achten. er deutet hier darauf hin, das einige fensterstyles nicht angezeigt werden sollen........ nun habe ich mich gefragt, ob dies auch der taskmanager astrg+alt+ent macht.......wenn ja würde es doch sehr viel sinn machen einfach das profan programm der engien als eine art elterfenster unterzuordnen und somit die engien also das spiel und mein porgramm unter einen eintrag im taskmanager laufen lassen......... das ganze müsste doch mittels sendmessage funken......: @Setparent(Handel der Engine, mein Profan Programm) doch nix da, die engine mag nicht so recht............wichtig ist nur das windows mein profan programm als kinderfenster ansieht und der engine unterordnet............. werde derweil mal ein wenig nachforschen............. mfg

Seiten: 1 2 | Zurück zur Übersicht