Hot News:

Unser Angebot:

  Foren auf CAD.de (alle Foren)
  C#
  Fenster maximieren

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
  
MDG Engineering Nutzt Xometry, Um Medizinische Geräte Zu Bauen Und Das Globale Wachstum Voranzutreiben, ein Anwenderbericht
Autor Thema:  Fenster maximieren (9554 mal gelesen)
Black Hawk
Mitglied
Student


Sehen Sie sich das Profil von Black Hawk an!   Senden Sie eine Private Message an Black Hawk  Schreiben Sie einen Gästebucheintrag für Black Hawk

Beiträge: 14
Registriert: 04.05.2005

erstellt am: 17. Jun. 2005 10:35    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hi zusammen,

ich habe ein kleines aber feines Problem... :-)

Ich möchte eine Funktion in mein bestehendes Programm einbauen, die eine Anwendung, die ich starte direkt maximiert, falls sie es nicht schon ist. Wie kann ich das in C# realisieren? Ich habe schon viel im Netz gelesen, jedoch noch nicht den entscheidenen Hinweis gefunden,
nur das es über die user32.dll funktionieren sollte.

Über Hilfe wäre ich sehr dankbar!

Gruß,

Frederik


[Diese Nachricht wurde von Black Hawk am 17. Jun. 2005 editiert.]

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

FlorianGerteisz
Mitglied
IT-Anwendungsentwickler


Sehen Sie sich das Profil von FlorianGerteisz an!   Senden Sie eine Private Message an FlorianGerteisz  Schreiben Sie einen Gästebucheintrag für FlorianGerteisz

Beiträge: 43
Registriert: 28.04.2005

erstellt am: 17. Jun. 2005 11:23    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Black Hawk 10 Unities + Antwort hilfreich

Hallo Frederik,

versuche es mal mit folgendem:

Code:

System.Diagnostics.ProcessStartInfo psi = new System.Diagnostics.ProcessStartInfo("notepad.exe");
psi.WindowStyle = System.Diagnostics.ProcessWindowStyle.Maximized;
System.Diagnostics.Process proc = System.Diagnostics.Process.Start(psi);

gruß
flo

------------------

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Black Hawk
Mitglied
Student


Sehen Sie sich das Profil von Black Hawk an!   Senden Sie eine Private Message an Black Hawk  Schreiben Sie einen Gästebucheintrag für Black Hawk

Beiträge: 14
Registriert: 04.05.2005

erstellt am: 17. Jun. 2005 12:07    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hi Flo!

Danke Dir! Auf diese Art läuft das ganz bestimmt...

ABER:
Ich arbeite mit SolidWorks und starte dieses über die APi-Schnittstelle, hab also eine Variable vom Typ SldWorks.SldWorksClass.
Mit Deiner Idee starte ich leider einen komplett neuen Prozess, wobei ich es mit dem bereits laufenden Prozess realisieren will.

Das API-Team hat uns den Hinweis über den Dll-Import gegeben:

Code:

Private Declare Function SetWindowPos Lib "user32" _
    (ByVal hWnd As Long, _
    ByVal hWndInsertAfter As Long, _
    ByVal x As Long, _
    ByVal y As Long, _
    ByVal cx As Long, _
    ByVal cy As Long, _
    ByVal wFlags As Long) As Long

    ' Get main window frame.
    Set swFrame = swApp.Frame
   
   
    ' Get window handle.
    hWnd = swFrame.GetHWnd
   
   
   
    ' Change.
    x = 10
    y = 10
    cx = 300
    cy = 600


    ' Fake a user change in the window position.
    lRetVal = SetWindowPos(hWnd, HWND_NOTOPMOST, x, y, cx, cy,
SWP_SHOWWINDOW)

c# funktion  :

public class START_SolidWorks
{

[DllImport( "user32.dll")]
public static extern int SetWindowPos( int hWnd, int hWndInsertAfter, int x, int y, int cx, int cy, int wFlags);
...

swApp= new SldWorks.SldWorksClass();
OpenSelectedDoc( swApp, SwConst.swDocumentTypes_e.swDocASSEMBLY);
swApp.Visible = true;

...
SldWorks.Frame Frame = (SldWorks.Frame) swApp.Frame();
int hWndMain = Frame.GetHWnd();
SetWindowPos(hWndMain, -2, 0, 0, 300, 600, SWP_SHOWWINDOW );

}


Die Variable "SWP_SHOWWINDOW" ist hier weder bekannt, noch hat sie einen Wert. Setze ich für diese Variable gerade Zahlen ein, so verkleinere ich das Fenster auf die in den vorherigen Positionen eingesetzten Werte (300, 600). Bei ungeraden Zahlen wird es in der Form geöffnet, wie es beim letzten Schließen eingestellt war.

Gruß,

Frederik

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

_InvasoR_
Mitglied
student


Sehen Sie sich das Profil von _InvasoR_ an!   Senden Sie eine Private Message an _InvasoR_  Schreiben Sie einen Gästebucheintrag für _InvasoR_

Beiträge: 55
Registriert: 17.03.2005

erstellt am: 17. Jun. 2005 14:17    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Black Hawk 10 Unities + Antwort hilfreich

Hi !

Es sollte mit

Code:

[DllImport( "user32.dll")]
public static extern int ShowWindow( int hWnd, int wFlags);

ShowWindow( hWndMain,3 );



funktionieren.

gruss Robin

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Black Hawk
Mitglied
Student


Sehen Sie sich das Profil von Black Hawk an!   Senden Sie eine Private Message an Black Hawk  Schreiben Sie einen Gästebucheintrag für Black Hawk

Beiträge: 14
Registriert: 04.05.2005

erstellt am: 17. Jun. 2005 14:22    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hi Robin!

Habs direkt ausprobiert und es hat funktioniert.

Besten Dank!

Gruß

Frederik

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2024 CAD.de | Impressum | Datenschutz