Accueil > Forum > > > > Lancer (Shell ou process.start) un application classique (notepad.exe) depuis un service (monservice.exe)
Lancer (Shell ou process.start) un application classique (notepad.exe) depuis un service (monservice.exe)
mardi 10 juin 2008 à 12:41:43 |
Lancer (Shell ou process.start) un application classique (notepad.exe) depuis un service (monservice.exe)

mallett
|
Bonjour a tous, Je galere grave depuis quelques jours sur un petit besoin specifique ! J'ai une application classique avec Interface (MonAppli.exe) J'ai un service qui tourne (MonService.exe) Et si MonService detecte que le process de MonAppli n'est pas lancer, je souhaite qu'il le lance. Petit soucis (classique) le service est un process SYSTEM, alors que l'appli doit etre lancer sur le Desktop du CURRENT USER pour pouvoir interagir avec l'utilisateur. Question : Comment faire pour lancer (shell ou Process.Start) une appli sur l'utiliseur principal actuellement loggé (qui dispose d'un DESKTOP pour avoir les interfaces) et non sur le desktop du SYSTEM (qui tourne lui sans interface) ? J'ai rien trouver de clair dans ce sens, pourriez-vous m'aider ? Merci d'avance Thierry
|
|
mardi 10 juin 2008 à 14:23:56 |
Re : Lancer (Shell ou process.start) un application classique (notepad.exe) depuis un service (monservice.exe)

vaughan
|
Réponse acceptée !
Est-ce que l'api CreateProcessWithLogonW peut faire l'affaire ??? [ Lien ]http://www.vbfrance.com/infomsg_RUN-AS-VB6_1061764.aspxVoici le déclaration VB : Private Const SW_SHOWNORMAL = 1 Private Const LOGON_WITH_PROFILE = &H1& Private Const LOGON_NETCREDENTIALS_ONLY = &H2& Private Const CREATE_DEFAULT_ERROR_MODE = &H4000000 Private Const CREATE_NEW_CONSOLE = &H10& Private Const CREATE_NEW_PROCESS_GROUP = &H200& Private Const CREATE_SEPARATE_WOW_VDM = &H800& Private Const CREATE_SUSPENDED = &H4& Private Const CREATE_UNICODE_ENVIRONMENT = &H400& Private Const ABOVE_NORMAL_PRIORITY_CLASS = &H8000& Private Const BELOW_NORMAL_PRIORITY_CLASS = &H4000& Private Const HIGH_PRIORITY_CLASS = &H80& Private Const IDLE_PRIORITY_CLASS = &H40& Private Const NORMAL_PRIORITY_CLASS = &H20& Private Const REALTIME_PRIORITY_CLASS = &H100&
Public Type STARTUPINFO cb As Long lpReserved As String lpDesktop As String lpTitle As String dwX As Long dwY As Long dwXSize As Long dwYSize As Long dwXCountChars As Long dwYCountChars As Long dwFillAttribute As Long dwFlags As Long wShowWindow As Integer cbReserved2 As Integer lpReserved2 As Long hStdInput As Long hStdOutput As Long hStdError As Long End Type
Public Type PROCESS_INFORMATION hProcess As Long hThread As Long dwProcessID As Long dwThreadID As Long End Type
Declare Function CreateProcessWithLogon Lib "Advapi32" Alias "CreateProcessWithLogonW" (ByVal lpUsername As Long, ByVal lpDomain As Long, ByVal lpPassword As Long, ByVal dwLogonFlags As Long, ByVal lpApplicationName As Long, ByVal lpCommandLine As Long, ByVal dwCreationFlags As Long, ByVal lpEnvironment As Long, ByVal lpCurrentDirectory As Long, lpStartupInfo As STARTUPINFO, lpProcessInfo As PROCESS_INFORMATION) As Longvaughan
|
|
mardi 10 juin 2008 à 14:44:18 |
Re : Lancer (Shell ou process.start) un application classique (notepad.exe) depuis un service (monservice.exe)

Megafan
|
Réponse acceptée !
Salut, Regarde dans la structure StartInfo, il y a possiblité de déclarer le UserName du créateur du process. @+ Megafan
|
|
mardi 10 juin 2008 à 14:57:30 |
Re : Lancer (Shell ou process.start) un application classique (notepad.exe) depuis un service (monservice.exe)

Megafan
|
Salut, j'oubliais il faut ausi UseShellExecute a false dans le StatyInfo @+ Megafan
|
|
mardi 10 juin 2008 à 15:59:38 |
Re : Lancer (Shell ou process.start) un application classique (notepad.exe) depuis un service (monservice.exe)

Megafan
|
Salut, Je viens d'essayer sur ma machine avec un startinfo, cela fonctionne tres bien.... Par contre il y a un truc qui passe pas c'est le DOMAINE\UserName Utilise l'enregistrement DNS username@mondomaine.truc @+ Megafan
|
|
mardi 10 juin 2008 à 16:27:22 |
Re : Lancer (Shell ou process.start) un application classique (notepad.exe) depuis un service (monservice.exe)

mallett
|
A tu testé depuis un service ?
Car moi ca marche pas, ca fonctionne depuis une autre appli lancer par un utilisateur mais pas depuis un service SYSTEM.
|
|
mardi 10 juin 2008 à 16:36:56 |
Re : Lancer (Shell ou process.start) un application classique (notepad.exe) depuis un service (monservice.exe)

Megafan
|
SAlut, Non j'ai pas essayé depuis un service Faut que j'essaye alors......... @+ Megafan
|
|
mardi 10 juin 2008 à 18:01:05 |
Re : Lancer (Shell ou process.start) un application classique (notepad.exe) depuis un service (monservice.exe)

PCPT
|
ré-édition du message de Mallett (désolé on ne peut pas modifier directement)
Re : Lancer (Shell ou process.start) un application classique (notepad.exe) depuis un service (monservice.exe) le 10/06/2008 15:02:09
Merci ..
J'ai bien tanté le startinfo.username mais je me trouve avec un "acces refusé".
Et pour l'API CreateProcessWithLogonW, il faut imperativement fournir le password. L'idéal serait de pouvoir faire depuis le service un :
runas.exe /user:Domaine\User /savecred APLI.exe
Mais ca fait rien du tout (ni message d'erreur d'ailleur) j'ai l'impression qu'il lance le RUNAS comme il faut mais qu'il ne lance pas l'appli.
Question subsidière.. Si je devais utiliser username et password du startinfo. Auriez vous un exemple de code pour gérer le password dans un startinfo.
Mon exemple (celui qui me donne un "Accès refusé") :
Try
Dim SourceDir AsString = My.Application.Info.DirectoryPath & "\" Dim StartProcess AsNew Process Dim PassCrypt AsNew SecureString Dim PassClear AsString = "XXX"
For i AsInteger = 1 To PassClear.Length PassCrypt.AppendChar(Mid(PassClear, i, 1)) Next
PassCrypt.MakeReadOnly() StartProcess.StartInfo.UseShellExecute = False StartProcess.StartInfo.LoadUserProfile = True StartProcess.StartInfo.UserName = "YYY\USER" StartProcess.StartInfo.Password = PassCrypt StartProcess.StartInfo.Verb = "" StartProcess.StartInfo.FileName = SourceDir & "VigilantCenter.exe" StartProcess.StartInfo.WindowStyle = ProcessWindowStyle.Normal StartProcess.StartInfo.Arguments = "" StartProcess.Start()
Catch ex As Exception SendLog("StartProcess Exception : " & ex.Message) EndTry
Une ID ? Merci
|
|
mardi 10 juin 2008 à 20:29:56 |
Re : Lancer (Shell ou process.start) un application classique (notepad.exe) depuis un service (monservice.exe)

Megafan
|
Salut J'avais vu que tu avais laissé quelques elements confidentiels.... (pas grave, personne ne le sais....) ;) Pour continuer, effectivement j'ai le meme message d'erreur que toi meme en spéciifant que le service est autorisé à interagir avec le bureau. Un simple shell par contre fonctionne....par contre le .exe est lancé par l'utilsateur SYSTEM. Je sêche un peu aussi.... @+ Megafan
|
|
mardi 10 juin 2008 à 20:45:17 |
Re : Lancer (Shell ou process.start) un application classique (notepad.exe) depuis un service (monservice.exe)

PCPT
|
je n'avais pas lu la question.... dans un contexte "normal" (c'est à dire sans bidouille), une application avec interface NE peut PAS être lancée en tant que service, tout simplement quant aux bidouilles je ne les connais pas, si BruNews passe par là il pourra sans doute te donner plus d'infos. au pire regarde sur le forum, il avait lancé quelques pistes de réponse il y a moins de 3 mois ++ Prenez un instant pour répondre à ce sondage svp 
|
|
Cette discussion est classée dans : exe, lancer, process, service, classique
Répondre à ce message
Sujets en rapport avec ce message
Lancer un EXE VB avec Netscape/IE5 [ par Bernard ]
Bonjour,Peux t'on lancer un programme executable VB à partit d'un provider Netscape ou IE 5.x. Soit avec un lien sur cet EXE ou autre.Je vous remecie
comment lancer un exe depuis VB ??? [ par baba ]
je voudrais lancer un "exe VB" depuis un autre code VB, comment faire???comment lancer un exe depuis VB ???
Lancer un exe avec des options [ par cameleon ]
Je cherche comment reprendre des options dans une ligne de commande après un exe.Exemple : C:Projet.exe /print mais pas dans un SHELLpour que mon proj
Comment lancer un exe sous VB6 sans connaitre le chemin ? [ par Jerome ]
OU comment trouver le répertoire complet d'un fichier exécutable ? Merci,
exe devant fonctionner en session fermée (service ???) comment faire ? [ par Nascimo ]
Bonjour,J'ai un programme fonctionnant en boucle infinie. Mais il doit fonctionner meme lorsque la session est fermée (et pas vérouillée par ctr-alt-s
lancer un exe [ par fabrice88 ]
slt,comment peut-on lance un exe depuis vb??(syntaxe et lignes de commandes
lancer un .exe depuis une page asp par exemple [ par zekmek ]
quel est le code a mettre dans la page pour mettre un lien qui lance mailing.exe par exemple ?merci
lancer un .exe depuis une page asp ... [ par zekmek ]
qqun pourrait me dire comment faire ? je débute...merci beaucoup ;-)
Passer un exe en service avec win 2000 [ par MacBoiss ]
Bonjour,lorsque je me sers des sources de se site pour passer mon appli en service,mon appli ne se compile pas car ca me balance le msg d'erreur : "Po
Comment lancer un exe quelconque en tant que form fille depuis une form MDI enVB6 [ par rbrault ]
1-Ce que je sais faire:Lancer une application quelconque (word, excel, bidule.exe, machin.exe....) depuis une application MDI ecrite an VB6.2-Ce que j
Livres en rapport
|
Derniers Blogs
GESTION D'EXCEPTION AVEC LES TASKSGESTION D'EXCEPTION AVEC LES TASKS par richardc
Nous avons vu dans un précédent article comment utiliser Task pour effectuer des opérations dans un autre thread.
Malheureusement, comme tout le monde n'est pas parfait, il se peut que cette exécution se passe mal et qu'une exception se produise.
La...
Cliquez pour lire la suite de l'article par richardc DéMARRONS AVEC LES TASKSDéMARRONS AVEC LES TASKS par richardc
Que vous le vouliez ou non, le développement multi-tâche est maintenant une obligation pour toute nouvelle application. Il est donc vital d'en comprendre les mécanismes et de s'y mettre le plus tôt possible.
En attendant le .NET Framework 4.5 avec le...
Cliquez pour lire la suite de l'article par richardc SLIDE & DéMO TECHDAYS 2012 - FAST & FURIOUS XAML APPSSLIDE & DéMO TECHDAYS 2012 - FAST & FURIOUS XAML APPS par Vko
Retrouvez les slides et les démo de ma session Fast & Furious XAML Apps. A ceux qui se posent la question : "est-ce que le code de la DataGrid est disponible?", je vous répondrais "pas encore". Je vais mettre en place un projet codeplex pour part...
Cliquez pour lire la suite de l'article par Vko XNA IS DEAD!XNA IS DEAD! par richardc
Depuis la semaine dernière (et grâce aux TechDays 2012), je me penche activement sur la nouvelle version de Windows, aka Windows 8. Vous me direz, il était temps puisque la première preview date de Septembre dernier.
OK. Remarquez, on n'en est qu'aux...
Cliquez pour lire la suite de l'article par richardc TECHDAYS PARIS 2012 : WINDOWS SERVER "8" QUOI DE 9 !TECHDAYS PARIS 2012 : WINDOWS SERVER "8" QUOI DE 9 ! par ROMELARD Fabrice
Speakers: Fabrice Meillon et Stanislas Quastana Cette session est basée entièrement sur celle donnée lors de la BUILD cet hiver. Il n'y a pas d'ajout d'information en rapport avec cet évènement passé. Windows 8 Server sera intégralem...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice
Logiciels
DocTranslate (V3.1.0.0)DOCTRANSLATE (V3.1.0.0)DocTranslate est un traducteur de document Microsoft Word, PowerPoint et Excel. Il permet d'autom... Cliquez pour télécharger DocTranslate Tribler (2012)TRIBLER (2012)Tribler est un client pair à pair (P2P/Peer-to-Peer) open source avec la capacité de regarder des... Cliquez pour télécharger Tribler OneSwarm (2012)ONESWARM (2012)Le peer-to-peer qui protège votre vie privée, c'est OneSwarm.
Ce logiciel de peer-to-peer crypté... Cliquez pour télécharger OneSwarm PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System
|