CAMBIAR POSICION EN INICIO DEL PROGRAMA

Iniciado por FCOSTA, 1 Octubre 2014, 03:34 AM

0 Miembros y 1 Visitante están viendo este tema.

FCOSTA

HOLA

Tengo un programita (un simple EXE) que me sirve para el contraste del monitor. (Lo baje de una web. Es gratis.)

PERO cada vez que se ejecuta me sale la interface (la pantallita del programa que están simple que solo tiene una pantalla) pues me sale justo EN MEDIO del monitor.  Y tengo que coger con el puntero del raton y llevarla a la esquina derecha abajo que me es mas comoda. (me va mejor) Y eso es cada dia.
Un dia no cuesta nada. Pero cada dia es un poco "palo".

Yo pregunto... ¿Hay alguna forma de que el interface (pantalla) del programa se inicie en el lugar que tu quieras del monitor? 

Para mas información uso el XP

Gracias a todos.

andreselmejor


En el acceso directo o en el .exe en las propiedades(click boton derecho del mouse) colocale que inicie(ejecute) en pantalla minimizada no pantalla normal,con eso te la iniciara minimizada en una esquina.

Suerte.


Tal vez así,se aprende un poco mas.

Por fin se fue !!!!!! (2014-2018) sin piñericosas !!!!!!!

De antologia :

http://foro.elhacker.net/foro_libre/duda_mi_mira_fijamente-t325117.0.html

Descarga MP3 gratis

Eleкtro

#2
Cita de: andreselmejor en  1 Octubre 2014, 03:50 AM
En el acceso directo o en el .exe en las propiedades(click boton derecho del mouse) colocale que inicie(ejecute) en pantalla minimizada no pantalla normal,con eso te la iniciara minimizada en una esquina.

Creo que se refiere a posicionar la ventana de la aplicación en la esquina inferior derecha, pero en estado normal, no minimizada.



Se puede hacer mediante la API de Windows, siempre puedes escribir un wrapper para la función específica, pero obviamente para esto necesitas desarrollar un Script o una aplicación, ¿como andas de conocimientos de programación?.

Los pasos a seguir:
1) Encontrar el proceso.
2) Obtener el Handle de su ventana principal.
3) Mover la ventana.

Este ejemplo lo he desarrollado en VB.NET para ayudarte a resolver tu problema,
el código posiciona la ventana de X programa en Y esquina de la pantalla especificada (bueno, la verdad es que no lo he testeado en más pantallas que la primaria, de momento puede estar solo de adorno), si te sirve, solo tienes que seguir este ejemplo de abajo para llamar al método usando el nombre del proceso que quieres mover a la esquina derecha, luego compilas el código con VisualStudio, y ejecutas la aplicación compilada despues de ejecutar el programa que quieres mover.

Ejemplo de uso:

Código (vbnet) [Seleccionar]
SetWindowPosition.SetWindowPos("proceso.exe", SetWindowPosition.Corner.BottomRight)
SetWindowPosition.SetWindowPos("proceso.exe", X:=100, Y:=100, Bounds:=SystemInformation.VirtualScreen)


Source:

Código (vbnet) [Seleccionar]
' ***********************************************************************
' Author           : Elektro
' Last Modified On : 10-01-2014
' ***********************************************************************
' <copyright file="SetWindowPosition.vb" company="Elektro Studios">
'     Copyright (c) Elektro Studios. All rights reserved.
' </copyright>
' ***********************************************************************

#Region " Example Usage "

' SetWindowPosition.SetWindowPos("proceso.exe", SetWindowPosition.Corner.BottomRight)
' SetWindowPosition.SetWindowPos("proceso.exe", X:=100, Y:=100, Bounds:=SystemInformation.VirtualScreen)

#End Region

#Region " Imports "

Imports System.ComponentModel
Imports System.Runtime.InteropServices

#End Region

''' <summary>
''' Set the position of a window.
''' </summary>
Public Class SetWindowPosition

#Region " P/Invoke "

   ''' <summary>
   ''' Platform Invocation methods (P/Invoke), access unmanaged code.
   ''' This class does not suppress stack walks for unmanaged code permission.
   ''' <see cref="System.Security.SuppressUnmanagedCodeSecurityAttribute"/>  must not be applied to this class.
   ''' This class is for methods that can be used anywhere because a stack walk will be performed.
   ''' MSDN Documentation: http://msdn.microsoft.com/en-us/library/ms182161.aspx
   ''' </summary>
   Protected NotInheritable Class NativeMethods

#Region " Methods "

       ''' <summary>
       ''' Changes the size, position, and Z order of a child, pop-up, or top-level window.
       ''' These windows are ordered according to their appearance on the screen.
       ''' The topmost window receives the highest rank and is the first window in the Z order.
       ''' MSDN Documentation: http://msdn.microsoft.com/en-us/library/windows/desktop/ms633545%28v=vs.85%29.aspx
       ''' </summary>
       ''' <param name="hWnd">
       ''' A handle to the window.
       ''' </param>
       ''' <param name="hWndInsertAfter">
       ''' A special handle to the window to precede the positioned window in the Z order.
       ''' This parameter must be a window handle or one of the <see cref="SpecialWindowHandles"/> values.
       ''' </param>
       ''' <param name="X">
       ''' The new position of the left side of the window, in client coordinates.
       ''' </param>
       ''' <param name="Y">
       ''' The new position of the top of the window, in client coordinates.
       ''' </param>
       ''' <param name="cx">
       ''' The new width of the window, in pixels.
       ''' </param>
       ''' <param name="cy">
       ''' The new height of the window, in pixels.
       ''' </param>
       ''' <param name="uFlags">
       ''' The window sizing and positioning flags.
       ''' </param>
       ''' <returns><c>true</c> if the function succeeds, <c>false</c> otherwise.</returns>
       <DllImport("user32.dll", SetLastError:=True)>
       Friend Shared Function SetWindowPos(
              ByVal hWnd As IntPtr,
              ByVal hWndInsertAfter As SpecialWindowHandles,
              ByVal X As Integer,
              ByVal Y As Integer,
              ByVal cx As Integer,
              ByVal cy As Integer,
              ByVal uFlags As SetWindowPosFlags
       ) As Boolean
       End Function

       ''' <summary>
       ''' Retrieves the dimensions of the bounding rectangle of the specified window.
       ''' The dimensions are given in screen coordinates that are relative to the upper-left corner of the screen.
       ''' MSDN Documentation: http://msdn.microsoft.com/en-us/library/windows/desktop/ms633519%28v=vs.85%29.aspx
       ''' </summary>
       ''' <param name="hWnd">A handle to the window.</param>
       ''' <param name="rc">
       ''' A pointer to a RECT structure that receives the screen coordinates of
       ''' the upper-left and lower-right corners of the window.
       ''' </param>
       ''' <returns><c>true</c> if the function succeeds, <c>false</c> otherwise.</returns>
       <DllImport("user32.dll", SetLastError:=True)>
       Friend Shared Function GetWindowRect(
              ByVal hWnd As IntPtr,
              ByRef rc As Rectangle
       ) As Boolean
       End Function

#End Region

#Region " Enumerations "

       ''' <summary>
       ''' Specifies the window sizing and positioning flags.
       ''' MSDN Documentation: http://msdn.microsoft.com/en-us/library/windows/desktop/ms633545%28v=vs.85%29.aspx
       ''' </summary>
       <Description("Enum used as 'uFlags' parameter of 'NativeMethods.SetWindowPos' function")>
       <Flags>
       Friend Enum SetWindowPosFlags As UInteger

           ''' <summary>
           ''' If the calling thread and the thread that owns the window are attached to different input queues,
           ''' the system posts the request to the thread that owns the window.
           ''' This prevents the calling thread from blocking its execution while other threads process the request.
           ''' </summary>
           ''' <remarks>SWP_ASYNCWINDOWPOS</remarks>
           SynchronousWindowPosition = &H4000UI

           ''' <summary>
           ''' Prevents generation of the WM_SYNCPAINT message.
           ''' </summary>
           ''' <remarks>SWP_DEFERERASE</remarks>
           DeferErase = &H2000UI

           ''' <summary>
           ''' Draws a frame (defined in the window's class description) around the window.
           ''' </summary>
           ''' <remarks>SWP_DRAWFRAME</remarks>
           DrawFrame = &H20UI

           ''' <summary>
           ''' Applies new frame styles set using the SetWindowLong function.
           ''' Sends a WM_NCCALCSIZE message to the window, even if the window's size is not being changed.
           ''' If this flag is not specified, WM_NCCALCSIZE is sent only when the window's size is being changed.
           ''' </summary>
           ''' <remarks>SWP_FRAMECHANGED</remarks>
           FrameChanged = &H20UI

           ''' <summary>
           ''' Hides the window.
           ''' </summary>
           ''' <remarks>SWP_HIDEWINDOW</remarks>
           HideWindow = &H80UI

           ''' <summary>
           ''' Does not activate the window.
           ''' If this flag is not set, the window is activated and moved to the top of
           ''' either the topmost or non-topmost group (depending on the setting of the hWndInsertAfter parameter).
           ''' </summary>
           ''' <remarks>SWP_NOACTIVATE</remarks>
           DoNotActivate = &H10UI

           ''' <summary>
           ''' Discards the entire contents of the client area. If this flag is not specified,
           ''' the valid contents of the client area are saved and copied back into the
           ''' client area after the window is sized or repositioned.
           ''' </summary>
           ''' <remarks>SWP_NOCOPYBITS</remarks>
           DoNotCopyBits = &H100UI

           ''' <summary>
           ''' Retains the current position (ignores X and Y parameters).
           ''' </summary>
           ''' <remarks>SWP_NOMOVE</remarks>
           IgnoreMove = &H2UI

           ''' <summary>
           ''' Does not change the owner window's position in the Z order.
           ''' </summary>
           ''' <remarks>SWP_NOOWNERZORDER</remarks>
           DoNotChangeOwnerZOrder = &H200UI

           ''' <summary>
           ''' Does not redraw changes.
           ''' If this flag is set, no repainting of any kind occurs.
           ''' This applies to  the client area, the nonclient area (including the title bar and scroll bars),
           ''' and any part of the parent window uncovered as a result of the window being moved.
           ''' When this flag is set, the application must explicitly invalidate or
           ''' redraw any parts of the window and parent window that need redrawing.
           ''' </summary>
           ''' <remarks>SWP_NOREDRAW</remarks>
           DoNotRedraw = &H8UI

           ''' <summary>
           ''' Same as the SWP_NOOWNERZORDER flag.
           ''' </summary>
           ''' <remarks>SWP_NOREPOSITION</remarks>
           DoNotReposition = &H200UI

           ''' <summary>
           ''' Prevents the window from receiving the WM_WINDOWPOSCHANGING message.
           ''' </summary>
           ''' <remarks>SWP_NOSENDCHANGING</remarks>
           DoNotSendChangingEvent = &H400UI

           ''' <summary>
           ''' Retains the current size (ignores the cx and cy parameters).
           ''' </summary>
           ''' <remarks>SWP_NOSIZE</remarks>
           IgnoreResize = &H1UI

           ''' <summary>
           ''' Retains the current Z order (ignores the hWndInsertAfter parameter).
           ''' </summary>
           ''' <remarks>SWP_NOZORDER</remarks>
           IgnoreZOrder = &H4UI

           ''' <summary>
           ''' Displays the window.
           ''' </summary>
           ''' <remarks>SWP_SHOWWINDOW</remarks>
           ShowWindow = &H40UI

       End Enum

       ''' <summary>
       ''' Specifies a special handle to the window to precede the positioned window in the Z order.
       ''' MSDN Documentation: http://msdn.microsoft.com/en-us/library/windows/desktop/ms633545%28v=vs.85%29.aspx
       ''' </summary>
       <Description("Enum used as 'hWndInsertAfter' parameter of 'NativeMethods.SetWindowPos' function")>
       Friend Enum SpecialWindowHandles As Integer

           ''' <summary>
           ''' Places the window at the top of the Z order.
           ''' </summary>
           Top = 0I

           ''' <summary>
           ''' Places the window at the bottom of the Z order.
           ''' If the hWnd parameter identifies a topmost window,
           ''' the window loses its topmost status and is placed at the bottom of all other windows.
           ''' </summary>
           Bottom = 1I

           ''' <summary>
           ''' Places the window above all non-topmost windows.
           ''' The window maintains its topmost position even when it is deactivated.
           ''' </summary>
           TopMost = -1I

           ''' <summary>
           ''' Places the window above all non-topmost windows (that is, behind all topmost windows).
           ''' This flag has no effect if the window is already a non-topmost window.
           ''' </summary>
           NoTopMost = -2I

       End Enum

#End Region

   End Class

#End Region

#Region " Enumerations "

   ''' <summary>
   ''' Specifies a screen corner.
   ''' </summary>
   <Description("Enum used as 'Corner' parameter of 'SetWindowPos' function")>
   Friend Enum Corner As Integer

       ''' <summary>
       ''' Top-Left screen corner.
       ''' </summary>
       TopLeft = 0I

       ''' <summary>
       ''' Top-Right screen corner.
       ''' </summary>
       TopRight = 1I

       ''' <summary>
       ''' Bottom-Left screen corner.
       ''' </summary>
       BottomLeft = 2I
       ''' <summary>
       ''' Bottom-Right screen corner.
       ''' </summary>0
       BottomRight = 3I

   End Enum

#End Region

#Region " Public Methods "

   ''' <summary>
   ''' Set the position of a window.
   ''' </summary>
   ''' <param name="ProcessName">The process name.</param>
   ''' <param name="Corner">The new window position, a screen corner.</param>
   ''' <param name="Bounds">
   ''' The screen <see cref="Rectangle"/> where the window is shown.
   ''' If this parameter is empty, <see cref="Screen.PrimaryScreen"/> is used as default.
   ''' </param>
   Friend Shared Sub SetWindowPos(ByVal ProcessName As String,
                                  ByVal Corner As Corner,
                                  Optional ByVal Bounds As Rectangle = Nothing)

       Dim Rect As Rectangle  ' The specified screen bounds
       Dim HWND As IntPtr     ' The process main window handle.
       Dim Width As Integer   ' The process window width.
       Dim Height As Integer  ' The process window height.
       Dim x As Integer
       Dim y As Integer

       If Bounds.IsEmpty Then
           Bounds = Screen.PrimaryScreen.WorkingArea
       End If

       ' Iterate the process instances.
       For Each p As Process In Process.GetProcessesByName(FixProcessName(ProcessName))

           Try
               ' Get the main window handle.
               HWND = p.MainWindowHandle

               ' Copy the process window position and size into the Rectangle.
               ' NOTE: This is not a bad practice, but 'GetWindowRect' function should use a Windows API 'RECT' structure.
               NativeMethods.GetWindowRect(HWND, Rect)
               Width = (Rect.Width - Rect.Left)    ' Set the window width
               Height = (Rect.Height - Rect.Top) ' Set the window height

               Select Case Corner

                   Case SetWindowPosition.Corner.TopLeft
                       x = Bounds.Left
                       y = Bounds.Top

                   Case SetWindowPosition.Corner.TopRight
                       x = Bounds.Right - Width
                       y = Bounds.Top

                   Case SetWindowPosition.Corner.BottomLeft
                       x = Bounds.Left
                       y = Bounds.Bottom - Height

                   Case SetWindowPosition.Corner.BottomRight
                       x = Bounds.Right - Width
                       y = Bounds.Bottom - Height

               End Select

               ' Move the Main Window.
               NativeMethods.SetWindowPos(HWND, New IntPtr(NativeMethods.SpecialWindowHandles.NoTopMost),
                                          x, y, 0, 0,
                                          NativeMethods.SetWindowPosFlags.IgnoreResize)

           Catch ex As Exception
               Throw

           End Try

       Next

   End Sub

   ''' <summary>
   ''' Set the position of a window.
   ''' </summary>
   ''' <param name="ProcessName">The process name.</param>
   ''' <param name="X">The new X coordinate.</param>
   ''' <param name="Y">The new Y coordinate.</param>
   ''' <param name="Bounds">
   ''' The screen <see cref="Rectangle"/> where the window is shown.
   ''' If this parameter is empty, <see cref="Screen.PrimaryScreen"/> is used as default.
   ''' </param>
   Friend Shared Sub SetWindowPos(ByVal ProcessName As String,
                            ByVal X As Integer,
                            ByVal Y As Integer,
                            Optional ByVal Bounds As Rectangle = Nothing)

       Dim Rect As Rectangle  ' The specified screen bounds
       Dim HWND As IntPtr     ' The process main window handle.
       Dim Width As Integer   ' The process window width.
       Dim Height As Integer  ' The process window height.

       If Bounds.IsEmpty Then
           Bounds = Screen.PrimaryScreen.WorkingArea
       End If

       ' Iterate the process instances.
       For Each p As Process In Process.GetProcessesByName(FixProcessName(ProcessName))

           Try
               ' Get the main window handle.
               HWND = p.MainWindowHandle

               ' Copy the process window position and size into the Rectangle.
               ' NOTE: This is not a bad practice, but 'GetWindowRect' function should use a Windows API 'RECT' structure.
               NativeMethods.GetWindowRect(HWND, Rect)
               Width = (Rect.Width - Rect.Left)  ' Set the window width
               Height = (Rect.Height - Rect.Top) ' Set the window height

               ' Move the Main Window.
               NativeMethods.SetWindowPos(HWND, New IntPtr(NativeMethods.SpecialWindowHandles.NoTopMost),
                                          x, y, 0, 0,
                                          NativeMethods.SetWindowPosFlags.IgnoreResize)

           Catch ex As Exception
               Throw

           End Try

       Next

   End Sub

#End Region

#Region " Private Methods "

   ''' <summary>
   ''' Fixes the name of a process.
   ''' </summary>
   ''' <param name="name">The process name.</param>
   ''' <returns>System.String.</returns>
   Private Shared Function FixProcessName(ByVal name As String) As String

       If name.EndsWith(".exe", StringComparison.OrdinalIgnoreCase) Then
           Return name.Remove(name.Length - ".exe".Length)
       Else
           Return name
       End If

   End Function

#End Region

End Class


Saludos.








FCOSTA

MUCHISIMAS GRACIAS ELEKTOR (ERES UN CRACK)

Efectivamente, yo no quiero que funcione minimizado sino que
corra completo, pero a un lado del monitor.

PERO AHORA TENGO UN PROBLEMA... JEJEJEJEJE
QUE SI SE PROGRAMAR ¡¡¡¡ EN VISUAL BASIC ¡¡¡¡¡

PERO de VISUAL BASIC. NET ¡¡¡NO TENGO NI IDEA¡¡¡¡

Si este programa lo tienes en Visual Basic me ira de pelicula.
Porque si lo tengo que traducir lo tengo negro.

De todas formas. Muchisimas gracias.

Eleкtro

Cita de: FCOSTA en  1 Octubre 2014, 19:40 PMSi este programa lo tienes en Visual Basic me ira de pelicula.
Porque si lo tengo que traducir lo tengo negro.

Aquí te lo he subido: http://www.mediafire.com/?c7bt666mw7wcwtu
La aplicación compilada la tienes en la carpeta ...\Bin\Debug

Método de empleo:
SetWindowPos.exe "Nombre del proceso.exe"

...y se posicionará en la esquina inferior derecha, eso sí, con cierto tipo de ventanas no funcionará, pero espero que no sea el caso xD.

saludos








FCOSTA

Lo siento Elektor pero no me funciona
NO hace nada. No me da error, Ni me dice que el fichero no existe. No dice nada. Ni hace nada. Es como si pulsara sobre un lugar de la pantalla donde no hay nada.

Te explicare lo que hice....
1.- Al tratar de instalarlo me dijo que necesitaba instalar el NET.Framework 4.0
2.- Lo descargue de la pagina de Microsoft
3.- Lo instale.
4.- Copie el fichero "SetWindowPos.exe" a mi carpeta raíz del disco C:\
4.- Me fui a la carpeta de Windows y copie también el fichero NOTEPAD.EXE a la carpeta raíz de mi disco (C:\) para que asi lo pudiera "ver" (C:\notepad.exe)
5 .- Cree un acceso directo en el escritorio que dice asi (C:\SetWindowPos.exe "notepad.exe").
6.- Y cuando pulso con el raton no hace nada de nada. Ni errores, ni nada.

No se que será.

Saludos

Eleкtro

#6
No entendiste bien el funcionamiento @FCOSTA, te explico:

1) No es una aplicación gráfica, es una aplicación commandline, es decir, se ejecuta desde la consola con los parámetros que ya indiqué más arriba:

Cita de: Eleкtro en  1 Octubre 2014, 21:34 PM
Método de empleo:
SetWindowPos.exe "Nombre del proceso.exe"

2) La aplicación busca el programa entre los procesos activos, no es necesario mover el archivo a la misma carpeta, simplemente asegúrate que el proceso esté en ejecución, como ya indiqué: Primero ejecutas el "notepad" (notepad, por decir algo) y luego la aplicación que te envié.

3) No le añadí al código ningúna verificación de errores que te pueda indicar si hubo algún error (como por ejemplo si el proceso no se encontró), esto es porque no lo he desarrollado de forma profesional debido a que no lo vi necesario, solo le añadí un par de instruccines básicas para que tomase el argumento que le debes enviar por consola para que te funcionase, nada más.
Asegúrate de utilizarla como es debido y todo debería ir bien :P



EDITO:
Un ejemplo Visual:

[youtube=960,540]https://www.youtube.com/watch?v=8yryxRA6IJ4[/youtube]


¿Lo entendiste ahora?, en pocas palabras, úsalo como si se tratase de un comando de Batch al que le pasas un parámetro, del mismo modo,
La idea es que ejecutes esa aplicación al mismo tiempo que ejecutas la aplicación que quieres mover, supongo que lo haces al inicio de Windows, pues eso, solo tienes que añadir una entrada más a la sección 'RUN' donde se define la ejecución de esos programas.

Ejemplo:

Código (ini) [Seleccionar]
Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run]
"SetWindowPos"="\"C:\\SetWindowPos.exe\" \"Nombre del Programa.exe\""


PD: Si sigues teniendo dificultades enviame el exe del programa que se pone en medio de la pantalla (y sus dependencias si tiene alguna para poder ejecutarlo) y te hago un apaño.

Saludos!








FCOSTA

¡¡¡¡ MAGNIFICO ¡¡¡¡  CUANDO YO DIGO QUE ERES UN CRACK ME QUEDO CORTO....... ¡¡¡ FABULOSO ¡¡¡   ¡¡¡ FUNCIONA DE FABULA ¡¡¡

Perdoname Elektor por no haber entendido el funcionamiento a la primera. PERO AHORA FUNCIONA ..... Y además me funciona desde el Acceso Directo del Escritorio (No necesito hacerlo desde la consola).

Creo que el error estaba en que no sabia que el programa debía de estar funcionando ANTES de aplicar tu programa. MUCHAS GRACIAS.

OYE Crack.... ¿Y si te pido algo mas... puedo o no puedo?? JEJEJEJE

Veras tu programa va de fabula..... PERO LE ENCUENTRO UN pequeño defecto (o falta para mi)......

Veras. Tu programa hace lo que dice, o sea envía la pantalla al lado derecho abajo.... PERO ENVIA LA PANTALLA "ENTERA" . O sea te pone la pantalla COMPLETA del programa a la parte derecha. (Muy bien).

PERO si la pantalla de interface del programa es un poco grande, pues no has conseguido nada. El monitor sigue estando "ocupado". ¿Me explico?.

Por ejemplo me explicare.
La interface de mi programa ocupa un 50% de la pantalla EN EL CENTRO del monitor. Y cuando le aplico tu programa sigue ocupando el 50% del monitor solo que a la derecha. No he ganado nada.

Yo lo que hago cada dia con el raton es ponerla a la derecha PERO DEJANDO SOLO A LA VISTA LOS DOS BOTONES QUE ME INTERESAN.  Y de este modo solo me ocupa un 8% (calculo) de la pantalla. ¿Me explico?. El resto del interface queda fuera del monitor.

¿Habria manera de que cambiando algunos parámetros de tu código pudiera hacer que la interface se posicionara donde quisiéramos. O sea que pudiera quedar en la parte derecha del tamaño que queramos? ¿Me explico?.

Lo ideal seria algo asi por ejemplo......

C:\SetWindowPos.exe "notepad.exe", 225,151,18,165

O sea que añadiendole unos números al comando, la pantalla de la interface se posicionara en un lugar o en otro de la pantalla.

Un muy cordial saludo Crack
Y muchas gracias 







 

Eleкtro

#8
Cita de: FCOSTA en  2 Octubre 2014, 21:22 PM¿Habria manera de que cambiando algunos parámetros de tu código pudiera hacer que la interface se posicionara donde quisiéramos. O sea que pudiera quedar en la parte derecha del tamaño que queramos? ¿Me explico?.

Lo ideal seria algo asi por ejemplo......

C:\SetWindowPos.exe "notepad.exe", 225,151,18,165

O sea que añadiendole unos números al comando, la pantalla de la interface se posicionara en un lugar o en otro de la pantalla.

Una cosa es pedir un favor y otra muy distinta es aprovecharse, si hubieras especificado al principio que además de mover la ventana también querías redimensionarla no me habría importado, pero si la gente pide ayuda y no comenta estos detalles solo consigue hacer perder el tiempo a los que pretenden ayudar.

Aquí tienes: https://www.mediafire.com/?cpb9pp90b6tuz2h

Sintaxis:
SetWindow programa.exe x y width height

Ejemplo:
SetWindow.exe "Notepad" 0 0 100 100

Comentaste que tienes conocimientos de programación de VB6, algo es algo, y te he enviado el source del programa que escribí para ti, así que si tienes cualquier otra duda o quieres implementar cualquier otro tipo de mejora o funcionalidad en el programa entonces puedes formular las preguntas en la sección de programación .NET donde gustosamente te indicaré los pasos a realizar y te ayudaré, pero lo harás tu, no yo.

Saludos!








FCOSTA

Jolin... NO TE ENFADES POR FAVOR.
Has sido SUPER GENEROSO y SUPER ATENTO conmigo.
No te enfades, por favor.
Si en algo te he molestado te pido perdon de rodillas.

Solo dos preguntas....

1.- El codigo que dices que me has enviado ¿es en VB.NET o en VB6?

2.- Y no he recibido nada. Mi direccion de correo es:

"eco180@terra.com".

Muchisimas gracias, y te pido perdon por las molestias.

GRACIAS