Einsteigerfragen zur PROFAN Programmierung

| Suchen
| Zurück zur Übersicht

Autor | Thema: Daten nach Gebrauch wieder löschen
Florian May
| Datum:30.08.02 23:11 |
ich habe ein Programm das Bilder, die es anzeigt, vorher auf die Platte speichert. Nun möchte ich diese Datein automatisch wieder löschen, sobald das Programm beendet wird. Dabei sollten die Datein sofort gelöscht werden wenn das Programm nicht mehr aktiv ist d.h. im grund, das auch die Dateien entfernt werden sollen, wenn ich das programm über den taskmanager [strg+alt+entf] beende oder ich den pc neustarte. ist es möglich das ganze auf irgend eine weise zu erledigen ohne dabei auf ein weiteres programm zurück zu greifen. wäre es vielleicht möglich, eine art schalter zu programmierenm, die die dateien hält und, sobald das programm beendet wird, löscht? ich habe sowas schon mal gesehen nur weis ich nicht wie die person diese möglichkeit bewerstelligt hat...... über brauchbare informationen, ratschläge oder quelltexte :) würde ich mich sehr freuen. mfg flo
Thorsten
| Datum:31.08.02 08:01 (galaxy@mrk-soft.de) |
Hi Floh, dieses Thema hatten wir doch in ähnlicher Form schon mal von dir. Das beenden eines Progrmams lässt sich auf 2 arten Sicher abfangen: a). du verwendest den Window-Stype 512, das Programm beenden must du aber nun üner %Key=2 auf jedenfalls selber abfangen. diese wird beim X ausgelöst, danach kannste ja noch eine Lösch-routiene oder anderes aufrufen. b) ab Profan 7.0 geht das auch über eine Message $10. Diese gesetzt, musss das beenden mit %UMessage = $10 auch hier selber abgefragt werden. So, wenn jedoch das Programm mit gewalt einfach Terminiert wird, oder gar der Rechner Resetet, läsat sich NICHTS abfangen.
Florian May
| Datum:31.08.02 12:12 |
Ich weis das dieses thema schon mal behandelt wurde, doch wurde dieses auch befriedigend beantwortet? ich denke nicht. deine antwort hat mir nun wieder einige gute ideen gebracht ...... ich danke dir a). du verwendest den Window-Stype 512, das Programm beenden must du aber nun üner %Key=2 auf jedenfalls selber abfangen. diese wird beim X ausgelöst, danach kannste ja noch eine Lösch-routiene oder anderes aufrufen. ich benutze kein normales fenster sondern ein fenster ohne titelleiste, dabei möchte ich den style 240 beiberhalten. Ist es bei diesen windowstyle noch nötig/möglich die message abzufangen und vorallen, wie mache ich das? b) ab Profan 7.0 geht das auch über eine Message $10. Diese gesetzt, musss das beenden mit %UMessage = $10 auch hier selber abgefragt werden. diese methode höre ich heute zum ersten mal. Aus diesem grund habe ich nicht die leiseste Ahnung wie das funzen soll...Kannst du das erklären, muss ich die mesage beim starten setzen.......ec.? mfg
Florian May
| Datum:01.09.02 16:31 |
?
Thorsten
| Datum:01.09.02 18:45 (galaxy@mrk-soft.de) |
    USERMESSAGES $10

    WINDOWSTYLE 26
    WINDOW 5,5-200,200

    WHILE 1
     WAITINPUT

     CASE %UMESSAGE = $10 : BREAK

    WEND
    BEEP
Siehe auch in der Profanhilfe unter User-Messages !!!
Florian May
| Datum:02.09.02 16:37 |
danke
Florian May
| Datum:02.09.02 18:17 |
Nochmal zum thema taskmanager: den taskmanager sollten man auch nicht abschalten können, dafür ist win einfach zu instabiel, aus diesem grund, habe ich mal etwas anderes versucht: ich möchte meine benutzer schon die möglichkeit geben das programm übe den taskmanager zu beenden, doch soll ich die mögllichkeit haben, dies "mit zu bekommen". also frage ich die tasten ab uns sobald diese gedrückt werden beende ich mein programm, ich weiss, nicht die beste lösung, aber vielleicht ja mal ein anreiz oder so......... hier bitte mal testen http://mitglied.lycos.de/loay/test.zip ist nur wenige kb gross
Sven Schmidts
| Datum:02.09.02 21:17 (schmidts@flat2serv.de) |
Konnte das Programm problemlos über den Taskmanager beenden, auch als da "Geht jetzt nicht mehr" stand. Windows 2000, abgeschossen im Manager über den Tab "Prozesse", Taskman gestartet mit "STRG+LSHIFT+ESC". Dort heisst es zwar "Test", aber unter "Prozesse" ordnungsgemäss "PROFRUN32". Warum sind hier eigentlich alle ganz geil drauf, dass man die Programme nicht beenden kann?
carlo keil
| Datum:02.09.02 22:18 (carlo.keil@web.de) |
> Warum sind hier eigentlich alle ganz geil drauf, dass man > die Programme nicht beenden kann? Fast alle, bitte. Ich verstehe das auch nicht und hoffe deshalb auf ein paar ernst gemeinte Antworten. In freudiger Erwartung Carlo
Thorsten
| Datum:03.09.02 08:44 (galaxy@mrk-soft.de) |
>Warum sind hier eigentlich alle ganz geil drauf, dass man die >Programme nicht beenden kann? Hi Sven, Die Frage läst sich leicht beantworten. Vor länger Zeit hatte ich auch mal eine Anfrage, ob es möglich sei, einem Rechner derart zu schützen, das nur der eigene Benutzer diesen Benutzen kann. Dazu hat jeder Benutzer eine Chip-Karte mit Verschlüsselter Kenung drauf bekommen, und jeder Rechner hatte ein Chip-Drive. Sobald die Karte nicht im ChipDrive steckte, sollte der Screen Schwarz werden, Karte wieder drinn, mit zugehörigen Kennwort, Rechner wieder frei. Und jetzt der Hacken: Das Programm darf NICHT beendet werden, ewgal wie, weder über Task-Manager, noch mit gewalt. Denn sonst wäre das ganze relativ sinsoll mit dem Schutz. Das ganze war für Win98 Relativ leicht zu lösen, das kleine Programm wird in der RegEdit gesatartet, und fragt ab, ob Karte im ChipDrive. Wennn nicht, sperre die Kombination CTRL + ALT + DEL, und prüfe, ob Karte eingeschoben wird. Bei richtigem Kennwort wieder CTRL + .... freigeben. Tja, aber dann sollte das unter Win NT auch gelöst werden, bekam dazu sogar nen Rechner gestellt für die Test-Zeit, fand aber keine Lösung zum Problem, den bekanntlich funktioniert das abstellen der 3 Tasten unter NT nicht. Letztentlich hab ichs aufgegeben, die bisherige Lösung als Doku dem auftraggeber überreicht und das wars dann. Die neue Lösung sah dann wohl so aus, das unter NT ein VXD Treiber oder sowas in der richtung erstellt wurde, der in der Tasten-Routiene mit drinn sass und die Tastatur sowie Maus komplett gespert hat, wenn keine Karte im ChipDrive war, bzw. die richtige Karte. Vieleicht ist es ja wieder genau so ein Problem, leider kann ich aber zu VXD !! Lösung nix sagen.
Sven Schmidts
| Datum:03.09.02 09:02 (schmidts@flat2serv.de) |
Hallo Thorsten, die Sache ist genauso einfach wie kompliziert: Du brauchst keinen VXD Treiber (den kannst Du auch nicht mit Delphi programmieren, brauchst C). Nutze einen Service (Dienst), der wird vor dem Login geladen. Jeder Dienst hat Eigenschaften wie "AllowPause", "AllowStop" (SERVICE_ACCEPT_SHUTDOWN, SERVICE_ACCEPT_STOP, SERVICE_ACCEPT_PAUSE_CONTINUE) usw. Wenn Du die auf "False" setzt dann kannst Du den Dienst nicht beenden (Fehlermeldung: Konnte ... nicht beenden). Testhalber kannst Du die flat2serv-Dienste vom Postman bzw. Softroute nutzen, die können auch andere Programme starten. Da wäre halt nur das Problem, dass die Dienste mit Profan² so eine Sache sind ... Mfg. Sven Schmidts
Florian May
| Datum:03.09.02 18:13 |
@ Sven Schmidts das programm beendet sich nach dem : "Geht jetzt nicht mehr" automatisch d.h. wenn du task startest, wird das programm vom rpogramm selber beendet......... sollte es eigentlich... hier der quelltext: Def HiByte(1) Div&(&(1),$100) Def LoByte(1) And(&(1),$FF) Def Sleep(1) !"KERNEL32","Sleep" Def MakeWord(2) Or(%(1),Mul(%(2),$0100)) Def MapVirtualKey(2) !"USER32","MapVirtualKeyA" Def GetHK_VKeyValue(1) LoByte(MapVirtualKey(SendMessage(&(1),1026,0,0),2)) Def GetHK_Modifier(1) HiByte(SendMessage(&(1),1026,0,0)) Def GetHK_Char(1) Chr$(LoByte(MapVirtualKey(SendMessage(&(1),1026,0,0),2))) Def SetHotKey(3) SendMessage(&(1),1025,MakeWord(%(2),%(3)),0) Declare hk& WindowTitle "test" windowstyle $F0 Cls SetWindowPos %hwnd=0,0-10,10;-1 print " die Datei heisst im taskmanager ''Test''" print " beim ersten versuch ist die datei eingetragen und könnte beendet werden" Print " bitte beenden sie das programm aber nicht sondern kommen sie in das programm ''test'' zurück" Print " drücken sie anschließend eine beliebige taste" waitkey waitkey waitkey Print " probiere sie nun das programm über den taskmanager zu beenden" Let hk&=Control("msctls_hotkey32","",$54010200,0,0,0,0,%hwnd,2000,%hinstance) While 1 SetFocus(hk&) If Equ(GetHK_Modifier(hk&),6) end endif Wend
Florian May
| Datum:03.09.02 18:17 |
vergesss wir das thema.........
Sven Schmidts
| Datum:03.09.02 18:39 (schmidts@flat2serv.de) |
Stimmt ;) Eines noch: Woher willst Du wissen, ob sich das Programm selbst beendet oder vom Taskman beendet wird?
Florian May
| Datum: 03.09.02 19:59 |
also bei mri funzt das so: wenn der benutzer str + alt eingibt, erkennt dies das programm und weiss nun will der benutzer mich beenden, also beende ich mich voprher selber und kann so auch die zu schützenden dateien entfernen

| Zurück zur Übersicht

| Ein kostenloses WebMart Forum WebMart Homepage Tools kostenlos |