IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Delphi Discussion :

delphi/Oracle :FListner, arret d'un thread


Sujet :

Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 41
    Par défaut delphi/Oracle :FListner, arret d'un thread
    Bonjour a tous
    j'ai un enorme problème , on m'a donné un executable fait sous delphi 7 qui s'appelle Flistner, dont la fonction est de lister les elements qui se trouvent dans un dossier precis,
    ce programme est lancé une seule fois et grace a un fichier parametre ou on a le timer , la connexion a la base de donnée oracle (sous 9i) ainsi que les repertoires a surveiller,donc chaque minute il récupére le contenu des repertoires et crée un fichier result.sql qui contiens les instructions d'insertion des noms des fichiers trouvés dans une table de ma base. (j'éspére que vous arrivez a voir un peu son fonctionnement).
    maintenant mon problème est le suivant: quand j'appuis sur Ctl+ALt+Suppr et la fenetre de gestion des taches apparait , l'utilisateur de la machine poura arreter le processus Flistner, c'est pour celà que j'ai pour mission de trouver un moyen pour rendre l'arret du processus impossible sauf si on donne un mot de passe..
    j'ai beau chercher, je ne trouve pas le moyen de regler ça, avez vous la moindre idée sur ça ?? n'importe qu'elle idée pour demarrer car c'est urgent
    merci d'avance

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 41
    Par défaut
    Bonjour a tous,
    voilà apres recherche, j'ai reussi a consitituer une partie du code source, ensuite j'ai retrouvé la totalité du code, j'ai cherché partout dans le help de delphi et honnetement j'ai rien trouvé sur la manière de mettre un mot de passe afin d'empecher l'arret de l'execution de FILELISTNER, j'éspére vraiment que quelqu'un pourra m'aider, juste avec une idée de depart
    Merci pour votre aide
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    uses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, StdCtrls, ExtCtrls ,Registry ,InvokeRegistry ,ShellApi ;
     
    type
      TForm2 = class(TForm)
        ListBox2: TListBox;
        ListBox1: TListBox;
        Timer1: TTimer;
        procedure ALLFILE(Chemin  : string);
        procedure Timer1Timer(Sender: TObject);
      private
         protected
        FPATH : STRING;
        { Déclarations privées }
      public
        { Déclarations publiques }
      end;
    var
      Form2: TForm2;
      cpt : integer ;
    implementation
     
    {$R *.dfm}
     
    procedure TForm2.ALLFILE(Chemin  : string);
    Var  Info   : TSearchRec;
    begin
      If FindFirst(Chemin +'*.*',faAnyFile,Info)=0 Then
      Begin
     
          repeat
          { Les répertoires sont affichés dans ListBox1 }
          { Les fichiers sont affichés dans ListBox2 }
          If ((Info.Attr And faDirectory)=0)  Then
          begin
          ListBox2.Items.Add( 'insert into file_t  (file_name, file_path, file_size, file_EXTE) values ('''+Info.Name+''','''+ chemin +''',''' +inttostr(Info.Size)+ ''',''0'' );');
           if ListBox2.Items.Count mod 30 = 0    then ListBox2.Items.Add( 'commit;');
          end
          Else
          begin
          if  ((Info.FindData.cFileName[0] <> '.') ) then  ALLFILE(Chemin + Info.Name+'\') ;
          end ;
          { Il faut ensuite rechercher l'entrée suivante }
          Until FindNext(Info)<>0;
          { Dans le cas ou une entrée au moins est trouvée il faut }
          { appeler FindClose pour libérer les ressources de la recherche }
           FindClose(Info);
          End;
      End ;
    procedure TForm2.Timer1Timer(Sender: TObject);
    var
     i: integer ;
     str : string ;
     ch : pchar ;
    begin
              ListBox1.Items.Clear;
              ListBox2.Items.Clear;
              ListBox2.Items.Add('set feedback off');
              ListBox2.Items.Add('set define off');
              ListBox2.Items.Add('alter table FILE_T disable all triggers;');
              ListBox2.Items.Add('prompt Loading the new file ...');
              ListBox1.Items.LoadFromFile('C:\FLISTENER.INI');
             IF  (StrToInt(Trim(listbox1.Items[1])) > 1) and (StrToInt(Trim(listbox1.Items[1])) < 60) then
                 Timer1.Interval := StrToInt(Trim(listbox1.Items[1]))*60*1000
              ELSE
                 Timer1.Interval := 3*60*1000 ;
              For i:=5 to   listbox1.Items.Count-1  do
              begin
               if Trim(listbox1.Items[i] )<> '' then
                   ALLFILE(listbox1.Items[i]);
              end ;
              ListBox2.Items.Add('commit ;');
              ListBox2.Items.Add('EXEC NEWFILE;');
              ListBox2.Items.Add('Alter table FILE_T enable all triggers;');
              ListBox2.Items.Add('Exit');
              ListBox2.Items.SaveToFile('C:\RESULT.SQL') ;
              ch := PCHAR( Trim(listbox1.Items[3])+ ' @C:\RESULT.sql'  )  ;
              ShellExecute(0,nil ,'sqlplus', ch , nil,sw_hide);
    end;
    end.

  3. #3
    Rédacteur


    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    7 171
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 7 171
    Billets dans le blog
    1
    Par défaut
    Salut,
    si l'utilisateur peut accéder à la liste des process, il faut vérifier quels droits il posséde exactement. S'il est admin il n'y a pas trop de solution simple.
    Sinon regarde du coté des services.

  4. #4
    Membre Expert Avatar de edam
    Homme Profil pro
    Développeur Delphi/c++/Omnis
    Inscrit en
    Décembre 2003
    Messages
    1 894
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur Delphi/c++/Omnis
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 894
    Par défaut
    pouqoi pas simplement interdir que la fenetre qui liste les process de surjir
    voir: ici

  5. #5
    Rédacteur


    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    7 171
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 7 171
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par edam
    pouqoi pas simplement interdir que la fenetre qui liste les process de surjir
    C'est une approche mais dans ce cas comment faire si on doit vraiment tuer un process

    Une recherche sur ce forum ou sur dev windows s'impose, c'est un sujet qui reviens souvent.
    Peut être ceci :
    http://delphi.developpez.com/faq/?pa...cuterentantque

  6. #6
    Membre Expert Avatar de edam
    Homme Profil pro
    Développeur Delphi/c++/Omnis
    Inscrit en
    Décembre 2003
    Messages
    1 894
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur Delphi/c++/Omnis
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 894
    Par défaut
    ok, une question qul est l'exe de win qui est lancé avec ctrl-alt-sup???

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. conversion de date (delphi/oracle)
    Par dolphins dans le forum Bases de données
    Réponses: 1
    Dernier message: 26/09/2005, 16h15
  2. DELPHI ORACLE et REQUETES OUVERTES
    Par klingc dans le forum Bases de données
    Réponses: 3
    Dernier message: 21/06/2005, 13h51
  3. connexion delphi oracle
    Par shane dans le forum Bases de données
    Réponses: 5
    Dernier message: 09/06/2005, 22h32
  4. Delphi -> Oracle : PL/SQL
    Par kribot dans le forum Bases de données
    Réponses: 4
    Dernier message: 15/06/2004, 13h18
  5. Progressbar Delphi/Oracle
    Par Angele dans le forum Bases de données
    Réponses: 2
    Dernier message: 13/06/2004, 11h04

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo