Ordner öffnen und Windows-Lautstärke ändern

  • VB

  • fexs
  • 2777 Aufrufe 6 Antworten

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Ordner öffnen und Windows-Lautstärke ändern

    Hallo,
    die Frage is zwar sowas von simpel aber ich musses zum ersten mal machen un hab keine Ahnung wie es funktioniert. Ich will einfach nur über einen CommandButton einen Ordner öffnen.

    Ich dachte immer es geht mit Shell("C:/") oder so. Aber hab gerade bemerkt dasses so nicht geht:D
    Hab schon im Internet geguckt un 10000 Sachen gefunden, aber nicht den einfachen Befehl einen Ordner zu öffnen:D.
    Es is ja auch schon spät :depp:

    Wäre nett wenn mir mal einer sagen kann wie es funktioniert..;)
    Danke schonmal
    mfg fexs

    Edit:
    Achso un wo ich grad schon am dumme Fragen stellen bin:
    Weiß jemand mit welchem Befehl man "Ton Aus/Ein" hinbekommen könnte??
    Bis dann
    [COLOR="DarkRed"][SIZE="3"]Godspeed[/SIZE][/color] on [COLOR="DarkRed"][SIZE="3"]Devils[/SIZE][/color] Thunder
  • Hier gibt es noch eine offen Frage: VB6 oder VB.NET?

    Eine weitere Frage: Die Antworten öffnen alle einen Explorer.
    In einem Programm kann man damit reichlich wenig anfangen.

    Wills Du einen Explorer, oder einen Dateidialog aus einer Anwendung heraus?
    Es ist besser zu schweigen und für einen Narren gehalten zu werden, als zu reden und damit alle Zweifel zu beseitigen ...
  • Hallo,
    das was Zerd gesagt hat wollte ich nur wissen;)
    Danke:)

    Aber hat zufällig auch einer ne Ahnung wie das mit dem Ton aus/ Ton ein geht?^^
    Also gibts en Code dafür oder liegt vllt irgendwo im System ne .exe die bei klick den Ton ausmacht?:D
    Oder kann man sone .exe downloaden und ann irgendwie ausfürn?
    Könnte ja sein..
    Bis dann
    mfg
    [COLOR="DarkRed"][SIZE="3"]Godspeed[/SIZE][/color] on [COLOR="DarkRed"][SIZE="3"]Devils[/SIZE][/color] Thunder

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von fexs ()

  • Hier das Ganze in VB.NET

    Quellcode

    1. const int MAXPNAMELEN = 32;
    2. const int MIXER_SHORT_NAME_CHARS = 16;
    3. const int MIXER_LONG_NAME_CHARS = 64;
    4. [Flags] enum MIXERLINE_LINEF : uint{
    5. ACTIVE = 0x00000001,
    6. DISCONNECTED = 0x00008000,
    7. SOURCE = 0x80000000
    8. }
    9. [Flags] enum MIXER : uint{
    10. GETLINEINFOF_DESTINATION = 0x00000000,
    11. GETLINEINFOF_SOURCE = 0x00000001,
    12. GETLINEINFOF_LINEID = 0x00000002,
    13. GETLINEINFOF_COMPONENTTYPE = 0x00000003,
    14. GETLINEINFOF_TARGETTYPE = 0x00000004,
    15. GETLINEINFOF_QUERYMASK = 0x0000000F,
    16. GETLINECONTROLSF_ALL = 0x00000000,
    17. GETLINECONTROLSF_ONEBYID = 0x00000001,
    18. GETLINECONTROLSF_ONEBYTYPE = 0x00000002,
    19. GETLINECONTROLSF_QUERYMASK = 0x0000000F,
    20. GETCONTROLDETAILSF_VALUE = 0x00000000,
    21. GETCONTROLDETAILSF_LISTTEXT = 0x00000001,
    22. GETCONTROLDETAILSF_QUERYMASK = 0x0000000F,
    23. OBJECTF_MIXER = 0x00000000,
    24. OBJECTF_WAVEOUT = 0x10000000,
    25. OBJECTF_WAVEIN = 0x20000000,
    26. OBJECTF_MIDIOUT = 0x30000000,
    27. OBJECTF_MIDIIN = 0x40000000,
    28. OBJECTF_AUX = 0x50000000,
    29. OBJECTF_HANDLE = 0x80000000,
    30. OBJECTF_HMIXER = OBJECTF_HANDLE | OBJECTF_MIXER,
    31. OBJECTF_HWAVEOUT = OBJECTF_HANDLE | OBJECTF_WAVEOUT,
    32. OBJECTF_HWAVEIN = OBJECTF_HANDLE | OBJECTF_WAVEIN,
    33. OBJECTF_HMIDIOUT = OBJECTF_HANDLE | OBJECTF_MIDIOUT,
    34. OBJECTF_HMIDIIN = OBJECTF_HANDLE | OBJECTF_MIDIIN
    35. }
    36. [Flags] enum MIXERCONTROL_CT : uint{
    37. CLASS_MASK = 0xF0000000,
    38. CLASS_CUSTOM = 0x00000000,
    39. CLASS_METER = 0x10000000,
    40. CLASS_SWITCH = 0x20000000,
    41. CLASS_NUMBER = 0x30000000,
    42. CLASS_SLIDER = 0x40000000,
    43. CLASS_FADER = 0x50000000,
    44. CLASS_TIME = 0x60000000,
    45. CLASS_LIST = 0x70000000,
    46. SUBCLASS_MASK = 0x0F000000,
    47. SC_SWITCH_BOOLEAN = 0x00000000,
    48. SC_SWITCH_BUTTON = 0x01000000,
    49. SC_METER_POLLED = 0x00000000,
    50. SC_TIME_MICROSECS = 0x00000000,
    51. SC_TIME_MILLISECS = 0x01000000,
    52. SC_LIST_SINGLE = 0x00000000,
    53. SC_LIST_MULTIPLE = 0x01000000,
    54. UNITS_MASK = 0x00FF0000,
    55. UNITS_CUSTOM = 0x00000000,
    56. UNITS_BOOLEAN = 0x00010000,
    57. UNITS_SIGNED = 0x00020000,
    58. UNITS_UNSIGNED = 0x00030000,
    59. UNITS_DECIBELS = 0x00040000, /* in 10ths */
    60. UNITS_PERCENT = 0x00050000, /* in 10ths */
    61. }
    62. [Flags] enum MIXERCONTROL_CONTROLTYPE : uint{
    63. CUSTOM = MIXERCONTROL_CT.CLASS_CUSTOM | MIXERCONTROL_CT.UNITS_CUSTOM,
    64. BOOLEANMETER = MIXERCONTROL_CT.CLASS_METER | MIXERCONTROL_CT.SC_METER_POLLED | MIXERCONTROL_CT.UNITS_BOOLEAN,
    65. SIGNEDMETER = MIXERCONTROL_CT.CLASS_METER | MIXERCONTROL_CT.SC_METER_POLLED | MIXERCONTROL_CT.UNITS_SIGNED,
    66. PEAKMETER = SIGNEDMETER + 1,
    67. UNSIGNEDMETER = MIXERCONTROL_CT.CLASS_METER | MIXERCONTROL_CT.SC_METER_POLLED | MIXERCONTROL_CT.UNITS_UNSIGNED,
    68. BOOLEAN = MIXERCONTROL_CT.CLASS_SWITCH | MIXERCONTROL_CT.SC_SWITCH_BOOLEAN | MIXERCONTROL_CT.UNITS_BOOLEAN,
    69. ONOFF = BOOLEAN + 1,
    70. MUTE = BOOLEAN + 2,
    71. MONO = BOOLEAN + 3,
    72. LOUDNESS = BOOLEAN + 4,
    73. STEREOENH = BOOLEAN + 5,
    74. BASS_BOOST = BOOLEAN + 0x00002277,
    75. BUTTON = MIXERCONTROL_CT.CLASS_SWITCH | MIXERCONTROL_CT.SC_SWITCH_BUTTON | MIXERCONTROL_CT.UNITS_BOOLEAN,
    76. DECIBELS = MIXERCONTROL_CT.CLASS_NUMBER | MIXERCONTROL_CT.UNITS_DECIBELS,
    77. SIGNED = MIXERCONTROL_CT.CLASS_NUMBER | MIXERCONTROL_CT.UNITS_SIGNED,
    78. UNSIGNED = MIXERCONTROL_CT.CLASS_NUMBER | MIXERCONTROL_CT.UNITS_UNSIGNED,
    79. PERCENT = MIXERCONTROL_CT.CLASS_NUMBER | MIXERCONTROL_CT.UNITS_PERCENT,
    80. SLIDER = MIXERCONTROL_CT.CLASS_SLIDER | MIXERCONTROL_CT.UNITS_SIGNED,
    81. PAN = SLIDER + 1,
    82. QSOUNDPAN = SLIDER + 2,
    83. FADER = MIXERCONTROL_CT.CLASS_FADER | MIXERCONTROL_CT.UNITS_UNSIGNED,
    84. VOLUME = FADER + 1,
    85. BASS = FADER + 2,
    86. TREBLE = FADER + 3,
    87. EQUALIZER = FADER + 4,
    88. SINGLESELECT = MIXERCONTROL_CT.CLASS_LIST | MIXERCONTROL_CT.SC_LIST_SINGLE | MIXERCONTROL_CT.UNITS_BOOLEAN,
    89. MUX = SINGLESELECT + 1,
    90. MULTIPLESELECT = MIXERCONTROL_CT.CLASS_LIST | MIXERCONTROL_CT.SC_LIST_MULTIPLE | MIXERCONTROL_CT.UNITS_BOOLEAN,
    91. MIXER = MULTIPLESELECT + 1,
    92. MICROTIME = MIXERCONTROL_CT.CLASS_TIME | MIXERCONTROL_CT.SC_TIME_MICROSECS | MIXERCONTROL_CT.UNITS_UNSIGNED,
    93. MILLITIME = MIXERCONTROL_CT.CLASS_TIME | MIXERCONTROL_CT.SC_TIME_MILLISECS | MIXERCONTROL_CT.UNITS_UNSIGNED
    94. }
    95. [StructLayout(LayoutKind.Sequential, CharSet=CharSet.Auto)]
    96. struct MIXERLINE{
    97. [StructLayout(LayoutKind.Sequential, CharSet=CharSet.Auto)]
    98. public struct TargetInfo{
    99. public uint dwType;
    100. public uint dwDeviceID;
    101. public ushort wMid;
    102. public ushort wPid;
    103. public uint vDriverVersion;
    104. [MarshalAs(UnmanagedType.ByValTStr, SizeConst=MAXPNAMELEN)]
    105. public string szPname;
    106. }
    107. public uint cbStruct;
    108. public uint dwDestination;
    109. public uint dwSource;
    110. public uint dwLineID;
    111. public MIXERLINE_LINEF fdwLine;
    112. public uint dwUser;
    113. public uint dwComponentType;
    114. public uint cChannels;
    115. public uint cConnection;
    116. public uint cControls;
    117. [MarshalAs(UnmanagedType.ByValTStr, SizeConst=MIXER_SHORT_NAME_CHARS)]
    118. public string szShortName;
    119. [MarshalAs(UnmanagedType.ByValTStr, SizeConst=MIXER_LONG_NAME_CHARS)]
    120. public string szName;
    121. public TargetInfo Target;
    122. }
    123. [StructLayout(LayoutKind.Sequential, CharSet=CharSet.Auto)]
    124. struct MIXERCONTROL{
    125. [StructLayout(LayoutKind.Explicit)]
    126. public struct BoundsInfo{
    127. [FieldOffset(0)]
    128. public int lMinimum;
    129. [FieldOffset(4)]
    130. public int lMaximum;
    131. [FieldOffset(0)]
    132. public uint dwMinimum;
    133. [FieldOffset(4)]
    134. public uint dwMaximum;
    135. [FieldOffset(8), MarshalAs(UnmanagedType.ByValArray, SizeConst=4)]
    136. public uint[] dwReserved;
    137. }
    138. [StructLayout(LayoutKind.Explicit)]
    139. public struct MetricsInfo{
    140. [FieldOffset(0)]
    141. public uint cSteps;
    142. [FieldOffset(0)]
    143. public uint cbCustomData;
    144. [FieldOffset(4), MarshalAs(UnmanagedType.ByValArray, SizeConst=5)]
    145. public uint[] dwReserved;
    146. }
    147. public uint cbStruct;
    148. public uint dwControlID;
    149. public MIXERCONTROL_CONTROLTYPE dwControlType;
    150. public uint fdwControl;
    151. public uint cMultipleItems;
    152. [MarshalAs(UnmanagedType.ByValTStr, SizeConst=MIXER_SHORT_NAME_CHARS)]
    153. public string szShortName;
    154. [MarshalAs(UnmanagedType.ByValTStr, SizeConst=MIXER_LONG_NAME_CHARS)]
    155. public string szName;
    156. public BoundsInfo Bounds;
    157. public MetricsInfo Metrics;
    158. }
    159. [StructLayout(LayoutKind.Explicit)]
    160. struct MIXERLINECONTROLS{
    161. [FieldOffset(0)]
    162. public uint cbStruct;
    163. [FieldOffset(4)]
    164. public uint dwLineID;
    165. [FieldOffset(8)]
    166. public uint dwControlID;
    167. [FieldOffset(8)] // not a typo! overlaps previous field
    168. public uint dwControlType;
    169. [FieldOffset(12)]
    170. public uint cControls;
    171. [FieldOffset(16)]
    172. public uint cbmxctrl;
    173. [FieldOffset(20)]
    174. public IntPtr pamxctrl;
    175. }
    176. [StructLayout(LayoutKind.Explicit)]
    177. struct MIXERCONTROLDETAILS{
    178. [FieldOffset(0)]
    179. public uint cbStruct;
    180. [FieldOffset(4)]
    181. public uint dwControlID;
    182. [FieldOffset(8)]
    183. public uint cChannels;
    184. [FieldOffset(12)]
    185. public IntPtr hwndOwner;
    186. [FieldOffset(12)] // not a typo!
    187. public uint cMultipleItems;
    188. [FieldOffset(16)]
    189. public uint cbDetails;
    190. [FieldOffset(20)]
    191. public IntPtr paDetails;
    192. }
    193. [StructLayout(LayoutKind.Sequential)]
    194. struct VOLUME{
    195. public int left;
    196. public int right;
    197. }
    198. struct MixerInfo{
    199. public uint volumeCtl;
    200. public uint muteCtl;
    201. public int minVolume;
    202. public int maxVolume;
    203. }
    204. [DllImport('WinMM.dll', CharSet=CharSet.Auto)]
    205. static extern uint mixerGetLineInfo (IntPtr hmxobj, ref MIXERLINE pmxl, MIXER flags);
    206. [DllImport('WinMM.dll', CharSet=CharSet.Auto)]
    207. static extern uint mixerGetLineControls (IntPtr hmxobj, ref MIXERLINECONTROLS pmxlc, MIXER flags);
    208. [DllImport('WinMM.dll', CharSet=CharSet.Auto)]
    209. static extern uint mixerGetControlDetails(IntPtr hmxobj, ref MIXERCONTROLDETAILS pmxcd, MIXER flags);
    210. [DllImport('WinMM.dll', CharSet=CharSet.Auto)]
    211. static extern uint mixerSetControlDetails(IntPtr hmxobj, ref MIXERCONTROLDETAILS pmxcd, MIXER flags);
    212. static MixerInfo GetMixerControls(){
    213. MIXERLINE mxl = new MIXERLINE();
    214. MIXERLINECONTROLS mlc = new MIXERLINECONTROLS();
    215. mxl.cbStruct = (uint)Marshal.SizeOf(typeof(MIXERLINE));
    216. mlc.cbStruct = (uint)Marshal.SizeOf(typeof(MIXERLINECONTROLS));
    217. mixerGetLineInfo(IntPtr.Zero, ref mxl, MIXER.OBJECTF_MIXER | MIXER.GETLINEINFOF_DESTINATION);
    218. mlc.dwLineID = mxl.dwLineID;
    219. mlc.cControls = mxl.cControls;
    220. mlc.cbmxctrl = (uint)Marshal.SizeOf(typeof(MIXERCONTROL));
    221. mlc.pamxctrl = Marshal.AllocHGlobal((int)(mlc.cbmxctrl * mlc.cControls));
    222. mixerGetLineControls(IntPtr.Zero, ref mlc, MIXER.OBJECTF_MIXER | MIXER.GETLINECONTROLSF_ALL);
    223. MixerInfo rtn = new MixerInfo();
    224. for(int i = 0; i < mlc.cControls; i++){
    225. MIXERCONTROL mxc = (MIXERCONTROL)Marshal.PtrToStructure((IntPtr)((int)mlc.pamxctrl + (int)mlc.cbmxctrl * i), typeof(MIXERCONTROL));
    226. switch(mxc.dwControlType){
    227. case MIXERCONTROL_CONTROLTYPE.VOLUME:
    228. rtn.volumeCtl = mxc.dwControlID;
    229. rtn.minVolume = mxc.Bounds.lMinimum;
    230. rtn.maxVolume = mxc.Bounds.lMaximum;
    231. break;
    232. case MIXERCONTROL_CONTROLTYPE.MUTE:
    233. rtn.muteCtl = mxc.dwControlID;
    234. break;
    235. }
    236. }
    237. Marshal.FreeHGlobal(mlc.pamxctrl);
    238. return rtn;
    239. }
    240. static VOLUME GetVolume(MixerInfo mi){
    241. MIXERCONTROLDETAILS mcd = new MIXERCONTROLDETAILS();
    242. mcd.cbStruct = (uint)Marshal.SizeOf(typeof(MIXERCONTROLDETAILS));
    243. mcd.dwControlID = mi.volumeCtl;
    244. mcd.cMultipleItems = 0;
    245. mcd.cChannels = 2;
    246. mcd.cbDetails = (uint)Marshal.SizeOf(typeof(VOLUME));
    247. mcd.paDetails = Marshal.AllocHGlobal((int)mcd.cbDetails);
    248. mixerGetControlDetails(IntPtr.Zero, ref mcd, MIXER.GETCONTROLDETAILSF_VALUE | MIXER.OBJECTF_MIXER);
    249. VOLUME rtn = (VOLUME)Marshal.PtrToStructure(mcd.paDetails, typeof(VOLUME));
    250. Marshal.FreeHGlobal(mcd.paDetails);
    251. return rtn;
    252. }
    253. static bool IsMuted(MixerInfo mi){
    254. MIXERCONTROLDETAILS mcd = new MIXERCONTROLDETAILS();
    255. mcd.cbStruct = (uint)Marshal.SizeOf(typeof(MIXERCONTROLDETAILS));
    256. mcd.dwControlID = mi.muteCtl;
    257. mcd.cMultipleItems = 0;
    258. mcd.cChannels = 1;
    259. mcd.cbDetails = 4;
    260. mcd.paDetails = Marshal.AllocHGlobal((int)mcd.cbDetails);
    261. mixerGetControlDetails(IntPtr.Zero, ref mcd, MIXER.GETCONTROLDETAILSF_VALUE | MIXER.OBJECTF_MIXER);
    262. int rtn = Marshal.ReadInt32(mcd.paDetails);
    263. Marshal.FreeHGlobal(mcd.paDetails);
    264. return rtn != 0;
    265. }
    266. static void AdjustVolume(MixerInfo mi, int delta){
    267. VOLUME volume = GetVolume(mi);
    268. if(delta > 0){
    269. volume.left = Math.Min(mi.maxVolume, volume.left + delta);
    270. volume.right = Math.Min(mi.maxVolume, volume.right + delta);
    271. }else{
    272. volume.left = Math.Max(mi.minVolume, volume.left + delta);
    273. volume.right = Math.Max(mi.minVolume, volume.right + delta);
    274. }
    275. SetVolume(mi, volume);
    276. }
    277. static void SetVolume(MixerInfo mi, VOLUME volume){
    278. MIXERCONTROLDETAILS mcd = new MIXERCONTROLDETAILS();
    279. mcd.cbStruct = (uint)Marshal.SizeOf(typeof(MIXERCONTROLDETAILS));
    280. mcd.dwControlID = mi.volumeCtl;
    281. mcd.cMultipleItems = 0;
    282. mcd.cChannels = 2;
    283. mcd.cbDetails = (uint)Marshal.SizeOf(typeof(VOLUME));
    284. mcd.paDetails = Marshal.AllocHGlobal((int)mcd.cbDetails);
    285. Marshal.StructureToPtr(volume, mcd.paDetails, false);
    286. mixerSetControlDetails(IntPtr.Zero, ref mcd, MIXER.GETCONTROLDETAILSF_VALUE | MIXER.OBJECTF_MIXER);
    287. Marshal.FreeHGlobal(mcd.paDetails);
    288. }
    289. static void SetMute(MixerInfo mi, bool mute){
    290. MIXERCONTROLDETAILS mcd = new MIXERCONTROLDETAILS();
    291. mcd.cbStruct = (uint)Marshal.SizeOf(typeof(MIXERCONTROLDETAILS));
    292. mcd.dwControlID = mi.muteCtl;
    293. mcd.cMultipleItems = 0;
    294. mcd.cChannels = 1;
    295. mcd.cbDetails = 4;
    296. mcd.paDetails = Marshal.AllocHGlobal((int)mcd.cbDetails);
    297. Marshal.WriteInt32(mcd.paDetails, mute ? 1 : 0);
    298. mixerSetControlDetails(IntPtr.Zero, ref mcd, MIXER.GETCONTROLDETAILSF_VALUE | MIXER.OBJECTF_MIXER);
    299. Marshal.FreeHGlobal(mcd.paDetails);
    300. }
    Alles anzeigen
    Es ist besser zu schweigen und für einen Narren gehalten zu werden, als zu reden und damit alle Zweifel zu beseitigen ...