Polack77
Messages postés1098Date d'inscriptionmercredi 22 mars 2006StatutMembreDernière intervention22 octobre 2019
-
19 oct. 2007 à 10:40
Polack77
Messages postés1098Date d'inscriptionmercredi 22 mars 2006StatutMembreDernière intervention22 octobre 2019
-
22 oct. 2007 à 10:49
Bonjour
J'ai (encore ) un problème. Je développe actuellement une appli de gestion de données qui doit pouvoir se connecter à TOUT type de base de données (BdD fichier y compris ). Je crée donc une classe permettant de faire ça (et j'ai encore pas mal de fonction/procédure/débug/teste/amélioration/... a faire).
Pour cela je voudrais utilisé pour configuré une connections ODBC éventuel ça :
Si Excel sait le faire c'est que ça doit bien être quelque part! Je trouve nul part !
Si quelqu'un sait où, ce serait très gentil de me faire profité de ça grande expériences dans des domaines aussi varié que divers et de sa grande inélégance, et de son charisme inégalable, et de ... (J'enverrais toute les compliments qu'il faudras, lol )
cs_casy
Messages postés7741Date d'inscriptionmercredi 1 septembre 2004StatutMembreDernière intervention24 septembre 201440 19 oct. 2007 à 10:54
Pour créer et paramétrer une source ODBC sur la machine ou le code va etre executé, il faut aller dans le Panneau de configuration / Outils d'administration / Sources de données ODBC
---- Sevyc64 (alias Casy) ----# LE PARTAGE EST NOTRE FORCE #
Polack77
Messages postés1098Date d'inscriptionmercredi 22 mars 2006StatutMembreDernière intervention22 octobre 20191 19 oct. 2007 à 11:40
Heee, oui, mais ça je sait.
Merci quand même
Je me ré-explique
Ce que je veux c'est cette form directement par mon prog (tout pareil qu'excel) soit :
-> Un 'truc' du type de Common dialog control (tout pareil qu'excel)
-> De commencé par la form que je montre sur mon 1ér post (tout pareil qu'excel).
-> De ne pas avoir à forcément crée une connection que Win peut ré-utilisé (tout pareil qu'excel)
En ce moment je cherche par commande Shell :
-> Retourne l'ID du processus lancé
-> Récup le handle du processus <---------- Je suis ici
-> Faire un setparent pour l'intégrer à mon prog
Bon, ça se développe vite, ça vas faire à peut prés ce que je veux, mais pas exactement (la connections pourras être réutilisé par Win, et je ne suis pas serin vie à vie de la sécurité, en même temps je n'en sais pas grand chose mais quand même)
En plus dans ce cas j'arrive là (et c'est pas exactement ce que je veux en final) :
Polack77
Messages postés1098Date d'inscriptionmercredi 22 mars 2006StatutMembreDernière intervention22 octobre 20191 19 oct. 2007 à 12:38
Bon soit c'est pas possible de faire un 'SetParent' avec cette %$£%§! de fenêtre soit c'est vraiment galère à faire.
Donc je laisse tombé cette idée.
Je vais simplement attendre la mort de cette fenaitre (j'ai vue un truc déjà tout fait quelque part, mais où )
Pour récup le handle de la fenêtre lancé par shell et l'intégrer à une picutrebox, ça peut toujours servir à quel qu'un :
Code à collé dans une form contenant une picturebox nommé Picture1, un bouton (par exemple) exécutant la procédure "teste"
***************************************
Private Declare Function SetParent Lib "user32" ( _
ByVal hWndChild As Long, _
ByVal hWndNewParent As Long) As Long
'--------------------------------------
'ce code provient de l'API-Guid
Private Const GW_HWNDNEXT As Long = 2&
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As Long, ByVal lpWindowName As Long) As Long
Private Declare Function GetParent Lib "user32" (ByVal hwnd As Long) As Long
Private Declare Function ShowWindow Lib "user32" (ByVal hwnd As Long, ByVal nCmdShow As Long) As Long
Private Declare Function GetWindowThreadProcessId Lib "user32" (ByVal hwnd As Long, lpdwProcessId As Long) As Long
Private Declare Function GetWindow Lib "user32" (ByVal hwnd As Long, ByVal wCmd As Long) As Long
'
Public Function InstanceToWnd(ByVal target_pid As Long) As Long 'API-Guid
Dim test_hwnd As Long, test_pid As Long, test_thread_id As Long
test_hwnd = FindWindow(ByVal 0&, ByVal 0&)
Do While test_hwnd <> 0&
If GetParent(test_hwnd) = 0& Then
test_thread_id = GetWindowThreadProcessId(test_hwnd, test_pid)
If test_pid = target_pid Then
InstanceToWnd = test_hwnd
Exit Do
End If
End If
test_hwnd = GetWindow(test_hwnd, GW_HWNDNEXT)
Loop
End Function
'--------------------------------------
Public Sub teste()
Dim ProsID As Long
Dim hwndPros As Long
ProsID = Shell("Ici un Exe") '<-- Ne pas oublié de modifier si non erreur
hwndPros = InstanceToWnd(ProsID)
SetParent hwndPros, Me.Picture1.hwnd
End Sub
***************************************
Amicalement
Pensez "Réponse acceptée"
Vous n’avez pas trouvé la réponse que vous recherchez ?
Polack77
Messages postés1098Date d'inscriptionmercredi 22 mars 2006StatutMembreDernière intervention22 octobre 20191 19 oct. 2007 à 12:49
Heeee oui je m'en montante pour le moment mais J'EN VEUT PLUS (d'or, de pirates, d'îles dans les nuages,
de nami/robine en maillot, de barbek de sanji,
de chapitres, d'épisodes, ... Heee je m'égare là...
)
Bon si non j'ai re-trouvé ce piti code qui me permet d'attendre la mort d'une fenêtre dont on à le handle (la reconstitution s'avère facile, il me semble)
Polack77
Messages postés1098Date d'inscriptionmercredi 22 mars 2006StatutMembreDernière intervention22 octobre 20191 19 oct. 2007 à 12:58
Heeee, par contre (si en final la solution temporaire est la définitive) je demande à mon utilisateur de tapé 2 fois un nom de connections (risque d'erreur) et ... ça me plais pas (oui je sait que je suis un chieur, mais bon...)
Polack77
Messages postés1098Date d'inscriptionmercredi 22 mars 2006StatutMembreDernière intervention22 octobre 20191 19 oct. 2007 à 13:30
Si non temps pis (je vais pas y passé la journée), je re-développe des form 'maison' (je sait lire la liste des drivers ODBC dans la base de registre, je n'ai pas ce code sur moi, me faire pensé lundi à le posté si ça intéresse du monde ) mais je ne sait pas différencier celle qui attende des fichiers et celle qui attende des IP. L'idéale serais la liste des paramètres attendu
cs_Willi
Messages postés2375Date d'inscriptionjeudi 12 juillet 2001StatutModérateurDernière intervention15 décembre 201822 19 oct. 2007 à 15:13
Tu peux afficher la fenetre d'une nouvelle connection déjà remplis avec des valeurs l'utilisateur n'aura plus qu'à indiquer les bonnes valeurs et à valider. Si intéressé fait moi signe.
Polack77
Messages postés1098Date d'inscriptionmercredi 22 mars 2006StatutMembreDernière intervention22 octobre 20191 20 oct. 2007 à 12:32
Ok (je bosse le WeekEnd !!! Mais qu'es que je fait ???)
Bon si je comprend bien cette API (fonction se trouvant dans une dll win, ici "odbccp32.dll"
dans le dossier "system32" de Win, corrigez moi si je raconte des conneries) me permet de crée une connection, fichier, utilisateur, ou system en ODBC.
Déjà pas mal
Bon ce n'est pas mon objectif final mais BIEN quand même, Merci
Par contre si tu pouvais me dire où tu trouvé cette info. Je cherche un site/livre bien fait sur les API (je suis sure que je vais apprendre PLEIN de 'truc').
Polack77
Messages postés1098Date d'inscriptionmercredi 22 mars 2006StatutMembreDernière intervention22 octobre 20191 20 oct. 2007 à 16:08
En faite j'ai tester (je ne répond jamais sans au moins tester, je re-test tout de suite).
(mercij'apprécie vraiment le coup de main, c'est moi qui suis un chieur et je le sais, on me le dit suffisamment souvent pour que je ne le prenne pas mal )
En faite (mais heeee j'ai pas Excel là tout de suite pour re-faire un test sur son fonctionement, suis sur OpenOffice à la maison) je voudrais que mes connections ne soit pas réutilisable par d'autre logiciel (ici elle sont accessible par "Outils d'administration/Sources de données (ODBC)" onglets "Sources de données utilisateur/Sources de données système/Sources de données fichier") cette classe que je développe vas se retrouvé dans un logiciel destiné à traité des données dite 'sensible' chez nos client (et je ne veut pas le moindre reproche vis à vis de la sécurité, même dans le cas d'une connection ODBC).
Si ça ne tenais qu'à moi je ferais un groupe de radiobuton pour sélectionné le type de connection, et demanderais la chaîne de connection (on vas pas configuré tout les jours!!!), mais bon....
Par contre si il y à possibilité de "pré-paramétrer" cette fenêtre (oui je suis un chieur et je demande la lune) de façon à faire une connection fichier et que je prenne "possession" de ce fichier (quitte à le crypté par la suite) je serais plus tranquil.
Tout ça pour dire :
Merci c'est à 99,9% ce que je cherche. (En sous-entendu c'est moi qui fais chier)
Je m'attend même à utilisé cette option en final et d'afficher un 'tuto' durant la configuration de la connection pour que ça ce fasse tout pile poile ce que je veux.
Désolé si je t'ai froissé
Amicalement
Pensez "Réponse acceptée"
Polack77
Messages postés1098Date d'inscriptionmercredi 22 mars 2006StatutMembreDernière intervention22 octobre 20191 22 oct. 2007 à 10:07
Bonjour ,
Ce que tu m'a fournis fait effectivement à peut près ce que fait Excel. Il me semblais que Excel savais faire des connections 'propriétaire' (dans le sens ou seul lui peut l'utilisé), or je me trompais. Je conserve donc ta solution Willi.
Merci encore (par contre tu ne m'a pas dit où tu avais trouvé cette info, svp c'est possible ? )