2010-09-21 16 views
5

Prima di tutto, so che c'è una domanda formulata in modo simile in SO, ma non è stata data una risposta corretta, e la maggior parte della discussione attorno a esso è caduta nel "non dovresti lo farò ".Come spostare la barra delle applicazioni di Windows (due)

Quindi, iniziare dalle basi. Perché questo è necessario.

Lavoro in un'azienda che distribuisce ai nostri dipendenti alcune decine di tablet netbook. Come sapete, i netbook hanno una risoluzione comparativamente più bassa e lo spazio per lo schermo è molto, molto importante.

Quando ruotiamo i netbook in modalità tablet, li usiamo per la scrittura e la modalità verticale è molto più comoda. Il fatto è che, quando lo schermo viene ruotato, la barra delle applicazioni rimane sullo stesso bordo relativo di quello orizzontale. Se era in fondo, rimane in basso sul ritratto. Ma dal momento che lo usiamo già sul bordo sinistro del paesaggio, finiamo con la barra delle applicazioni che occupa una percentuale molto evidente dello schermo disponibile.

Ho già la struttura in atto per ascoltare l'evento di modifiche di risoluzione, e funziona correttamente, ma tutti gli esempi che ho visto per quanto riguarda i messaggi di passaggio alla finestra della barra delle applicazioni in definitiva non riescono a spostarlo. È come se venisse forzatamente ignorato.

Esiste un modo per raggiungere questo obiettivo? Attualmente sto usando C#, ma non è un requisito preciso, posso facilmente ottenere la conversione da C++ o vb, e p/invokes non sono spaventosi.

Il sistema operativo è Windows 7.

[Edit: ho già provato SHAppBarMessage, con SETPOS, non funziona su Windows 7. Ho provato MoveWindow e SetWindowPos pinvokes, anche non funzionano su Windows 7 sulla barra delle applicazioni. Per le altre finestre funziona bene. E sono sicuro di avere la mano destra, perché se uso Pinvoke di ShowWindow per nasconderlo, si nasconde davvero, anche se non posso recuperare lo spazio inutilizzato per qualcos'altro. Questi metodi hanno funzionato su XP, è per questo che è così frustrante.]

La ringrazio molto per il vostro tempo, Joao Correia

+0

dispiaciuto per la spudorata/urto, ma io sono ancora perplesso su questo. Sto anche considerando un approccio diverso. Nascondere completamente la barra delle applicazioni dopo aver rilevato la rotazione e mostrarla di nuovo quando viene ruotata all'indietro. MA. Anche se posso nascondere la barra delle applicazioni e il pulsante di avvio "Orb", non posso recuperare lo spazio per l'area del desktop. Conta sempre la barra delle applicazioni come presente e non consente alle finestre di ingrandire lo spazio. –

+0

Ciao, volevo solo farti sapere che si può fare, ho pubblicato una soluzione in batch e vbscript, quindi anche C# deve essere possibile, vedi http://stackoverflow.com/questions/12435503/change-windows-7- barra delle applicazioni-posizione-automaticamente-basata su schermo-forma-o-on-dock/14370485 # 14370485 – peter

risposta

0

Hai provato FindWindow() con Shell_TrayWnd come la classe, e quindi utilizzare SetWindowPos mvoe la finestra?

Non so come Windows avrebbe preso questo però.

C'è anche API specifica a che fare con l'AppBar (quello che la barra delle applicazioni è), check out:

http://bytes.com/topic/c-sharp/answers/247701-moving-windows-takbar

+1

Sì, ho provato FindWindow e l'argomento suggerito, questo è ciò che viene ignorato dal sistema. Se lo uso su qualsiasi altra finestra, funziona. La barra delle applicazioni lo ignora. Per quanto riguarda il link suggerito, ho provato quel codice esatto. Funziona su XP, ma fallisce il 7, quindi il mio bisogno di questa domanda. –

+0

Ahh, capisco, è interessante. – Lloyd

Problemi correlati