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

API, COM et SDKs Delphi Discussion :

Erreur avec procédure LockWorkStation ...


Sujet :

API, COM et SDKs Delphi

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2004
    Messages : 3
    Points : 2
    Points
    2
    Par défaut Erreur avec procédure LockWorkStation ...
    J'utilises Delphi 7 Enterprise.

    Dans mon code j'utilise la procédure LockWorkStation.

    La procédure LockWorkStation je ne la code pas !!! Elle est
    dans Delphi 7 en quelque part.

    Tout fonctionne bien sour 2000/XP mais lorsque je roule mon
    code sous Windows 98 il me dit le fichier Intelli.exe est
    lié à une exportation manquante USER32.DLL:LockWorkStation.

    Je sais que je peux chargé des DLL dynamiquement ou sous
    certaine condition. Mais dans ce cas ci je suis perdu.

    Pouvez vous m'aider ???
    Merci[/b]

  2. #2
    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
    Points : 15 060
    Points
    15 060
    Billets dans le blog
    1
    Par défaut
    Salut,
    le SDK peut t'aider :
    http://msdn.microsoft.com/library/default.asp?url=/library/en-us/sysinfo/base/lockworkstation.asp

    LockWorkStation :
    ...
    Requirements
    Client: Requires Windows XP or Windows 2000 Professional.
    Server: Requires Windows Server 2003 or Windows 2000 Server.
    Donc cette API n'est implémentée sous 98.

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2004
    Messages : 3
    Points : 2
    Points
    2
    Par défaut
    ca je sais que ca fonctionne pas sous WIn98.

    C'est exactement mon problème. Comment je dis à mon logiciel.
    De ne pas loader ca sous Win98 et de le loader sous Win2000/XP.

    La seule ligne de code que j'ai mis c'est

    LockWorkStation;

    rien d'autre .

    Ce que je veux savoir c'est qu'il ne fasse plus d'erreur sous win98.

    PS: l'erreur sous win98 apparait au démarrage de l'application et non
    quand j'apelle cette procédure.

  4. #4
    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
    Points : 15 060
    Points
    15 060
    Billets dans le blog
    1
    Par défaut
    Salut,
    Citation Envoyé par simonseztech
    ca je sais que ca fonctionne pas sous WIn98.
    Certe, mais ce n'est pas précisé dans le message d'origine.
    Citation Envoyé par simonseztech
    PS: l'erreur sous win98 apparait au démarrage de l'application et non
    quand j'apelle cette procédure.
    Peut être redéclarer l'API dans une unité, ce qui te permettrais de la charger selon l'OS en cours. Si tu utilises celle de Windows.pas je n'ai pas vue de test de version de Windows, donc il semble la charger dans tous les cas de figure.
    Et n'ayant pas de W98 sous la main je n'ai pas pu tester cette proposition.

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2004
    Messages : 3
    Points : 2
    Points
    2
    Par défaut
    Merci beaucoup.
    Je n'y avais pas pensé de redéclarer la procédure pour surpassé celle de windows.pas.
    Voici mon code pour ceux que ca intéresse

    Procedure TMainClientForm.LockWorkStation ;
    var xLockWorkStation : function (Block: BOOL): BOOL; stdcall;
    begin
    if FunctionDetect ('USER32.DLL', 'LockWorkStation', @xLockWorkStation) then
    xLockWorkstation(true);
    end;
    pour détecter si le fonction existe dans la librairie.

    function FunctionDetect (LibName, FuncName: String; var LibPointer: Pointer): boolean;
    var LibHandle: tHandle;
    begin
    Result := false;
    LibPointer := NIL;
    if LoadLibrary(PChar(LibName)) = 0 then exit;
    LibHandle := GetModuleHandle(PChar(LibName));
    if LibHandle <> 0 then
    begin
    LibPointer := GetProcAddress(LibHandle, PChar(FuncName));
    if LibPointer <> NIL then Result := true;
    end;
    end;

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

Discussions similaires

  1. calcul avec un logarithme, erreur de procédure 5
    Par Titened dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 17/06/2011, 20h13
  2. Problème erreur avec procédure stockée
    Par hugo7 dans le forum ASP.NET
    Réponses: 8
    Dernier message: 03/02/2009, 17h22
  3. Réponses: 8
    Dernier message: 06/03/2008, 16h32
  4. Message d'erreur avec la procédure InStr
    Par Subkill dans le forum VB 6 et antérieur
    Réponses: 6
    Dernier message: 22/03/2007, 19h36
  5. [PEAR][MDB2] Erreur avec une procédure stockée
    Par mikedavem dans le forum Bibliothèques et frameworks
    Réponses: 4
    Dernier message: 04/01/2007, 16h49

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